banner图
单元集成测试
 

如何自动化的嵌入式测试?


       无论你做传统的瀑布式开发或者遵守测试驱动开发的方法,单元和集成测试是测试策略的关键环节。单元测试是验证最小和独立单元代码行为的过程,比如C++类,C函数,Ada包。这通常在系统测试之前进行。单元和集成测试是构建稳定减少错误应用程序的重要方法,因为它允许测试人员更容易模拟应用程序基本逻辑功能,并验证其是否满足设计需求。

       VectorCAST可支持C/C++语言(VectorCAST/C++)和Ada(VectorCAST/Ada)的单元测试和集成测试。两者都可以自动化地完成单元测试和集成测试的关键步骤。包括测试驱动的生成,测试用例和测试结果的管理,以及自动化的回归测试。

单元测试和集成测试的两个目的

       1、证明应用程序的正确性 - 这样求提供由已知的输入值和输出值构成的测试用例,并测试被测试代码的功能。

       2、证明测试是完整的 - 这要求可获取代码覆盖率以证明应用程序的代码100%被测试。
       3、在整个软件开发生命周期中,VectorCAST/C++ and VectorCAST/Ada可自动化以上两个目标,并可以自动化的实施回归测试。

传统的单元和集成测试流程

       传统的单元测试,通常针对开发人员写的每个软件单元生成测试用例,执行这些用例验证代码功能的正确性。这种模式存在一定风险,因为开发人员在设计测试用例时,很容易受他自己实现该代码的思维的影响,从而导致某些情况不能考虑到或测试到。 


测试驱动开发(TDD)和极限编程(Agile)

       测试驱动开发(TDD)目标是通过先设计测试用例之后再进行代码开发而解决上述问题。这允许开发人员基于最低级的需求构建单元测试,并定义单元接口。TDD根据函数声明接口,为函数添加测试用例,直接执行测试用例将失败,因为没有函数定义。然而,只要函数定义实现了其功能逻辑,测试用例则可以通过。这种方法要求更快的开发,构建和测试周期以及自动化的回归测试。VectorCAST/C++支持这种开发模式,可以根据头文件中的接口声明即可构建测试用例。 


为什么实施单元测试和集成测试很难?

       为创建达成100%覆盖率的测试用例需要针对被测试代码的每行语句生成测试代码(包括测试驱动,桩函数和测试数据)。当没有工具辅助的情况下,每次程序代码更新同样需要维护测试用例代码。创建和维护软件测试的必要性是主因,因为单元测试非常昂贵并且花费时间,使用VectorCAST,可以不必写任何测试代码即可完成单元测试。