软件测试基础知识03—软件测试方法[上]
静态测试和动态测试(是否执行被测软件角度划分)
静态测试(Static Testing):
定义:
不执行被测软件,通过对被测程序的静态审查,发现代码中潜在的错误。
特征:
不运行被测软件,只对被测软件进行特性分析。扫描程正文,对程序的数据流和控制流等信息进行分析,找出缺陷。一般用人工脱机方式完成,故亦称为人工测试或代码评审;也可借助于静态分析器在机器上以自动方式进行检查,但又不要求程序本身在机器上运行。
代码评审分为:
代码会审、走查、办公室检查、同行评分。
测试范围:
代码检查、静态结构分析、代码质量度量等。
测试活动:
1.检查算法的逻辑正确性,确定算法是否实现了所要求的功能;
2.检查模块接口的正确性,确定形参的个数、数据类型、顺序是否正确,确定返回值类型及返回值的正确性;
3.检查输入参数是否有合法性检查,若没有合法性检查,则应确定该参数是否不需要合法性检查,否则应加上参数的合法性检查;
4.检查调用其他模块的接口是否正确,检查实参类型、实参个数是否正确,返回值是否正确。若被调用模块出现异常或错误,程序是否有适当的出错处理代码;
5.检查是否设置了适当的出错处理,以便在程序出错时,能对出错部分进行重做安排,保证其逻辑的正确性;
6.检查表达式、语句是否正确,是否有二义性。 检查表达式、语句是否正确,是否含有二义性。例如,下列表达式或运算符的优先级:<=、=、>=、&&、||、++、--等;
7.检查常量或全局变量使用是否正确;
8.检查标识符的使用是否规范、一致,变量命名是否能够望名知义、简洁、规范和易记;
9.检查程序风格的一致性、规范性,代码是否符合行业规范,是否所有模块的代码风格一致、规范;
10.检查代码是否可以优化,算法效率是否最高;
11.检查代码注释是否完整,是否正确反映了代码的功能,并查找错误的注释。
动态测试(Dynamic Testing):
定义:
使用运行被测软件。通过源程序运行时所体现出来的特征,来进行执行跟踪、时间分析以及测试覆盖等方面的测试。
前提条件:
测试对象必须是能够被计算机真正运行。
动态测试是真正运行被测程序,在执行过程中,通过输入有效的测试用例,对其输入与输出的对应关系进行分析,以达到检测的目的。
基本步骤:
1.选取(输入条件)定义域内的有效值,或选取定义域外的无效值;
2.对已选取值决定预期的结果;
3.用选取值执行程序;
4.执行结果与预期的结果相比,不吻合则说明程序有错。
注意:
不同的测试方法各自的目标和侧重点不一样,在实际工作中要将静态测试和动态测试结合起来,以达到更加完美的效果。
在动态测试中,又可有基于程序结构的白盒测试(或称为覆盖测试)和基于功能的黑盒测试。
网友评论