软件测试方法总结

时间:2024-03-14 11:07:26

语句覆盖

设计测试用例,让程序的每个可执行的语句都执行一次。在分支处通过不同的用例,让分支的不同方向都执行过。
软件测试方法总结
在图中示例中,由于分支3和分支5并没有需要执行的语句,所以在语句覆盖时,并不需要顾及这两个分支,将可以执行的语句全执行过的路径选择1-2-4即可。

判定覆盖(分支覆盖)

设计测试用例,让每个判断分支的位置,正确和错误都经历过一次,或者说分支的每个方向都经历过一遍。
软件测试方法总结
判定覆盖的选择比较简单,可以设计用例,让所有的分支都走正确的分支,再设计测试用例让所有分支都走错误的分支。只要满足所有分支的所有选择都经历过至少一次即可。

条件覆盖

针对于判定条件是复合条件的情况,比如A&&B这个判定条件,当A不成立B成立时复合后为不成立,A成立B不成立复合后也为不成立,但这两个情况在条件覆盖时并不相同。条件覆盖是让复合条件的每个子条件都经历过至少一次。
软件测试方法总结

判定条件覆盖

这种方法是判定覆盖和条件覆盖的交集,通过设计测试用例,让所有的条件执行一次而且所有的判断的条件也要执行一次。简便方法是让所有的取值条件都成立做一条测试用例,再让所有的取值条件都不成立做一条测试用例,这样就可以同时满足判定覆盖也同时满足条件覆盖。
软件测试方法总结

条件组合测试

通过设计测试用例,使得每个判断中每个条件的所有可能组合至少出现一次。可以将每个判断条件的取值分开写,再设计用例进行组合。还是用A&&B的例子,可能的所有组合为A成立B成立,A不成立B成立,A成立B不成立,A不成立B不成立,设计用例让这四个情况都经历过一次就称为条件组合测试。
软件测试方法总结

路径覆盖

设计测试用例,来覆盖程序中的所有可能的执行路径。所谓执行路径,就是在分支的情况下,让分支的组合都经历过一次,这种方法很可能产生的测试特别麻烦,所以一般不用。比如如果有两个分支,分别记作A和B,共有四个路径,A成立B成立,A不成立B成立,A成立B不成立,A不成立B不成立,需要让这四个组合都经历一遍。
软件测试方法总结软件测试方法总结

基本路径测试

由于路径覆盖可能会相当麻烦的原因,采用简化版的基本路径测试,即采用条件组合和路径覆盖组合的方式设计测试用例。基本路径测试并不是测试所有路径的组合,仅仅保证每条基本路径被执行一次。这种方法很像判定覆盖,区别在于,判定覆盖在最少情况下,只需要两个测试用例即可满足(全成立和全不成立),但是基本路径测试不行,测试用例数最小为圈复杂度的值,即分支点数+1,简单来说就是if-else的数目加一,找测试用例时先根据代码画出流图,根据流图,从头开始写,每次反转最前面的分支的选择,最后即可得出所有的基本路径,再根据这个基本路径确定测试用例。
软件测试方法总结
如图所示,分至点为1,2,6三个点,所以基本路径有四条。第一个分支处如果选择左侧方向,得到的是路径1,反转后走向右侧方向,再到2的分支,同样道理先走左侧即6,一直同理走下去会得到路径4,再反转最前面的分支2,得到的是路径2,再反转分支6,得到的是路径3。这样就得到了四条用于基本路径测试的基本路径,再根据不同路径的条件设计测试用例即可。

总结

语句覆盖是让程序的所有语句都能执行一次
判定覆盖是让程序中每个分支的不同方向都经历过一次
条件覆盖是让每个分支的判断条件中的每个子条件都经历过一遍
判定条件覆盖是条件覆盖的进一步,在条件判断的基础上还要满足判定覆盖
条件组合测试是让所有分支的条件的可能组合都经历过一遍
路径覆盖时让程序执行的可能路径都走一遍,类似于判定覆盖和语句覆盖的结合
基本路径测试是路径覆盖的简化版,让所有的基本路径经历过一遍即可