首页 > 代码库 > 软考复习之路——软工之系统测试

软考复习之路——软工之系统测试

          系统测试是软件开发过程中的一个重要的组成部分,是贯穿整个软件开发生命周期、对软件产品进行验证和确认的活动过程。目的是尽快尽早发现在软件产品中所存在的各种问题:与用户需求、预定义的不一致性问题。

 

         测试发现问题后,要找出其错误原因和位置,进行改正。

 

         系统测试主要包括以下几部分:


 

          静态测试方法包括软工检测和计算机辅助分析;动态包括黑盒(功能测试)和白盒测试。本篇文章重点介绍一下白盒测试的逻辑覆盖。

         

          逻辑覆盖分为语句、条件、判定/条件、条件组合、路径覆盖。

    以下面图为例进行说明:

    


          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)路径覆盖

                把所有可能路径至少都走一遍

      测试用例:

 

           覆盖错误能力是由弱至强的。

          随着软件测试技术的不断发展,测试方法也越来越多样化,针对性更强;选择更合适的软件测试方法可以让我们事半功倍。