软件工程与计算总结(十九)软件测试

软件工程与计算总结(十九)软件测试_第1张图片

目录

​编辑

一.引言

1.验证与确认

2.目标

3.测试用例

4.桩与驱动

5.缺陷、错误与失败

二.测试层次

1.测试层次的划分

2.单元测试

3.集成测试

4.系统测试

三.测试技术

1.测试用例的选择

2.随机测试

3.基于规格的技术(黑盒测试)

4.基于代码的技术(白盒测试)

5.特定测试技术

四.测试活动

五.测试度量

​编辑


 

一.引言

软件设计的顺序是自顶向下,软件测试的顺序是自底向上~

1.验证与确认

软件测试是软件质量保障的方法之一:

  • 验证:检查开发者是否正确地使用技术建立系统,确保系统能够在预期的环境中按照技术要求正确地运行~
  • 确认:检查开发者是否反建立了正确的系统,确保最终产品符合规格

软件开发的验证与确认主要有两种手段:静态测试与动态设计~

  • 评审是最为常用的静态分析手段
  • 动态测试就是软件测试,它在软件能够运行时,考察软件运行时的表现,完成验证与确认任务的方法

软件工程与计算总结(十九)软件测试_第2张图片

2.目标

  • 向开发者和用户展示软件满足了需求,表明软件产品是一个合格的产品
  • 找出软件中的缺陷和不足

一个关于软测的定义:为评价与改进产品质量、标识产品缺陷和问题而进行的活动

  • 为目标1进行的测试是有效性测试,它使用用户希望的方式来测试软件系统,发现系统的缺陷并进行改进
  • 为目标2进行的测试是缺陷测试,它在软件测试中具有更大的重要性,目标是发现缺陷,只有发现了缺陷的测试才是成功的测试~

发现尽可能多的缺陷的测试才是成功的,这一点是毋庸置疑的~

3.测试用例

测试用例是一组输入数据与预期结果的组合

软件工程与计算总结(十九)软件测试_第3张图片

  • 输入数据:外界接受的数据or系统内部的状态数据
  • 输出结果:数据输出or运行表现

4.桩与驱动

软件工程与计算总结(十九)软件测试_第4张图片

  • 桩程序:被测试部件的交互环境,它扮演被测试部件需要调用的其他系统部件~(只是规格上与其他部件相同,内部实现代码要简单的多)
  • 驱动程序:负责创建被测试部件的执行环境,并驱动和监控被测试部件执行测试用例的过程,判定测试用例的执行结果~

5.缺陷、错误与失败

  • 缺陷:系统代码中存在的不正确的地方
  • 错误:如果系统执行到缺陷,就可能使得执行结果不符合预期且无法预测,表现出来的不稳定状态就称为错误。
  • 失败:错误的发生会使得软件的功能失效

(软件测试的目标是发现缺陷,但实际上发现的是失败~只有对失败进行分析调试才能发现错误并加以修复)

二.测试层次

1.测试层次的划分

通过测试对象测试目标两个维度来划分测试的层次~

软件工程与计算总结(十九)软件测试_第5张图片

2.单元测试

又称为模块测试,是对程序单元(软件设计的最小单位)进行正确性检验的测试工作

  • 在过程化编程中,一个单元就是一个函数与过程
  • 在面向对象编程中,一个单元就是类的一个方法

测试一个程序单元时,需要构建桩程序和驱动程序,将其与其他程序单元隔离~

软件工程与计算总结(十九)软件测试_第6张图片

3.集成测试

(主要采用白盒+黑盒,是为了检验系统功能)

又被称为组装测试,即对程序模块一次性或采用增量方式组织起来,对系统的接口进行正确性检验的测试工作——通常在单元测试之后,系统测试之前进行~

集成测试非常依赖桩程序和驱动程序,常见的集成策略包括大爆炸集成和增量集成,增量集成有自顶向下、自底向上、持续集成等多种方式~

软件工程与计算总结(十九)软件测试_第7张图片

4.系统测试

前两者更加关注技术上的正确性,重在发现设计缺陷和代码缺陷,系统测试更关注不符合需求的缺陷和需求自身的内在缺陷~

系统测试关注整个系统的行为,所以不依赖于桩程序and驱动程序~

三.测试技术

1.测试用例的选择

测试是有代价的(人力、时间、金钱成本),目标是发现尽可能多的缺陷,并不绝对要求发现所有缺陷~

软件测试人员要仔细选择测试用例,在代价尽可能小的情况下发现足够多的缺陷~

2.随机测试

基于软件工程师直觉和经验的技术,也是实践中最为广泛使用的测试技术~

但并不是最优的测试技术,有时可以发现其他技术不能发现的缺陷,但其测试到缺陷的几率却比其他技术要小的多~

3.基于规格的技术(黑盒测试)

把测试对象看做一个黑盒子,完全基于输入和输出数据来判定测试对象的正确性——使用测试对象的规格说明来设计输入和输出数据~

等价类划分:

把程序的输入域划分为若干部分,然后从每一个部分选取少数代表性的个体作为测试用例

软件工程与计算总结(十九)软件测试_第8张图片

  • 有效等价类:对于程序的规格说明来说是合理的、有意义的数据输入构成的集合
  • 无效等价类:与有效等价类的定义正好相反

边界值分析:对前者划分方法的补充——因为错误往往发生在边界而非内部~

决策表:为复杂逻辑判断设计测试用例的技术,决策表由条件声明、行动声明、规划选项和行动选项四个象限组成的表格

状态转换:专门针对复杂测试对象的测试技术,该类复杂测试对象输入数据反应是多样的,还需要依赖自身的状态才能决定,如果测试对象的状态不同,那么即使输入数据是一样的,输出也会有所不同~

4.基于代码的技术(白盒测试)

与黑盒不同,将测试对象看做透明的,不关心测试对象的规格,而根据对象内部的程序结构来设计测试用例进行测试工作~

语句覆盖:保证每一行代码都至少执行一次

(较弱的代码覆盖)

条件覆盖:每个判断结果至少都满足一次

(仍不能保证所有路径的覆盖)

路径覆盖:每条独立路径都至少执行一次

5.特定测试技术

  • 面向对象的测试
  • GUI测试
  • 基于web的测试
  • 基于组件的测试
  • 并发程序的测试
  • 协议遵从性测试
  • 实时系统测试

四.测试活动

  • 测试计划:按照工程的做法,在开始具体的软件测试活动之前,必须明确工作范围等计划
  • 测试设计:进一步明确需要被测试的对象,为被测对象设计用例集合
  • 测试执行:要严格按照测试用例来完成,并记录相应的测试结果
  • 测试评价:执行结束后,必须评价测试结果,以确定测试是否成功

软件工程与计算总结(十九)软件测试_第9张图片

五.测试度量

软件工程与计算总结(十九)软件测试_第10张图片

你可能感兴趣的:(#,软件工程与计算,软件工程,考研,单元测试,集成测试)