当前位置:首页 > 测试测量 > 测试测量
[导读]单元测试是防止错误的第一道防线。这种级别的保护至关重要,因为它为以下测试过程奠定了基础:集成测试、验收测试以及最后的手动测试,包括探索性测试。

单元测试是防止错误的第一道防线。这种级别的保护至关重要,因为它为以下测试过程奠定了基础:集成测试、验收测试以及最后的手动测试,包括探索性测试。

在本文中,我将阐明单元测试与其他方法的区别,并举例说明何时可以或不可以没有单元测试。我们还将讨论自动化测试,它在确保代码可靠性和质量方面发挥着重要作用。

单元测试

单元测试的想法是为每个重要的函数或方法编写测试。这使得它能够快速检查最近的代码更改是否导致了回归,这意味着已经测试过的程序部分中存在错误,并且还可以更轻松地检测和修复此类错误。

当单元测试过多时

任何没有适当测试覆盖率的长期项目注定迟早要从头开始重写。单元测试是大多数项目的必备步骤,但在某些情况下可能会忽略此步骤。例如,您正在创建一个用于演示目的的项目。时间表非常艰难。您的系统是硬件和软件的组合,在项目开始时,并不完全清楚最终产品会是什么样子。该软件将在展览或演示期间运行1-2天。在这种情况下,就没有必要进行单元测试。

另一种情况是当您在制作广告网站,或者简单的Flash游戏,或者横幅时,其中涉及复杂的布局、动画和大量的静态内容。以上都是为演示服务的。

如果您正在构建一个包含一组静态 HTML 页面和一个电子邮件提交表单的简单名片网站,则不需要进行单元测试。客户很可能对此感到满意,并且不再需要任何东西。手动检查和测试所有内容很可能会更快。

单元测试实施

在规划单元测试时,请记住您的目标是确保单元测试代码覆盖率超过 80%。这意味着在运行单元测试时至少执行了 80% 的代码库。出于这些目的,我推荐使用JaCoCo for Java或 Istanbul for JavaScript 等工具。因此,要开始将单元测试合并到您的开发过程中,请尝试执行以下步骤。

1.选择合适的测试框架

选择一个适合您需求的框架,而不是重新发明轮子。例如,许多.NET开发人员使用 MsTest,因为它随 Visual Studio 一起提供,但 NUnit 或 xUnit 可能会为您的项目提供更好的功能。

2. 决定测试什么

并非所有代码都需要测试。简单、无依赖项的代码可能不需要测试,而具有许多依赖项的复杂代码可能会从测试前的重构中受益。专注于测试复杂的算法代码和相互依赖的组件,以确保清晰的交互和集成。

3. 保持一致的测试结构

使用排列、执行、断言 (AAA) 模式以获得清晰性和可维护性。

4. 一次测试一件事

每个测试应该仅验证代码的一个方面。对于复杂的流程,将其分解为较小的部分并单独进行测试。

5. 处理假货的依赖关系

用假实现替换真正的依赖项,以避免测试不必要的组件。使用存根进行预定义响应,使用模拟来验证交互。

6.使用隔离框架

使用 Moq 或 Rhino Mocks 等现有框架来创建模拟和存根,而不是编写自己的框架。这减少了错误和维护开销。

7. 可测试性设计

最初编写代码时要考虑到可测试性。使用依赖注入,避免在方法内直接实例化对象,并尽量减少使用带有逻辑的静态方法和构造函数。

8. 重构遗留代码

如果处理无法测试的遗留代码,请从重构小的、可管理的部分开始,并在编写单元测试之前用集成和验收测试覆盖它们。逐渐将此过程扩展到代码库的更大部分。

自动化测试

该方法的名称是不言自明的:在自动化测试中,测试用例是自动执行的。它比手动测试发生得快得多,甚至可以在夜间进行,因为整个过程需要最少的人为干扰。当您需要获得快速反馈时,这种方法绝对会改变游戏规则。然而,与任何自动化一样,在初始设置阶段可能需要大量时间和财务资源。即便如此,它还是完全值得使用的,因为它会让整个过程更加高效,代码更加可靠。

自动化测试实施

这里的第一步是了解项目是否包含测试自动化。您需要确保项目拥有强大的测试自动化框架。反过来,自动化工程师应该精通工具堆栈(例如,Selenium、Appium、Cypress)并遵循既定的自动化指南。

1. 自动化覆盖率与手动测试的比较

努力实现高比例的测试用例自动化,最好超过 90%,以最大限度地提高效率并减少对手动测试的依赖。

2. 项目概述及自动化实施

自动化测试始终是一个大型项目,涉及多个团队开发共享产品,每个团队中都有手动 QA 测试人员。测试侧重于前端和后端两个方面。

3. 了解项目

首先,我们需要了解产品的用途及其用户。这有助于优先考虑自动化工作。例如,如果产品为企业服务,则重点测试法律合规性和支付交易。对于面向消费者的产品,优先考虑卡间转账和服务支付等关键操作。自动化应该全面应用于整个产品,而不仅仅是单个团队。

4. 识别关键利益相关者

熟悉所有利益相关者至关重要,因为与他们的互动是必要的。关键人物包括:

· 产品所有者:他们是自动化的客户并定义其要求。

· QA 工程师:他们是自动化工具的最终用户,他们的满意度是衡量成功的标准。

· 手动测试主管:他们帮助组织流程并与手动测试进行协调。

· 前端开发领导:他们影响自动化测试的稳定性和质量。

· 采购专家:他们负责硬件分配,主要是服务器设备。

5.了解团队

收集有关每个团队的项目范围的信息,无论是涵盖前端、后端还是两者。了解 QA 团队如何测试他们的部分以及他们对自动化的熟悉程度。确定测试挑战并优先考虑自动化领域。

6. 制定自动化要求

在大多数情况下,我们的目标是采用经典方法,而不采用创新解决方案:

· 编程语言:Java,方便招聘专员

· 前端测试:使用 Selenium。

· 后端测试:使用REST-assured进行 REST 交互。

· 数据库测试:选择标准 Java 库

· 自动化测试:选择 Cucumber 既可以培训手动 QA 测试人员,又可以降低成本。

· 报告:最后但并非最不重要的一点是,使用 Allure 生成有吸引力且内容丰富的报告。

7. 演示和入门

为所有利益相关者(包括产品负责人、QA 工程师、开发人员和分析师)进行演示,重点是清晰度。从前端团队开始创建可见的结果。开发 5-10 个自动化测试,记录它们,并使用 Allure 的图形报告显示结果。说明自动化基础设施、主要目标和效果,并比较手动和自动化测试。

8. 为自动化准备 UI

为了保证自动化测试可靠稳定,data-test-id在前端负责人和产品负责人的配合下,集中为UI元素添加“ ”属性。这种做法通过将测试与 UI 元素位置或内容的变化隔离开来,极大地提高了测试的可靠性。

9. 开发自动化测试

在自动化测试人员之间分配任务。使用模板创建自动化项目框架。准备用于前端测试的 Cucumber 步骤,使这些步骤可跨项目重复使用,并设置 Selenoid 和 Jenkins。通过设置存储库、创建 Jenkins 作业以及在 Cucumber、Git 和开发环境中培训 QA,将团队集成到自动化中。

然后,QA 手动测试人员将编写自动化测试,并由自动化工程师进行审查和集成。最终的 Cucumber 步骤开发将在冲刺的空闲时间进行。在每个冲刺结束时,在产品演示中展示结果并宣布新功能。

结论

正如您所看到的,单元测试和自动化测试是互补的方法。通过每天使用它们来识别缺陷,您可以减少每个阶段的回归测试时间。此外,这将逐渐导致产品更快地投入生产,从而节省时间和资源。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭