白盒测试
白盒测试:称为结构测试。白盒指的是程序的内部结构和运作机制是可见的。
目的:检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序的不同地方设置检查点,检查程序的状态确定实际运行状态与预期状态是否一致。
测试方法:静态方法和动态方法。
静态分析:不执行程序而进行测试的技术。
目的:检查软件的表示和描述是否一致,没有冲突或者没有歧义。
动态分析:当软件系统在模拟或真实的环境中执行前、过程中、执行后,对其行为进行分析。
程序结构分析:把程序框图变为控制流图。
控制流图
节点、操作、汇合点。
控制流线或弧:控制的顺序。
结构化程序设计就是将程序分为多个功能模块。
控制流图是对控制流图的简化,便于了解路径。
程序的要求:
不应包含:
转向并不存在的标号。
没有用的语句标号。
从入口无法到达的语句。
不能到达停机语句。
变量被语句定义:某一语句执行时能改变变量V的值,则称V是被该语句定义的。
变量被语句引用:当某一语句执行应用了变量V的值,则称为变量被语句引用。
控制流分析:简称为CFA。是一种确认程序控制流程的静态代码分析技术。
语句覆盖:使程序中的每一条可执行语句至少执行一次。
判定覆盖:使程序中的真分支和假分支至少经历一次,即判断的真假值均被满足。
条件覆盖:使每个分支的条件都有不同的取值。
判断/条件覆盖:判定中每个条件的所有可能取值至少取值一次,每个判定分支执行一次。
测试到何种程度是测试数据的准则。
路径覆盖:覆盖程序中每条可能路径。
如果出现分支结构。
当程序中的分支结构由多个时,可能出现嵌套分支结构和连锁分支结构。
简单循环:一个循环。
嵌套循环:循环里有循环。
连锁循环:一个循环接着一个循环。
非结构循环:俩个循环的语句有一定联系。
循环测试路径的选择:
简单循环、嵌套循环、连锁循环、非结构循环(不是前三种就是第四种)。
简单循环:
零次循环:从循环入口到出口。
一次循环:检查循环初始值。
二次循环:检查多次循环。
m次循环:检查在多次循环时最大次数循环、比最大次数多一次、比最大次数少一次的循环。
嵌套循环测试:
对最内层循环做简单循环的全部测试,外层循环都设置为最小值。
逐步外推,对其外面一层循环进行测试进行测试,外层循环保持最小值,内层循环取典型值。
反复进行直到各层测试完毕。
对所有层取最大或最小。
连锁循环:如果各个循环独立用简单循环的测试方法。如果不是相互独立,则需要使用测试嵌套循环的办法来解决。
非结构化循环:使用结构化程序重新设计测试用例。
基本路径测试方法把覆盖的路径数压缩到一定限度内,程序中的循环体最多执行一次。在程序控制流的基础上,分析环路的复杂性构造出可执行路径的集合,设计测试用例时每个可执行语句执行一次。
盒图表示五种基本控制结构。顺序型、选择、while、untile、多分支循环。
do-while循环是先执行一次再判定。
do-until循环是先判断再执行。
利用盒图可以较轻松的看出路径数。