一、 客户需求 目前的音响导航第一事业部,在使用 C/C++test之前,主要是通过 Labview 模拟测试来查找代码的漏洞。这样导致后面的测试工作的展开会有很多的困难: 1. 由于只能测试代码的一小部分,导致很难全面的进行测试。 2. 没有很好的办法来衡量测试的程度,不知道测试是否进行的充分,对测试的 结果没有信心。 3. 而且由于没有清晰的需求规格说明书,测试用例很难设计。从而加重了测试 人员与开发人员进行沟通的困难,导致工作量上升但是效率下降。 4. 并且,对于特定程序段很难精准地进行测试,有很多的测试路径没有走到, 会有隐藏缺陷的后果。 5. 测试找到问题后,定位代码有困难,修改后可能隐藏有错误。 所以,为了提高代码的质量,快速有效地找到代码中的缺陷,减少测试的工 作量,Tier1打算引进一款先进的测试工具帮助他们走出目前的困局。这时, Tier1经过前期对 Parasoft 的 C/C++test 产品的了解和试用,认为 C/C++test提供一个灵活并且自动化的测试平台,可以很好的解决目前的问题。 其次Tier1为其产品更好的在全球市场销售,需要得到 TUV 德国莱茵颁 发的汽车电子电气功能安全标准 ISO26262 的认证。Parasoft 针对汽车电子电 气 ISO26262 有专门的认证套件,满足对于测试过程的各个阶段的要求。使用 Parasoft C/C++test 来实现ISO/DIS 26262 中第六章: 产品开发:软件级别 的特定部分。 二、 开发环境 Keil ARM v4.22 和 v5.12 主要是嵌入式,前期会在 1-2 个项目上使用 C/C++test进行单元测试。代码行 10w级。
三.静态分析具体实施 Parasoft C/C++test 静态分析提供三种技术手段来从不同的角度确保软件 代码的质量。 规则规范检查:通过自动错误预防(AEP)理论,在代码开发阶段进行 快速检查,发现代码中违反事先指定的编码要求的部分。增强编码标准, 例如对不安全语言结构的检测。其中针对 ISO26262 标准规范要求的规则可以直接在工具中应用。 数据流和控制分析:通过早期模拟代码的执行路径,尽早发现程序在执 行过程的运行时错误问题。 度量指标统计分析:通过分析代码结构性上的指标,增强低复杂度的策 略。报告圈复杂度、基本复杂度以及额外的软件代码度量指标。 四.单元测试具体实施 在使用 C/C++test开展测试工作之初,他们在音响导航第一事业部挑选出 2 人组成测试小组。在客户从未进行过单元测试的情况下,Parasoft 的技术人员 针对客户的具体环境和代码结构进行了详细的工具使用培训。之后,通过 C/C++test 技术工程师的辅助,经过 2 天的时间,已经可以顺利的开展单元测 试的进程。相比不使用工具,对于嵌入式平台的测试,除非客户愿意自行开发测 试框架,否则单元测试根本无法实施。这样一来,就可以抛却测试中繁琐而耗费 时间的步骤,为客户节约了可观时间,从而快速地进入对代码逻辑进行测试的阶 段。 五、使用结果 & 客户评价
“使用 C/C++test 帮助我们更容易快速地设计测试用例,我们只需要做简 单的测试配置,直接运行就可以将结果清楚直观的显示在界面上。这样就可以把 更多的精力放在测试业务的逻辑上,而不是其他无关但是耗时的琐事上。并且 C/C++test 提供多种覆盖率来衡量测试的程度,我们心里就更有底了”,一位 使用 C/C++test进行单元测试的Tier1威员工说。 “之后我们在设计测试用例 时遇到了访问私有成员变量的问题,从提出问题到 Parasoft 的提出解决方案后 解决问题,仅仅用了一天时间”他又补充说道。 同时,Parasoft的方案还带来了一些额外的好处: 整个方案学习成本非常低,不需要花费大量时间学习改变。 开发人员长期使用后,自身能力大幅提升。 整合并统一所有研发人员代码风格,代码不再出现“因人而废”现象。 测试人员能够轻易获得测试历史数据。 |
上海望驰安防科技有限公司
地址:上海市浦东灵山路958号5号楼2楼
手机:18049824972
电话:021-50150593
邮箱: anying.ao@ruitde.com