产品体验中心 下载与支持 产品社区 合作代理 |  咨询电话:400-035-7887/021-6072 5088
当前位置:泽众软件测试网- 技术文章 -正文

自动化单元测试要怎么理解?自动化单元测试有几大原则?

发布时间:2020-07-31

我们经常听说的是压力测试、静态分析以及App测试等,很少听说过自动化单元测试,这个测试到底指的是哪个方面的测试。自动化单元测试其实指的就是最小模块的测试,它在软件开发中是最低级别的测试,我们下面详细的了解一下吧。

AutoRunner(自动化测试工具)

自动化单元测试?

自动化单元测试简单地说就是使用工具对软件中的最小可测试单元进行检查和验证。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。

自动化单元测试的原则

提交代码、运行测试的重点是什么?快速捕获那些因修改向系统中引入的最常见错误,并通知开发人员,以便他们能快速修复他们。提交阶段提供反馈的价值在于,对它的投入可以让系统高效且更快地工作。

隔离 UI 操作

UI 应当作为更高层次的测试 Level,需要花费大量时间准备数据,业务逻辑复杂,过早进入 UI 阶段,容易分散开发的单元测试精力。

隔离数据库以及文件读写网络开销等操作

自动化测试中如果需要将结果写入数据库,然后再验证改结果是否被正确写入,这种验证方法简单、容易理解,但是它不是一个高效的方法。这个应当从集成测试的 Level 去解决。

首先:与数据库的交互,是漫长的,甚至有可能要投入维护数据库的时间,那将成为快速测试的一个障碍,开发人员不能得到及时有效的反馈。假设,我需要花费一个小时,才能验证完毕与数据库交互的结果,这种等待是多么漫长呀。

其次,数据管理需要成本,从数据的筛选(线上数据可能是 T 级)到测试环境的 M 级别,如何把筛选合适的大小,这都使得管理成本增加

最后,如果一定要有读写操作才能完成的测试,也要反思代码的可测试性做的如何?是否需要重构。

单元测试决不要依赖于数据库以及文件系统、网络开销等一切外部依赖。

如果在单元测试中,还需要启动 Spring 容器进行依赖注入、加载依赖的 WebService 等,这个过程是相当消耗时间的。

设计简单的测试

明确定义方法:

成功:public void testSendReportLongDateSuccess()

失败:public void testSendReportLongDateFail(),可以包括异常

和单一的断言,避免在一个方法内使用多个复杂断言,这会造成代码结构的复杂,使得测试的复杂性提高。

定义测试套件的运行时间

构建的单元测试,每个方法的构建时间应该是毫秒级别,整个类是秒级别,理想的是整体构建时间控制在 5 分钟以内,如果超过怎么办呢?

首先,拆分成多个套件,在多台机器上并行执行这些套件;

其次,重构那些运行时间比较长且不经常失败的测试类;

关于自动化单元测试的介绍到这里就结束了,最后小编介绍一个自动化管理工具吧,AutoRunner是一个自动化的测试工具,这个工具支持Java程序、浏览器、Siverlight 程序等类型的脚本录制,支持脚本录制暂停功能等等,功能是很强大的。

推荐阅读:

想要做好渗透测试,就需要明白的这八大步骤

深入了解黑盒测试的定义和黑盒测试的步骤

黑盒测试的主要方法和常用的工具有什么?

自动化测试有哪些?自动化测试的过程是怎么样的?

自动化测试是什么?自动化测试优缺点有哪些?

如何选择要自动化的测试用例的技巧和规则

本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-60725088-8054),我们将立即处理,马上删除。
沪ICP备07036474号 2003-2023 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd.
微信
咨询

添加客服微信 欢迎咨询测试工具和测试服务

微信客服
问题
反馈
产品
画册

扫描二维码下载泽众软件企业宣传册

产品画册
返回
顶部

方案咨询

×
提交信息

电话咨询,400-035-7887,安排专业技术售前给您解答(产品试用、技术交流、服务咨询和商务报价)。

您的信息已成功提交!

我们的客服人员稍后会与您联系