相信每位测试人员或者测试团队都曾遇到这样的问题“需要多少测试才能确保软件成功发布”。这个答案很难回答,在很大程度上,这取决于被测软件的类型、用途和目标受众。所有的测试人员都希望用一种比测试手电筒的应用程序更严格的方法来测试其他软件。然而,无论是什么应用程序,对多少测试能顺利发布软件这个问题,依旧难以得到准确的答案。相较而言,更好的方法是准备更适合当前被测软件的资格流程和测试策略。
记录测试流程或策略
测试在测试自己产品的时候一定要记录整个过程,这对在之后的版本中重复测试并对其进行分析,从而进一步改进至关重要。如果这是产品的第一个版本,最好制定一份书面测试计划。
拥有坚实的单元测试基础
在包括谷歌在内的许多公司,都有要求任何代码更改都必须通过相应单元测试用例的最佳实践。随着代码库的扩展,在提交代码之前执行大量此类测试是在错误渗入代码库之前捕获错误的重要组成部分。这可以节省以后编写集成测试、调试和验证现有代码修复的时间。
不要吝惜集成测试
开发人员通常认为可以降低集成测试的优先级,甚至可以跳过集成测试,转而进行完整的端到端测试。毕竟,后者真正测试产品是因为用户会使用它。然而,拥有一套全面的集成测试与拥有坚实的单元测试基础同样重要。原因在于集成测试比完整的端到端测试具有更少的依赖性。因此,需要建立更小的环境的集成测试将比具有全套依赖项的完整端到端测试更快、更可靠。
对关键用户旅程执行端到端测试
之前是单元测试和集成测试,记下来就应该按照用户使用产品的方式对产品进行端到端测试了,这非常重要。因为不仅应该测试独立的功能,还应该测试包含各种功能的整个工作流程。这些工作流程(关键目标和用户为实现该目标而进行的任务旅程的组合)被称为关键用户旅程 (CUJ)。了解、记录CU,然后使用端到端测试(以自动化方式)验证它们,就完成了测试金字塔。
了解并实施其他级别的测试
除了对单元测试、集成测试和端到端测试解决产品的能力、范围要有清晰的认知外,对其他的测试也要有所了解。
性能测试 - 测量应用程序或服务的延迟或吞吐量。
负载和可扩展性测试 - 在越来越高的负载下测试您的应用程序或服务。
容错测试 - 测试应用程序在不同依赖项失败或完全崩溃时的行为。
安全测试 - 测试服务或应用程序中的已知漏洞。
辅助功能测试 - 确保产品可供所有人(包括各种残障人士)辅助和使用。
本地化测试 - 确保产品可以在特定语言或地区使用。
全球化测试 - 确保产品可以被世界各地的人们使用。
隐私测试 - 评估和减轻产品中的隐私风险。
可用性测试 - 测试用户友好性。
在审核周期中尽早进行这些测试过程非常重要。较小的性能测试可以更早地检测回归并节省端到端测试期间的调试时间。
总结
需要多少测试能够确保测试的顺利发布,这个答案永远不是一个数字,而是整个流程的细致、顺畅和完整,尤其离不开单元测试、集成测试和端到端测试以及其他测试类型的精益求精。