逻辑覆盖要做到全面而不遗漏,是不太可能的。
无充足的时间
即使给出足够的时间,100%的语句覆盖也只能检测84.7%的故障, 100%的分支覆盖也只能检测93.9%的故障。
因此,在测试时,应该有重点地对容易发生问题的的地方设计测试用例。
两个结构覆盖准则:
ESTCA覆盖准则
一套错误敏感测试用例分析(Errors Sensitive Test Cases Analyst)规则。
K.A.Foster基于经验,找出了程序中谓词容易出错的部分。
LCSAJ覆盖准则
Woodward等人提出了一种层次LCSAJ覆盖准则。
LCSAJ (Linear Code Sequence And Jump)是指线性代码序列与跳转。
一个LCSAJ是一组顺序执行的代码,以控制流跳转为其结束点。LCSAJ的起点是程序的第一行或者转移语句的入口点,或者是控制流可以跳达的点。
LCSAJ路径:首尾相连,从程序头到尾的一连串LCSAJ。