软件测试基础

简介: 软件测试基础

一、什么是软件测试?

软件测试是验证软件产品的特性是否满足用户需求。

软件测试是贯穿于软件的整个生命周期的。

二、测试和调试的区别

测试和调试主要有以下三点不同:

  • 目的不同:测试只是为了找出软件中的缺陷;调试是为了发现缺陷并进行解决。
  • 执行的阶段不同:测试贯穿于整个软件的生命周期;调试只是在编码阶段进行。
  • 参与的角色不同:测试不仅有测试人员还会有开发人员的参与,像单元测试和集成测试等;但是调试只有开发人员参与。

三、软件测试的相关概念

1、需求

所谓需求就是满足用户需求或正式规定文档所具有的条件和权能,包含用户需求和软件需求。

  • 用户需求:甲方所提出的需求,若没有甲方就是终端用户在使用产品是必须要完成的任务,用户需求一般比较简略。用户需求还要进行市场分析还技术分析来确定可行性。
  • 软件需求:开发人员必须实现的软件功能,软件需求一般比较详细。

2、BUG

当且仅当规格说明书或需求文档存在并且正确时,程序与规格之间不匹配就会出现BUG

如果需求在规格说明不存在或者错误的时候,就最终以用户为准,当程序没有正确实现用户预期的需求功能时也会出现BUG.

对于BUG,应如何进行描述?

  • 发现BUG的版本;
  • 发现BUG的版本;
  • 发现BUG的操作步骤;
  • 预期结果;
  • 实际结果;
  • 以及BUG的类型、等级等。

公司一般会对BUG进行等级划分,例如:崩溃、严重、一般、和次要。

BUG的生命周期:

● New:新发现的Bug,未经评审决定是否指派给开发人员进行修改。

● Open:确认是Bug,并且认为需要进行修改,指派给相应的开发人员。

● Fixed:开发人员进行修改后标识成修改状态,有待测试人员的回归测试验证。

● Rejected:如果认为不是Bug,则拒绝修改。

● Delay:如果认为暂时不需要修改或暂时不能修改,则延后修改。

● Closed:修改状态的Bug经测试人员的回归测斌验证通过,则关闭Bug。

● Reopen:如果经验证Bug仍然存在,则需要重新打开Bug,开发人员重新修改。


3、测试用例

测试用例就是为了实现测试而向被测试的系统提供的一组集合,在测试用例中包含了测试环境(软件+版本号+操作系统)、操作步骤、测试数据和预期结果等等。

设计测试用例需要围绕软件需求。

设计测试用例的原则:避免用后即弃。

设计测试用例的目的:

有利于理清测试的思路,避免漏测和避免重复测试测试的问题。

四、 软件的生命周期

  • 需求分析:进行软件开发之前,需要知道软件的需求,并且需要分析用户的需求是否合理。
  • 计划:根据需求来计划软件开发的时间和人员等。
  • 设计:将需求细化成小的任务,进行技术设计。
  • 编码:按照需求和设计来进行编码。
  • 测试:测试人员依据测试用例来对软件进行测试。
  • 运行维护:项目上线之后对产品进行线上的维护,有修复性维护、完善性维护和预防性维护。

五、开发模型

1、瀑布模型

  • 特点:线性的开发流程,不能应对需求的变化。
  • 缺点:由于线性开发,测试后置导致风险在后期在暴露出来,不能及时纠正,还有预留给测试的时间短,测试不充分可能会把缺陷遗留给用户。
  • 应用场景:需求固定的小项目。

瀑布模型是其他模型的基础框架。

2、螺旋模型

螺旋模型是在瀑布模型的基础上给每个阶段加上了风险风险分析,引入了全流程的风险分析,每次分析完之后都会生成一个新的模型。

缺点:时间耗费长,并且也耗费人力、财力等资源。

适用场景:规模庞大、复杂度高并且风险大的项目。

3、迭代模型

迭代模型就是先开发出一个基础版本(A、B、C),然后在基础版本上不断进行优化。

4、增量模型

假设有A、B、C三种需求,增量模型就是A、B、C三种需求相互独立并行去实现,如果A功能代码实现了就去测试A,如果B代码实现了就会测试B,不必等到所有需求的代码都完成了再去进行实现。

举一个通俗的例子:假设对画一幅人物肖像,对于迭代模型就是先勾勒出人的整体轮廓再进行染色等,而增量模型就是先画出人物脸部再来画身体等。

5、敏捷模型

敏捷模型中有一个敏捷宣言:

个体与交互重于过程和工具

可用的软件重于完备的文档 客户协作重于合同谈判

响应变化重于遵循计划

在每对比对中,后者并非全无价值,但我们更看重前者。

敏捷模型的特点:轻文档、轻流程、重目标和重产出。

敏捷模型中的scrum开发模式当前比较流行,scrum主要包含:

三个角色

  • 产品经理:收集用户的需求并编写需求文档,为整个项目负责。
  • 项目经理:协调项目,为研发团队进行服务。
  • 研发人员:包括测试人员和开发人员等。

五个会议

  • 发布计划会议:产品经理从需求池里面整理出需求,开展发布计划会议。
  • 迭代计划会议:将需求进行细化成小任务,将这些任务进行人员的分配。
  • 每日例会:团队成员汇报每天的任务进度,遇到的问题以及计划下一步的工作。
  • 演示会议:团队展示本次迭代的成果。
  • 回顾会议:对于本次的迭代总结经验并进行分析。

六、软件测试的生命周期

软件测试是伴随软件的整个生命周期的。

软件测试的生命周期:

需求分析->测试计划->测试设计、测试开发->测试执行->测试评估

需求分析阶段:对于用户查看需求逻辑是否正确,是否符合用户的需求以及行为习惯,对于开发人员考虑需求是否能够实现以及实现的难度。

测试计划阶段:指定测试计划,例如测试人员的安排。

测试设计、开发阶段:设计测试用例等。

执行测试:利用测试用例对软件进行测试。

测试评估阶段:测试人员需要记录测试,做好缺陷管理记忆测试的评估。

七、测试模型

1、V模型


特点:明确标注了测试的类型以及每个测试阶段对应的开发阶段。

缺点:测试后移,在编码结束后才进行测试。

2、W模型(双V模型)

缺点:

  • 上一个阶段完成后下一个阶段才能进行;
  • 开发模型和测试模型也始终保持着前后关系;
  • 重文档、重过程,不适用于敏捷模型。

目录
相关文章
|
1月前
|
测试技术 UED
软件测试/测试开发|软件测试基础概念
软件测试/测试开发|软件测试基础概念
38 0
|
22天前
|
安全 测试技术
软件测试项目式学习二(认识软件测试及软件测试分类与案例分析)
软件测试项目式学习二(认识软件测试及软件测试分类与案例分析)
22 1
|
1月前
|
敏捷开发 分布式计算 测试技术
【软件测试学习】—软件测试的概念与软件测试模型(一)
【软件测试学习】—软件测试的概念与软件测试模型(一)
|
1月前
|
测试技术
【软件测试学习】—软件测试阶段(三)
【软件测试学习】—软件测试阶段(三)
|
1月前
|
测试技术 程序员
【软件测试学习】—软件测试模型(二)
【软件测试学习】—软件测试模型(二)
|
11月前
|
编解码 测试技术 数据库连接
软件测试—基础篇
软件测试—基础篇
101 0
|
测试技术
软件测试培训哪里好?一个实际案例告诉你,它可以考虑
软件测试工程师是软件上线之前最重要的一个环节,可以直接决定软件到底能不能上线,在公司内有着非常重要的地位,因此,不少人就想知道,像自己这种零基础的人如果去学软件测试难吗?
125 0
|
敏捷开发 测试技术
【软件测试】软件测试的基本概念和开发模型
在进行软件测试的学习之前,我们要了解软件测试一些基本概念. 这些基本概念将帮助我们更加明确工作的目标以及软件测试到底要做什么。
|
前端开发 测试技术 数据库连接
软件测试基础
在上篇文章【软件测试基本概念4】中,我们认识到了软件的生命周期,即需求分析、计划、设计、编码、测试、运行维护,因为软件测试需要贯穿软件的整个生命周期,所以软件测试也有与软件生命周期对应的周期。
167 0
软件测试基础
|
敏捷开发 小程序 Java
【软件测试】软件测试基础概念总结
能够设计出高效的发现缺陷和保证产品质量的优秀测试用例 具有探索性思维,发散思维,对软件测试有浓厚的兴趣并且对工作有责任感和压力
【软件测试】软件测试基础概念总结