05 功能测试

软件开发模型:

开发模型(软件生命周期模型)是指软件从开始研制到最终被废弃所经历的各个阶段,在不同的阶段中,由不同的组织和人员执行不同的任务。

常见开发模型:

瀑布模型:

特点:线性模型,文档驱动
优点:只需要关注当前进行的阶段
缺点:不响应需求变化
应用场景:大型项目,银行、保险、建筑…
在这里插入图片描述

软件开发模型:

常见的测试模型:

V模型:
在这里插入图片描述

W模型:
在这里插入图片描述
优点:测试贯穿软件开发的全生命周期;早参与,早发现,早解决。
**缺点:**技术和管理要求比较高。

软件质量模型:

功能:关注业务功能使用。
可靠性:容错性能(恢复正常的时间、能力),纠错能力
易用性:易读,易懂
效率:时间、性能(响应时间,消耗的资源(CPU,内存))要求
可维护性:软件运维人员去维护公司现有项目,为后续功能的开发与维护提供便利。
可移植性:在不同软件、硬件平台都能正常工作。
ISO:国际标准
GB:中国标准

软件测试用例:

测试用例:一个为了特定目的(验证产品的功能实现能否满足用户需求)而设计的包含(测试输入、执行条件、预期结果)的文档,文档的形式:Excel、xmind等。

标题 测试输入 执行条件 预期结果
验证电脑开机功能 有电 按下开机键 屏幕点亮

软件测试用例的作用

  • 便于理清测试思路,确保覆盖测测试的功能点无遗漏
  • 便于测试工作量的评估
  • 便于提前准备测试数据
  • 便于把控测试工作进度
  • 便于回归测测试
  • 便于测试工作的组织,提高测试效率,降低测试交接成本

等价类用例设计方法:

等价类:在所有测试数据中,具有某种共同特征的数据子集。通过科学的方法找到具有共同特征的测试输入的子集,能够从穷举测试中解放出来。
有效等价类:满足需求的。
无效等价类:不满足需求的。

等价类划分法设计测试用例:

步骤
1:需求分析
2:划分等价类:有效/无效(规则,长度,类型,是否为空,是否重复)
3:设计测试用例
用例优先级
P0:一般为保证软件中最主要、重要的功能,最基本的流程能够正常运行而设计。
P1:次要功能,小功能。
P2:UI、边界、错误的设置。
P3:错误信息,较复杂的场景,不常用的场景。

边界值:

等价类划分法的一种补充手段。
测试经验表明错误往往会发生在输入或者输出范围的边界上。
边界值概念:对输入或输出的边界值【有效等价类和无效等价类的界限】进行测试的一种黑盒测试方法。

在这里插入图片描述

上点:区分有效和无效的分界点,边界之上的点。
内点:有效等价类里面的任意一点,边界之内的点。
离点:分界点附近的点,离边界最近的左右两点。

判定表:

存在多个输入条件,多个输出结果,输入和输入之间有组合关系,输入和输出之间存在制约关系。

判定表的组成:

条件桩:所有输入条件。
动作桩:所有的可能的输出结果。
条件项:单个条件的取值范围,一般都是有效等价类和无效等价类。
表示方法:字符:真/有效等价类/Y,假/无效等价类/N
数字:真/有效等价类/1,假/无效等价类/0
动作项:基于每一种条件的组合,得到确认的结果。
测试用例的步骤

  1. 明确条件桩(找到所有输入条件)。
  2. 明确动作桩(找到所有输出结果)。
  3. 对条件桩进行全组合。
  4. 明确每个组合对应的动作桩(基于每一种条件的组合情况, 确定本组合下的输入结果)。
  5. 设计测试用例,每行数据对应一条测试用例。

使用场景:多条件组合情况。

因果图:

用图解的方法表示输入的各组合关系,写出判定表,进而设计测试用例的一种黑盒测试方法。
适用范围:适用于分析程序输入条件的各种组合情况,以及输入和输出之间的依赖关系。
基本符号:
恒等:- 条件成立,结果成立。
:~ 条件成立,结果不成立;条件不成立,结果成立。
:V 只要有一个条件成立,结果就成立。所有条件都不成立时,结果才不成立。
与/且:^ 多个条件必须同时成立,结果成立。只要有一个不成立,结果就不成立。
测试用例的步骤

  1. 需求分析
  2. 画出因果图
  3. 将因果图转换为判定表
  4. 生成测试用例

正交法:

用最小的测试用例获得最大的测试覆盖率
正交表:一种特制的表,一般的正交表标记为:Ln(mk)
k表示因素(输入参数)
m表示水平(输入参数的取值)
n表示测试用例数
测试用例的步骤

  1. 需求分析
  2. 确定因素与水平
  3. 确定要采用的正交表
  4. 将正交表中的字母用文字代替
  5. 设计测试用例(一行就是一条测试用例)

场景法:

概念:模拟用户操作软件时的场景,主要用于测试多个功能之间的组合使用情况。
使用在集成测试、系统测试、验收测试。
测试用例的步骤

  1. 需求分析
  2. 绘制流程图
  3. 设计测试用例(一条路径流程就是一条测试用例)

缺陷跟踪管理流程图:

在这里插入图片描述

错误推测法

利用经验和智慧发现程序中可能犯错的地方。

测试用例设计方法总结:

  • 具有输入功能,但输入之间没有组合关系:等价类
  • 输入有边界,如长度、类型:边界值
  • 多输入,多输出,输入和输入之间存在组合关系,输入和输出之间存在依赖关系:判定表、因果图
  • 用最少的测试用例获得最大的测试用例:正交法
  • 多个功能的组合测试:场景法、流程图
  • 最后推荐使用错误推测法来进一步补充测试用例

缺陷

软件缺陷的定义:软件在使用过程中存在的任何问题,都叫软件的缺陷,简称bug。
软件缺陷的存在会导致软件产品在某种程度上不能满足用户的需求。
测试执行时,实际结果和预期结果不一样。

缺陷的判定标准:

  1. 未达到需求说明书指明的功能
  2. 出现了需求说明书指明不应该出现的错误
  3. 实现了需求说明书之外的功能
  4. 未达到需求说明书虽未明确提及但是应该实现的目标
  5. 用户角度发现的各种问题与错误

缺陷的产生原因及根本原因:

缺陷产生的原因:需求文档存在错误
设计存在错误:代码错误
缺陷产生的根本原因:需求变更;沟通不畅,信息不同步;软件复杂;进度压力。

软件缺陷的核心内容:

  1. 标题:描述缺陷的的基本信息(如:输入密码长度为5时,注册成功)
  2. 前置条件:描述缺陷出现依赖的相关基础条件(如:未注册手机号)
  3. 复现步骤:测试用例里面的执行步骤
  4. 实际结果:执行被测试软件过程中,系统给出的结果
  5. 预期结果:参照需求说明书,在测试用例中设计的预期结果
  6. 附件:方便开发定位bug的关键信息,包含图片,日志log等。

缺陷的基本要素:

  • 缺陷编号:缺陷的唯一性标志
  • 缺陷状态:表示缺陷当前处于哪个阶段
  • 常见缺陷状态:

new:新建,表示缺陷刚创建
open:打开,表示已经指派或者开发认领了bug
inprogress:进行中,表示开发正在修改中
fixed:已修复,表示测试可以验证了
closed:已关闭,表示测试验证通过
reopen:重新打开。
rejected:已拒绝,表示开发拒绝了当前bug
postpone/delay:已延迟,表示开发延迟修复该bug

  • 缺陷所属模块:缺陷属于哪个被测的模块
  • 缺陷严重程度:该缺陷的破坏性能或影响程度

5-critical
4-major
3-medium
2-minor
1-tiny

  • 缺陷优先级:处理该缺陷的优先程度

urgent priority
veryhigh priority
high priority
medium priority
low priority

  • 缺陷类别:用于分类整理缺陷

功能错误
界面(UI)错误
兼容性缺陷
易用性
改进建议
其他

提交缺陷注意事项:

  • 核心要素
  • 基本要素
  • 可重现:缺陷可以复现
  • 唯一性:一个缺陷上报一个问题
  • 规范性:符号公司或者项目要求
  • 准确:描述的信息是争取的
  • 具体:有细节且是真实特定的
  • 简介易懂:描述简单容易理解
  • 次序清晰:描述缺陷过程有条件,有先后顺序

缺陷跟踪管理过程:

在这里插入图片描述

缺陷跟踪流程:

场景1:确认bug解决
测试【new】= = 》开发【open】= =〉开发【fix】= =》测试【close】
场景2:验证未通过,缺陷仍存在
测试【new】= =〉开发【open】= =〉开发【fix】= =》测试【reopen】
场景三:开发延期处理
测试【new】= =〉开发【open】= =〉开发【postpone】
场景四:拒绝处理
测试【new】= =〉开发【open】==〉开发【reject】

猜你喜欢

转载自blog.csdn.net/pcybb/article/details/115393143
05