如何将静态测试的结果应用到动态测试中

发表于:2011-4-22 11:31

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:陈静    来源:51Testing软件测试网采编

  通常情况下,嵌入式软件测试一般采用黑盒测试白盒测试相结合的方法,白盒测试一般分为静态测试动态测试两种。静态测试不实际运行软件,主要是对软件的编程格式、结构等方面进行评估,包括代码检查、静态结构分析、代码质量度量等;而动态测试需要在Host或Target环境中实际运行软件,并使用设计的测试用例去探测软件漏洞,包括功能确认与接口测试、覆盖率分析、性能分析、内存分析等。

  嵌入式软件测试的一个基本原则:尽可能的把静态测试的结果应用到动态测试中。而动态测试运用最为广泛的是路径测试法,因此本文将重点介绍静态测试中的静态结构分析结果如何应用到路径覆盖率测试中。

  静态结构分析主要是以图形的方式表现程序的内部结构,例如程序调用关系图、程序内部控制流程图。路径覆盖率测试是通过分析控制结构的环路复杂性,导出可执行路径集合,从而设计测试用例进行测试。因此,对一个程序的测试分析,我们可以先进行静态结构分析,然后根据其分析结果――程序控制流程图来设计测试用例进行动态的路径测试,实现动态测试的全面性和充分性。

  基本测试思路和步骤如下:

  (1)静态结构分析——得出程序控制流程图

  利用专业的静态测试工具根据程序或函数的源代码分析得出控制流程图。控制流程图描述程序控制结构,可映射到一个相应的设计流程图。如:

  在控制流程图中,方框代表一个或多个语句;菱形框可被映射为一个结点,代表判断条件;箭头,代表控制流,类似于流程图中的箭头。

  (2)确定独立路径数

  为确保所有语句被至少执行一次,独立路径必须包含一条在定义之前不曾用到的边。确定独立路径数有多种方式,其中圈复杂度是一种较简单的计算方法,为程序逻辑复杂性提供定量计算,有以下三种方法:

  a.控制流程图中区域的数量;

  b.V(G)=E-N+2,E是控制流程图中边的数量,N是控制流程图中结点的数量;

  c.V(G)=P+1,P是控制流程图G中判定结点的数量。

  由以上三种方法均可得出上图的圈复杂度为4,即独立路径数为4条,可根据环路以及箭头的方向判断具体路径,分别为:

  路径1:1-2;

  路径2:1-5-6-4-3-1-2;

  路径3:1-5-7-8-9-4-3-1-2;

  路径4:1-5-7-10-9-4-3-1-2。

  (3)设计测试用例

  根据上面的独立路径,去设计输入数据,使程序分别执行到上面四条路径。

  路径1:输入数据a=0;预期结果x=0;

  路径2:输入数据a=1,b=0;预期结果x=2;

  路径3:输入数据a=1,b=1;预期结果x=10;

  路径4:输入数据a=1,b=2;预期结果x=20。

  由以上测试思路和步骤我们可以看出,通过对程序进行静态结构分析获得程序控制流程图,可准确判断程序的独立路径数,进而设计充足的测试用例对程序进行动态覆盖率测试,路径覆盖率可达到100%,即所有路径均被测试执行到,保证了测试的充分性。

《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • giftboys
    2011-4-26 17:17:08

    图能不能优化一下,反正我是看不懂图!

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号