2017年11月28日 操作系统的部

自动化的基于需求的测试,从QA系统Cantata与Wind River Workbench

Jasmine Williams, QA系统有限公司的市场经理

定义和实现得不好的需求会导致昂贵的项目返工。基于需求的测试有助于确保代码做了预期的事情,并且它的目的已经被定义为一个适当的详细级别。这避免了昂贵的错误,并有助于客户接受。

安全关键软件项目使用单元测试和集成测试来证明需求已经得到满足。ISO 26262或IEC 61508等安全标准规定采用双向覆盖,以确保:

  • 所有的需求都已经被正确的实现了
  • 所有的功能都在需求中指定

需求覆盖范围与代码覆盖范围不同,因为它测量已验证了多少要求,而不是通过测试执行的许多代码。实现100%的要求覆盖率可能非常耗时,重复和昂贵。使用自动化测试框架可以大大减少在这些活动上花费的工作和时间。QA系统自动化单元和集成测试工具对VxWorks大合唱解析源代码以自动生成容易与需求匹配的测试用例(反之亦然——将需求与测试用例匹配)。它还大大减少了达到100%需求覆盖率的工作量,使它能够快速和容易地识别需求中的缺口、代码中的错误和非预期的功能。

1

需求或者测试计划可以使用ReqIF, xls, xlsx或者csv格式从任何需求管理或者ALM工具中导入,并且显示在Workbench中的Cantata跟踪视图中。

2
2 b

Cantata的自动测试功能可以为整个代码库生成通过单元测试用例的套件。这些测试用例向量测试所有的代码路径,使用白盒访问来设置数据、参数和控制函数调用接口。除了执行代码外,测试还检查函数之间传递的参数、可访问全局数据的值、调用顺序和返回值。自动测试中的详细级别可以设置为满足代码覆盖级别(例如,功能入口点、语句、决策、MC/DC),并且测试可以按照大多数安全标准的要求在嵌入式目标平台上运行。

可以使用直观的拖放接口将自动生成的测试用例与要求一起观看,并且可以通过将它们与要求(反之亦然)进行跟踪。

3.

在这个阶段,有必要考虑每个需求是否被分配给它的测试用例完全和正确地验证了。这个步骤需要批判性思维,所以不可能自动化。然而,通过每个测试用例验证的代码的唯一路径的英文描述,AutoTest使这一步变得更快、更容易。

4

自动测试生成传递测试,因此如果代码中存在错误,则测试情况可能与要求不匹配。一旦以这种方式识别错误并且代码固定,创建传递单元测试通常就像在Cantata GUI测试用例编辑器中更改参数或返回值一样简单。

它也很容易识别尚未在代码中实现的要求,因为无法追溯到未实施的要求。

也可能有不匹配任何需求的测试用例,在这些情况下,需要决定功能是否必要。在这种情况下,可以编写相应的需求。造成这种情况的常见原因是在需求中没有定义的防御性编程和系统初始化代码。另外,如果功能不存在,则应该编辑代码并重新运行测试。

测试和需求之间的关联被导出到需求管理工具,以及相关的代码覆盖率和测试状态。

随着需求的变化,管理版本/变体之间的差异,以及它们与现有测试之间的关系可能成为一个问题。在Cantata跟踪中,需求集之间的差异被突出显示,清晰地显示新的、更改的和删除的需求,并且可以保留与现有测试的关系。

5

一旦一组正确通过的测试被追踪到需求,它们就可以使用持续集成工具(例如Jenkins提供了一套自动化的回归测试。

Cantata是独立认证,用于开发安全关键软件,达到最高安全完整性水平的所有主要软件安全标准。根据安全标准的要求,功能测试和覆盖结果以asci文本格式自动生成(如果对目标进行测试,则直接从目标平台生成)。

使用Cantata进行自动化需求测试的视频演示

大合唱

了解更多关于康塔塔的信息自动生成测试用例需求跟踪

以前的收获软件定义的工业控制系统的好处
下一个调试VxWorks信号量 - 给他们一个名字!