1.软件测试
测试
- 概念
检测和评价软件以确定其质量的过程和方法,即评价软件或程序的属性和能力,以确定它是否满足所需结果的过程和方法。 - 分类
软件测试可以分为静态测试(审查检阅)和动态测试(运行和使用软件)- 进行静态分析时,不用运行软件,只对源代码进行分析。检测程序的控制流和数据流,以及发现执行不到的无用代码,死循环,重复定义的数据等。静态分析是动态测试开始前的有效质量检测的手段。
- 动态测试技术借助于输入样例(测试样例)来执行软件,一般分为功能测试(黑盒测试)和结构测试(白盒测试)。
调试
- 概念
发现所编写软件中的错误,确定错误的位置并加以排除,使之能由计算机或相关软件正确理解与执行的方法与过程。 - 与测试的区别
- 1)测试是从侧面证明程序员的“失败”,调试是为了证明程序员的正确
- 2)测试是以已知条件开始,用预先定义的程序,且有预知的结果,不可预见的只有程序是否通过测试。调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的。
- 3)测试是有计划的,并进行测试设计。调试是不受时间约束的。
- 4)测试是发现错误,改正错误,重新测试的过程。调试是一个推理过程。
- 5)测试的执行是有规律的。调试的执行要求程序员进行必要的推理。
- 6)测试经常由独立的测试组在不了解软件设计的条件下完成的。调试必须由了解详细设计的程序员完成。
- 7)大多数测试的执行和设计可由工具支持。调试时,程序员利用的主要工具是调试器。
2.黑盒测试
- 概念
把测试对象看作一个黑盒子,测试人员不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。黑盒测试又叫做功能测试或者数据驱动测试。
注:黑盒测试是在程序接口上进行测试
- 目的(主要几点)
- 是否有不正确或者遗漏了的功能
- 在接口上,输入能否正确的接受
- 是否有数据结构错误或外部的信息(例如数据文件)访问错误
- 性能上是否能够满足要求
- 具体方法
- 等价类划分法
- 把程序的输入域划分为若干部分,然后从每一部分中选少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。
- 具体过程:划分等价类->设计测试用例
- 边界值分析法
- 错误推测法
- 因果图法
- 判定表驱动法
- 正交实验设计法
- 功能图法
- 等价类划分法
3.白盒测试
4.软件度量
5.软件维护
-
定义
- 软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需求而修改软件的过程
-
类型
- 改正性维护;适应性维护;完善性维护;预防性维护;
-
特点
- 非结构化维护(没有完善的文档);
- 结构化维护(有完善的文档的维护);
-
什么叫软件的可维护性(所关注的几个主要的因素:测试能力/友好程度)
软件可维护性是指软件产品被修改的能力,修改包括纠正、改进或软件对环境、需求和功能规格说明变化的适应
- 软件维护的度量-可测试性
- 一个可维护的软件必然是可测试的。软件的可测试性是指验证软件程序正确的难易程度。可测试性好的软件,通常意味着软件设计简单,复杂性低。因为软件的复杂性越大,测试的难度也就越大。
- 软件维护的度量-可理解性
- 软件可理解性表现为外来读者理解软件的结构、接口、功能和内部过程的难易程度。模块化、详细的设计文档、结构化设计、源代码内部的文档和良好的高级程序设计语言等等,都对改进软件的可理解性有重要贡献。
- 软件维护的度量-可修改性
- 软件容易修改的程度和软件设计原理和规则直接有关。耦合、内聚、局部化、控制域与作用域的关系等等,都影响软件的可修改性。一个软件可维护性较低,也就是说会随着性能要求的变化而“腐烂”的原因有四个:过于僵硬、过于脆弱、复用率低、耦合过高。
6.习题
等价类习题
知识点
- 等价类
有效等价类:对程序的规格说明是有意义的、合理的输入数据所构成的集合。
无效等价类:对程序的规格说明是无意义的、不合理的输入数据所构成的集合 - 划分原则
- 如果输入条件规定了取值范围或个数,则可确定一个有效等价类和两个无效等价类。例如,如果输入值x在0到100之间,那么有效等价类是0<=x<=100,无效等价类是x<0和x>100。
- 如果输入条件规定了输入值的集合或是规定了“必须如何”的条件,则可以确定一个有效等价类和一个无效等价类。例如,如果输入值是日期类型,那么有效等价类是日期类型的数据,无效等价类是非日期类型的数据。
- 如果输入条件是布尔表达式,则可以分为一个有效等价类和一个无效等价类。例如,如果要求密码非空,则有效等价类为非空密码,无效等价类为空密码。
- 如果输入条件是一组值,且程序对不同的值有不同的处理方式,则每个允许的输入值对应一个有效等价类,所有不允许的输入值的集合为一个无效等价类。例如,如果级别的值是初级、中级、高级,则有效等价类应该有三个,分别为初级、中级、高级,无效等价类有一个,为其他任何级别。
- 如果规定了输入数据必须遵循的规则,则可划分出一个有效等价类(符合规则)和若干个无效等价类(从不同的角度违反规则)
- 划分步骤
- 对每个输入和外部条件进行等价划分,画出等价类表,并为每个等价类进行编号。
- 设计一个测试用例,使其尽可能多地覆盖有效等价类,重复这一步直到其有效等价类被覆盖。
- 为每一个无效等价类设计一个测试用例。
在某一PASCAL语言版本中规定: “标识符是由字母开头,后跟字母或数字的任意组合构成。有效字符数为8个,最大字符数为80个。” “标识符必须先说明,再使用。” “在同一说明语句中,标识符至少必须有一个。”
要求: 1.用等价类划分的方法,建立输入等价类表;
2.选取足够多的测试用例,覆盖所有的等价类。