什么是单元测试?——太过基础,以至非自动化不可才能体现其价值 ~

绝大多数安全关键行业设立的标准规范都包含单元测试要求,如GJB5000A、ISO26262、EN50128、IEC61513、DO178等标准。

这是因为单元测试是软件测试中最早期最底层的环节,高质量的单元测试可协助快速确认代码功能实现,并尽早发现软件Bug,在提高软件质量上具有非常高的性价比 。

什么是单元测试?——太过基础,以至非自动化不可才能体现其价值 ~_第1张图片

Tips:GJB是国军标的缩写,是军委装备发展部为提高军用软件产品的质量,规范军用软件研发组织过程的基本要求及过程改进的路线图,解决当前国家军队装备软件研制需求的问题而出台的一系列标准。通常意义上,也代表着对软件安全的较高标准。

GJB5000A是一个产品开发模型,关注整个体系的问题,也是一个过程改进参考模型,描述的是一组有效过程的特征,提供了一套最佳实践。

其关注点的是:

生产率(Productivity)、性能(Performance)

成本(Costs)、相关方满意(Stakeholder satisfaction)

单元测试  作用巨大

单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证可以快速验证代码是否准确地实现了设计目的,帮助提高代码设计的合理性(能进行单元测试的函数,一定是低耦合的)和健壮性(遍历函数的逻辑路径,函数不发生意料之外的问题),还能发现代码中的缺陷和bug。

相比后续复杂的集成测试和系统测试,单元测试的创建和维护比较简单,发现的代码问题也容易定位和修复,具有高效率低成本的优势

什么是单元测试?——太过基础,以至非自动化不可才能体现其价值 ~_第2张图片

单元测试难落地执行的原因

1、开发人员不认为测试代码是自己的工作,而测试人员又很难真正了解代码的行为;

2编写单元测试太花时间了,包括测试用例、测试驱动和测试文档等内容;

3、没有真正的测试运行环境。

当然,这也意味着微小厂商或公司,在测试软件时,处于成本及效率考虑或许不会使用主打单元测试的软件测试工具。

... 登登登 ...

自动化单元测试来到用武之地

什么是自动化单元测试

自动化单元测试是通过测试人员自己编写可复用的测试驱动和相关环境,或者借助一些框架或者工具,进行高效自动化的单元测试。

自动化单元测试的目的:

降低单元测试的时间和人力成本,构建便于管理、辅助设计、快速执行、数据复用的单元测试环境。

用自动化单元测试的方式,研发人员(通常建议单元测试由开发人员完成最为高效,但是开发人员通常项目任务紧,时间和精力不够)在用例设计、执行和数据管理上不需要再花费巨量的时间,就可能有足够的精力来真正进行和完成单元测试内容。

什么是单元测试?——太过基础,以至非自动化不可才能体现其价值 ~_第3张图片

常见的自动化单元测试通常借助于各类测试框架或者测试工具

单元测试框架

单元测试框架提供了一种统一的编程模型,可以将测试定义为一些简单的类,这些类中的方法可以调用希望测试的应用程序代码。

开发人员不需要编写自己的测试控制工具;单元测试框架提供了测试运行程序(runner),只需要单击按钮就可以执行所有测试。利用单元测试框架,可以很轻松地插入、设置和分解有关测试的功能。测试失败时,测试运行程序可以提供有关失败的信息,包含任何可供利用的异常信息和堆栈跟踪。

对于测试来说,单单的访问接口,实现不了跑不同的测试用例!

需要对测试用例进行封装为类/函数(单元)等一系列的工作才行,也可以理解为一个模板,照着模板写测试用例、执行用例、断言,以及输出测试报告等。

单元测试工具

主要是指工具软件供应商提供的成熟完备的商用单元测试工具,商用工具通常具有单元测试框架包含的所有功能,其提供的功能更加强大,界面相对更加友好;

除此之外,商用工具还有完备的说明文档和及时的技术支持,也可以进行定制化开发。如果有相应的费用支持,商用单元测试工具是更加明智的选择~

什么是单元测试?——太过基础,以至非自动化不可才能体现其价值 ~_第4张图片

什么是单元测试?——太过基础,以至非自动化不可才能体现其价值 ~_第5张图片

一款智能单元测试平台——iUnit实际用例图展示

好用的单元测试框架或者工具,通常具有:

·    界面友好、展示丰富、功能清晰、说明完备——学习成本低,让使用者能快速上手;

·    良好的编译开发环境支持——不同的项目,用户可能会使用不同的开发环境,例如Qt、Keil、CCS等,如果只能支持少数环境,那么工具的适用性就会大打折扣;

·​​​​​​​    良好的语法特性和数据结构支持——不支持的话,测试代码根本跑不起来;

·​​​​​​​    好用的用例管理、数据分析和日志管理——支持用例复用,辅助设计覆盖更全面的测试用例集,日志管理则能帮助定位执行失败的原因,并且提供丰富的执行结果;

·​​​​​​​    简单易用的标准模板测试报告生成功能——对于有测试报告文档要求的团队,这个功能也非常重要。几千页的报告,人工去编写,有这经历的人都不想再来第二遭。

什么是单元测试?——太过基础,以至非自动化不可才能体现其价值 ~_第6张图片

你可能感兴趣的:(测试工具,单元测试,测试用例,威胁分析,集成测试)