开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第12天,点击查看活动详情
灰盒测试
利用被测对象的整体特性信息,采用黑盒测试方法;利用被测对象的内部具体实现信息,采用白盒测试方法;介于白盒和黑盒测试之间的测试方法测试方法称之为灰盒测试。
1)定义:如果即利用被测对象的整体特性信息,又利用被测对象的内部具体实现信息,采用得就是灰盒测试方法。两种信息占得比例不同,相应的灰度就不同。
2)适用对象:一般集成测试采用灰盒测试方法。
按照被测试的软件系统是否运行,将测试分为静态测试和动态测试。
1、静态测试
1)定义:不运行被测试的软件系统,而是采用其他手段和技术对被测试软件进行检测的一种测试技术,例如:代码走读、文档评审、程序分析等。
2)常用技术:静态分析技术。
(1)定义:静态分析是一种不通过执行程序而分析程序的技术。
(2)功能:检查软件的表示和描述是否一致,没有冲突或者没有歧义
(3)目的:纠正软件系统在描述、表示和规格上的错误,因此是任何进一步测试的前提。
(4)静态分析技术主要有3种不同的程序测试可能性
考虑程序是否满足编码规则,语法上是否具有一致性和完整性; 考虑文档描述是否规范、准确、便于查阅; 考虑程序和文档之间的一致性。
(5)静态分析技术有:控制流分析、数据流分析和信息流分析,下面一一介绍:
1、控制流分析
(控制流相关概念)
程序元素:一个程序元素通常是一个条件,一个简单的语句或者一块语句(多个连续语句)。 控制流关系:一个程序的控制流关系(Control Flow Relation)叙述了程序元素和他们执行的次序之间的关系。 控制流图:对应于控制流关系的图被称为控制流图。 控制流矩阵:有控制流图得到,反映相邻程序元素之间的先后顺序关系。 (控制流分析能发现的问题 )
通过对控制流信息进行分析,确保写出的程序不应包含:转向并不存在的标号;没用的语句标号;从程序入口进入后无法达到的语句;不能达到停机语句的语句。
2、数据流分析
(数据流相关概念 )
数据流分析最初是随着编译系统要生成有效的目标码而出现的,这类方法主要用于代码优化(代码优化主要包含:结构优化即可读性、时间效率和空间效率优化、可移植性优化)。数据流分析法关键是数据的引用和定义。 数据的定义:如果程序中某一语句执行时能改变某程序变量V的值,则称V是被该语句定义的。
数据的引用:如果程序中一语句的执行引用了内存中变量V的值,则称V是被该语句引用的。
(数据流分析步骤 )
根据代码得到数据流表 分析数据流表找到以下两种错误:变量未定义但被引用 变量定义但未被引用 2、动态测试 1)定义:按照预先设计的数据和步骤去运行被测软件系统,从而对被测试软件进行检测的一种测试技术。
2)特点:主要分析软件系统在模拟或是真实的环境中执行之前、之中、之后的动态行为。
3)常用技术:动态分析技术
(1)定义:对软件系统运行行为进行分析,包含程序在受控的环境下使用特定的输入进行正式的运行,和期望的结果比较以检查系统运行是正确还是不正确。
(2)常用动态分析技术:
路径测试 分支测试 性能测试 (3)常用动态分析工具及功能
测试覆盖率分析:用于测试对代码的检测范围; 跟踪:跟踪程序执行期间的所有路径 调整:度量程序执行过程中所有的资源 模拟:模拟系统的部分
3、所有测试方法都可以归类为手工测试和自动化测试。