软考复习之路——软工之系统測试
系统測试是软件开发过程中的一个重要的组成部分,是贯穿整个软件开发生命周期、对软件产品进行验证和确认的活动过程。目的是尽快尽早发如今软件产品中所存在的各种问题:与用户需求、提前定义的不一致性问题。
測试发现问题后,要找出其错误原因和位置,进行改正。
系统測试主要包含下面几部分:
静态測试方法包含软工检測和计算机辅助分析;动态包含黑盒(功能測试)和白盒測试。本篇文章重点介绍一下白盒測试的逻辑覆盖。
逻辑覆盖分为语句、条件、判定/条件、条件组合、路径覆盖。
以以下图为例进行说明:
1)语句覆盖
这是起码要做要的覆盖。程序里的每条语句至少运行一次。
測试用例:
{x=3, y=3}能够运行到语句块1和语句块4,所走的路径:a-b-e-f
{x=-3, y=0}能够运行到语句块2、语句块3和语句块4,所走的路径:a-c-d-f
从图中能够看出语句里的判定、分支等就没有什么意义了。能够说这个是測试的最低要求了。
2)判定覆盖
每一个推断的真假分支至少运行一次。
測试用例:
覆盖率要比语句覆盖高近乎一倍,可是在判定语句中也会遗漏很多路径。
3)条件覆盖
和判定的覆盖思路一样,仅仅是把重点从判定移动到条件上来了,每一个判定中的条件可能至少满足一次。
測试用例:
4)判定/条件覆盖
每一个条件全部可能至少出现一次,而且每一个判定本身的判定结果也要出现一次。判定取真假就就覆盖了判定,但是条件去真假两次全然不能满足条件的各种组合。所以条件组合覆盖出现了。
測试用例:
达到100%判定条件覆盖一定可以达到100%的条件、100%判定和100%语句覆盖。
5)条件组合覆盖
每一个判定中条件的各种可能组合至少满足一次。
測试用例:
条件的各种可能都出现了,必定把判定给覆盖了,它覆盖了上面的四种,用例数量大大添加了。
6)路径覆盖
把全部可能路径至少都走一遍
測试用例:
覆盖错误能力是由弱至强的。
随着软件測试技术的不断发展,測试方法也越来越多样化,针对性更强;选择更合适的软件測试方法能够让我们事半功倍。