软件测试


网站首页 | 软件测试论坛 | 软件测试培训 | 软件测试博客 | 软件测试杂志 | 软件测试沙龙 | 软件测试下载 | 软件测试顾问
业界新闻 | 软件测试人才 | 软件测试技术 | 软件测试工具 | 行业软件测试 | 软件测试管理 | 软件质量专栏 | 软件开发专栏
当前位置:首页>>软件测试工具>>其它工具>>正文
嵌入式软件工业化测试工具LOGISCOPE
文章出处:北京奥索汉泰科技有限公司 作者:不详 发布时间:2005-10-30

[摘要] 本文论述了软件的质量要求,在此基础上,论述了LOGISCOPE对软件开发的质量保证工作。如何在软件开发的各个阶段使用这些工具,以保证所开发的软件的高可靠性和可维护性等。对LOGISCOPE的合理使用,将有助于开发队伍通过ISO9001认证,更便于提高开发队伍的CMM等级。将Logiscope和设计工具SCADE结合使用,能够使软件符合RTCA/DO-178BIEC1508IEC880GJB-2786安全-关键系统的软件质量要求。

1.软件的质量要求

软件,是大系统中的重要组成部分;嵌入式软件,是指将软件作为系统的一部分嵌入在系统中,作为系统的一部分使用的软件,这种软件最关键的要求是安全性和高可靠性。特别是在军用领域中更是如此。

因此,必须用有效的手段和软件工具支持和满足嵌入式软件开发、软件测试和评审等单位,以保证他们进行软件质量保证活动。即,要有相应的软件工具支持开发者,以保证在最短的时间内、用最少的费用,开发高质量的软件,以满足客户的需求,同时减少产品交付后的维护费用。

通过对实际工程的统计,会发现在不同的阶段发现和更改一个错误的费用是不同的,下表表明了具体的数据[1]

 

软件开发阶段

编码阶段

测试阶段

维护阶段

发现和更改错误的费用

   1

   4

16

 

另一方面,统计表明一个项目中,80%的错误往往是由20%的程序引起的。因此,如何有效的确认和标识出这20%的部件是十分重要的。

经验也告诉我们,错误多的程序,其结构、算法、程序风格往往非常复杂。

下表是在各个软件开发阶段各种活动(评审和测试)发现错误的情况[1]

 

发现错误活动

1000行发现的错误数

需求评审

2.5

设计评审

5.0

代码评审

10.0

集成测试

3.0

验收测试

2.0

 

    软件产品同其它工业产品一样,其质量取决于软件的开发过程中对质量的控制。要提高好软件的质量,必须从各个阶段来控制。

LOGISCOPE是一组工具集。它贯穿于软件开发、代码评审、单元/集成测试、系统测试、以及软件维护阶段。

LOGISCOPE 是面向源代码进行工作的。LOGISCOPE针对编码、测试和维护。因此,LOGISCOPE的重点是帮助代码评审(Review)和动态覆盖测试(Testing)。

2 LOGISCOPE用于开发阶段

2.1 定义质量模型

    重视软件开发质量的公司,应当定义程序员编程规则[2]和质量评价模型。以保证公司所开发的源代码的稳定性性、易维护性、高可靠性和可移植性。

   RuleChecker预定义了50个的编程规则:

  · 名称约定(如:局部变量用小写等);

· 表示约定(如:每行一条指令);

· 限制(如:不能用GOTO语句,不能修改循环体中的计数器等);

   用户可以从这些规则中选择,也可以用Tcl、脚本和编程语言定义新的规则。

   此外,还提供50个面向安全-关键系统的编程规则。

   AuditISO9126[3]模型作为质量评价模型的基础。质量评价模型描述了从Halstend、McCabe的度量方法学和VERILOG引入的质量方法学中的质量因素(可维护性、可重用性、等)和质量准则(可测试性、可读性、等)。

   工程项目领导或质量管理人员可以根据准则、应用软件的生存周期、合同需求等,挑选并采纳适用于项目需求的质量模型。

2.2 验证、评审和改进代码

    RuleChecker用所选的规则对源代码进行验证。指出所有不符合编程规则的代码,并提出改进源代码的解释和建议。RulrChecker通过文本编辑器直接访问源代码并指出需要纠正的位置。

   Audit将被评价的软件与规定的质量模型进行比较,用图形形式显示软件质量的级别,因此,质量人员可以把精力集中到需要修改的代码部分。对度量元素和质量模型不一致的地方作出解释并提出纠正的方法。

   对软件质量的详细分析,Audit可用各种图形表示:

· 应用系统的体系结构——调用图显示过程和函数之间的关系。评审应用系统的设计;

· 每个过程和函数的逻辑结构——控制流图显示算法的逻辑路径。用图形表示评审函数的复杂性;

· 与质量模型的一致性——Kiviat图和饼图使质量等级与所选择的参考之间的一致性更加可视化。

3 LOGISCOPE用于测试阶段   

3.1定义测试准则

    在软件测试阶段,最重要的是保证代码的所有路径都被充分的覆盖[4,5]。只有那些,经过充分测试的软件才是可信的。特别是高可靠性的软件。

    为保证测试的有效性,必须客观地定义可量化的准则和策略以判断何时结束测试阶段。

    LOGISCOPE推荐对指令(IB)、逻辑路径(DDP)和调用路径(PPP)的覆盖测试。此外对安全-关键软件还提供了MC/DC的覆盖测试[5]。

 3.2测试的有效性

     TestChecker产生每个测试的测试覆盖信息和累计信息。用直方图显示覆盖比率,并根据测试运行情况实时在线更改。随时显示新的测试所反映的测试覆盖情况。

TestChecker允许所有的测试运行依据其有效性进行管理。用户可以减少那些用于非回归测试的测试。

 

3.3测试的优化

      在测试阶段的第一步,执行的测试是功能性(黑箱)测试。其目的是检查所期望的功能是否已实现。在测试初期,覆盖率会迅速增加。象样的测试工作一般能达到70%的覆盖率。但是,要提高此比率是十分困难的。主要是由于测试用例覆盖了相同的测试路径。这时,需要对测试策略做一些改变。执行结构化(白箱)测试,即,要检测没有执行过的逻辑路径,定义新的测试用例覆盖这些路径。

      在执行测试期间,当测试策略改变时,综合的运用TestChecker检测关键因素以提高效率。将TestChecker与Audit配合使用能够帮助用户分析未测试的代码。

     用户可以显示所关心的代码,并通过对执行未覆盖的路径的观察得到有关的信息。信息以图形(控制流图)和文本(伪代码和源文件)的形式提交,并在其间建立导航关联。

     TestChecker管理系统声明新的测试、生成有关文档、定义启动命令、以及自动执行的方法。

4  LOGISCOPE用于维护阶段   

    人们广泛的认识到应用系统的维护费用与开发费用基本相等。经验表明50%的软件维护时间化在对结构、逻辑和运行的理解上。

    LOGISCOPE可以大大的减少对未知系统的理解所需的时间。

    Audit将应用系统的框架以文件形式(部件文件间的关系)和调用图的形式(函数和过程间的关系)可视化。

    函数的逻辑结构以控制流图的形式显示。在控制流图上选定一个节点,即可得到相对应的代码。

行分析,不同层次间的导航,促进对整体的理解。

 

5 对嵌入式领域的支持

LOGISCOPE支持多种测试方式。特别是对嵌入式领域软件的支持。

众所周知,嵌入式系统软件的测试是最为困难的。因为,它的开发是用交叉编译方式进行的。在目标机(Target)上,不可能有多余的空间记录测试的信息。必须实时地将测试信息通过网线/串口传到宿主机(Host)上,并实时在线地显示。因此,对源代码的插装和目标机上的信息收集与回传成为问题的关键。

LOGISCOPE很好地解决了这些技术,成为嵌入式领域测试工具的佼佼者。它支持各种实时操作系统(RTOS)上的应用程序的测试,也支持逻辑系统的测试。其工作原理图如下:

    Logiscope 提供VxWorkspSOSVRTX实时操作系统的测试库。

6 对航空/航天/国防/核电站领域的支持

在航空/航天领域,安全是最关键的问题。因此,欧美的航空/航天制造厂商和使用单位联合制定了RTCA/DO-178B[5]LOGISCOPE 通过对“Reviews and Analysis of the Source Code 和“Structural Coverage Analysis”能够使开发的软件达到RTCA/DO-178B标准的ABC三个系统级。

LOGISCOPE是第一个提供 MC/DC(Modified Condition/Decision Coverage)测试的工具。

VERILOG公司另一个产品SCADE是完全支持RTCA/DO-178BIEC1508[6]IEC880[7]的工具。将SCADELOGISCOPE配置成生产线,确保航空/航天安全关键系统的软件安全可靠。

 

7.软件文档和测试文档的自动生成

Logiscope提供了文档自动生成工具。使用者可以将代码评审的结果和动态测试情况实时生成所要求的文档,这些文档忠实地记录代码的情况和动态测试的结果。文档的格式可以根据用户的需要定制,如,GJB-438A[8]。因此:

1)  避免了代码和文档的不一致性;

2)  避免测试结果和测试报告的不一致性;

3)  减轻了开发人员和测试人员编写文档的工作。

8总结

LOGISCOPE 的使用能够在最短的时间内,提高软的质量和效率。

LOGISCOPE 在开发阶段,查找可寻找潜在的错误。

在代码评审阶段, LOGISCOPE 定位那些具有80%错误的程序模块。

通过对未被测试代码的定位,LOGISCOPE 帮助找到隐藏在未测试代码中的缺陷。

项目领导和质量工程师用LOGISCOPE 定期地检查整个软件的质量。

在各个阶段用LOGISCOPE,改进软件工程的实践,训练程序员的编写良好的代码和测试活动,确保系统易于维护,减少风险。

在有合同关系时,合同方可以用LOGISCOPE明确定义验收时质量等级和执行测试。承制方可以用LOGISCOPE 演示其软件的质量。

 

LOGISCOPE获取ISO/IEC9126定义的“Quality Characteristics”;

LOGISCOPEISO-9001[9]提供需求( test acceptance criteria and qulity records;

LOGISCOPE 为开发者提供SEI/CMM[10]在第2级(Repeatable)所要求的软件质量跟踪等关键实践的要求,推进开发组织尽快达到SEI/SMM3级。 


站内搜索
相关文章
◎WAS服务器负载测试软件导读
◎Radview公司的web性能测试和分析系列工具
◎Running Optimizeit from the command line
◎Optimizeit Code Coverage概览
◎Optimizeit Profiler概览
◎JProbe Suite 4.0使用说明
◎JProbe Profiler-优秀的剖析工具
◎JProbe使用说明
◎JProfiler跟踪和检查系统性能的好工具
◎Running Optimizeit from the command line
◎JProbe Profiler-优秀的剖析工具
◎Compuware DevPartner Studio简介
热门文章
◎测试工具的选择和使用
◎GHOST V8.0 使用详解
◎QALoad优秀的性能测试工具
◎水滴石穿C语言之代码检查工具
◎JProfiler跟踪和检查系统性能的好工具
◎开发自动化测试脚本的技巧和心得
◎Compuware DevPartner Studio简介
◎JProbe使用说明
◎Optimizeit Profiler概览
◎基于GUI的自动化测试工具
◎WAS服务器负载测试软件导读
◎三款Java分析器点评
◎testview测试工具详介
◎测试覆盖率工具--clover.net
◎JProbe Profiler-优秀的剖析工具
◎性能测试软件介绍:SilkPerformer
◎CODETEST——嵌入式软件实时测试工具
◎实时嵌入式软件测试工具的研究
◎选择正确的GUI测试自动化工具
◎抛砖引玉,GUI自动化测试的设计
◎JProbe Suite 4.0使用说明
◎JProbe Profiler-优秀的剖析工具
◎Radview公司的web性能测试和分析系列工具
◎Purify检测的代码错误类型
◎C++TEST基本概述
◎Optimizeit Code Coverage概览
◎代码检测:Code Review与CheckStyle
◎测试工具备查
◎C++Test的使用说明
◎C++TEST功能概述
◎Running Optimizeit from the command line
◎Running Optimizeit from the command line
◎用FIT 集成测试框架进行确认测试

Google提供的广告