“零缺陷”一词是 QA/QC 概念,旨在减少和最小化流程中的错误和问题数量,并第一次就把事情做好。主要思想是防止错误发生,而不是在错误发生后纠正它们。这一概念由 Philip Crosby 于 1979 年在其著作《质量是免费的》中首次提出。
零缺陷的重点不在于追求完美,而在于制定实施机制的标准,以始终如一地满足这些标准。零缺陷不是一个具有明确步骤的特定流程,而是一种需要整个团队/公司都接受的思维方式或开发/技术文化。它涉及持续改进流程、认识到质量问题的高成本,以及积极主动地识别和修复应用程序和开发流程中的错误。
在实际项目中,实现零缺陷的概念仍然只是一种理想,而不是现实。相反,重点转向尽量减少对业务/用户/系统有影响的缺陷,尤其是那些足以破坏应用程序功能的缺陷。这种方法强调了从项目一开始就优先考虑质量的重要性,以减少后续代价高昂的错误。
如何达到高质量标准?
- 由 QA 专业人员执行回归测试。
回归测试重要吗?
- 是的。
够了吗?
- 这是一个很好的起点,但还可以做更多的事情来提高软件质量和提高流程效率。
每次构建/提交/暂存部署时自动触发的自动测试/脚本可确保更改/修复得到测试和验证。这种集成带来了持续改进和快速结果的文化 - 团队可以在 SDLC 早期检测和解决问题/错误。它有助于以更快的速度交付高质量的软件,引入敏捷方法流程。
确保提供多样化/真实的测试数据集可提高测试覆盖率和应用功能的验证率。使用数据生成工具(定制或自写)或混淆的产品(真实用户)数据进行测试可以改善有效测试场景的创建。使用数据屏蔽/混淆可在测试期间保护敏感信息,确保遵守数据保护和安全政策。
将回归测试与探索性测试相结合或替代回归测试可能会提高测试覆盖率并发现异常的回归缺陷。QA 工程师可以利用他们的领域知识和直觉来探索应用程序,以找到回归(自动测试)测试中可能遗漏的“隐藏”问题/错误。这种敏捷的组合方法可帮助团队找到标准回归测试可能容易遗漏的复杂棘手问题和极端情况。
将性能和安全测试与功能回归测试相结合对于不遗漏应用程序性能和安全问题非常重要。这些是应用程序性能和安全测试的标准,但它们作为回归测试执行,以防发生重大更改并且应用程序性能可能受到影响或系统中可能引入新的漏洞。
使用跨浏览器(跨平台/设备)测试允许 QA 工程师验证不同浏览器、版本、操作系统、设备(硬件)和屏幕分辨率下的应用功能和布局。了解合理的范围并仅执行必要的测试非常重要,因为这种类型的测试可能很耗时,但使用 BrowserStack 或您自己的设备农场 + 自动化等平台可能会更快。但是,它比 API 回归或功能回归测试等需要更多资源,因此请谨慎并根据所做的更改和已证实的风险优化范围。
识别潜在的回归风险,并在功能实现/代码更改的早期阶段规划回归测试活动。这种早期参与可以促进开发和 QA 团队之间的协作,最大限度地减少返工、错误修复、测试迭代次数、额外的回归测试,并加快上市时间。
还有什么其他有用的东西吗?
- 当然!即使您使用最佳实践,也总有其他或新的东西可以用来改进您的方法和产品质量。任何方法都需要根据您的特定项目、团队和情况进行调整和调整。
它来自分布式系统领域;它涉及故意将受控的混沌引入系统以发现弱点和故障。传统上,它用于弹性测试,但混沌工程可以用于回归测试。
在回归测试中,混沌工程使软件处于与生产环境类似的不可预测的不同条件/数据集中。通过故意破坏/更改某些组件(例如网络连接、依赖项或基础设施),测试人员/开发人员可以看到应用程序如何响应意外输入。
将混沌工程集成到回归测试过程中,提供了额外的方法来识别和修复潜在的回归风险/错误,以免它们影响最终用户或后期的测试过程。
变异测试是一种对源代码进行小幅更改以模拟潜在错误的技术。通过评估检查表/测试用例检测这些更改/错误的效果,QA 工程师可以评估其回归测试的有效性。这种方法提供有关测试套件有效性的信息,并显示需要进行额外更改的案例/区域。
使用机器学习算法来识别回归缺陷的根本原因的工具可能对回归测试策略非常有用。通过分析代码更改、测试结果和系统日志,这些工具可以提出回归的来源。这种方法可以加快错误预防和解决速度,减少调查时间,提高整体生产力和上市时间。基于人工智能的工具/算法还可以分析代码更改和测试结果(统计数据),以确定最相关的测试以执行。
永远记住,您需要了解风险并了解回归错误的统计数据。在产品团队中,通过与所有团队成员(开发人员、QA、PM、PdM/PO/FO、DevOps 等)的协作,您可以有效地评估潜在风险并将回归区域缩小到最低限度。为了更快地交付,接受一定程度的风险也很重要(很少使用或非关键功能中的回归错误可能是可以接受的,并在以后修复)。
避免仅仅为了“理想质量”或零缺陷概念而进行过度测试。