软件开发中一般怎么做单元测试?

发表于:2022-8-11 10:21

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

 作者:佚名    来源:网络

  单元测试软件测试阶段最基本的测试,它能够消除深度未知隐患。它反馈更快,更省时间。此外,ASPICE过程及ISO26262安全规范同样对单元测试提出了相关要求。
  软件详细设计文档为单元测试提供了基础的输入参照。从ASPICE角度来说,没有详细设计文档是无法进行单元验证或测试的。这表明,详细设计文档指导着单元测试过程的所有活动。
  软件详细设计文档与单元测试的基本关系
  1. 从V模型角度
图 1 ISO 26262里面的V模型
  V模型是在快速应用开发(Rapid Application Development,RAD)模型基础上演变而来,其特点就是它清楚的标识了开发和测试的各个阶段以及他们之间的对应关系;左边部分是软件开发阶段,右边部分是软件测试阶段。从上图中我们可以看出,软件详细设计文档对应着软件单元测试,所以要想做好单元测试,就必须有软件详细设计文档作为输入,同时要求测试工程师对软件详细设计文档有着深刻的理解。
  软件详细设计文档应在编写代码之前完成,软件代码是对软件详细设计文档的具体实现,软件单元测试则是以软件详细设计为参照,判断软件代码是否符合软件详细设计文档的工作。
  2. 软件详细设计文档是测试输入的基础参照之一
图 2 软件详细设计文档是测试输入的基础参照之一
  VectorCAST/C++可以为单元测试和集成测试提供高度自动化的解决方案,能够显著提升开发人员在验证安全和任务关键型嵌入式系统方面的工作效率。广泛应用于航空电子、医疗设备、汽车、工业控制、铁路和金融行业。
  如上图所示,将详细设计文档和单元需求文档结合起来,会大大的提高编写测试用例效率。特别是对于那些颗粒度较大的“单元需求文档”,需要结合软件详细设计文档,从颗粒度较大的需求提取出有效的部分来进行功能测试
  软件详细设计文档与单元需求文档相辅相成,所以软件详细设计文档在单元测试中有着十分重要的作用。
  然后,通过相应的源代码使用VectorCAST/C++工具创建测试工程,接着通过VectorCAST/C++工具为需求测试自定义编写测试用例,同时将需求映射到测试用例,形成测试用例与单元测试需求、测试用例与代码覆盖度之间的双向可追溯性,并且可以在最后的测试报告中体现出来。
  3. 快速理解功能需求,降低沟通成本
  如果负责该项测试测试的人员对项目内容了解很有限的话,这就免不了与开发人员进行频繁的沟通。即使是一个公司内部进行测试,只要不是开发人员来进行测试,一般也避免不了与开发人员进行沟通,但是如果有了软件详细设计文档,测试人员可以快速了解开发内容,理解功能需求,降低与开发人员沟通时间与次数,而且能够较完整的完成其单元测试。
图 3 有无软件详细设计文档对测试周期和沟通次数的影响示意图
  除了软件的详细设计文档以外,做单元测试自然还少不了高效的测试工具!
  众所周知,进行单元测试不仅可以尽早地发现错误,还容易发现深层次问题,并能快速定位问题的来源,针对相关需求,向开发人员进行反馈,小步快速迭代,高效的实现正确的需求和代码。而详细设计文档不仅为开发提供了标准,也为后续的测试提供了参考。通过VectorCAST/C++联系实际问题,能快速的完成动态单元测试。
  VectorCAST/C++,提供高度自动化的单元测试和集成测试解决方案,满足动态测试的要求。
  VectorCAST/C++适用于基于C和C++开发的嵌入式系统软件测试,能够自动生成和编译测试桩和驱动程序,可以在不编写任何测试代码的情况下“一次性”完成测试执行。可以支持业内主流的300余种编译器,通过模块器执行方案替代传统的目标板集成方案,从而减少对硬件资源的占用。具有完整的代码覆盖度分析,支持多种覆盖度指标,能够选择生成各种符合受众需求的测试报告。此外它还提供了基于WEB的软件代码质量和测试完整性度量的仪表盘视图VectorCAST/Analytics,为相关人员实时了解测试进展,明确当前风险提供方便。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号