赞
踩
作为一名软件开发人员,我在不同的公司工作过,具有不同的软件测试流程。在大多数情况下,没有特定/记录的测试方法......因此该过程的内容/方式取决于各个开发人员。与大多数情况一样,当没有强制执行或至少记录在案的政策时,事情会在一段时间后开始脱轨。
该策略的整体思想是根据以下条件拆分测试
通过这种方式,我们希望在不同的层面上并基于不同的价值结果来测试我们的软件。同时,这些价值结果甚至可能有不同的利益相关者负责(或更关心)以改进该阶段的测试结果。例子:
再次强调,这只是一个例子。根据您的情况,您可能有 3 名开发人员负责整个测试堆栈,或者每个阶段都有一个团队。以下测试堆栈是我希望在我过去工作过的一些项目中看到的示例堆栈。
正如您从楼梯图中看到的,您从低级测试到高级测试,从技术测试到更多业务相关类型的测试。
让我们看看每种类型/步骤代表什么:
单元测试是一种软件测试,其中测试软件的各个单元或组件。目的是验证软件代码的每个单元是否按预期执行。测试隔离一段代码并验证其正确性。单元可以是单独的功能、方法、过程、模块或对象。
集成测试被定义为一种测试类型,其中软件模块被逻辑地集成并作为一个组进行测试。典型的软件项目由多个软件模块组成,由不同的程序员编码。此级别测试的目的是暴露这些软件模块集成时交互中的缺陷。此外,还测试与依赖项的交互(数据库、文件、api 等)。
冒烟测试是系统测试用例的一个子集,涵盖组件或系统最重要的功能,
用于帮助评估软件的主要功能是否正常工作。我称其为“优化”,因为它们也用作故障保护,如果这些测试失败,那么我们就不会继续运行完整的系统测试,这可能会是一个较慢的过程。由于此阶段测试最重要的功能,我还看到这些测试在每次部署之后或以 cron 方式针对生产环境运行。当以这种方式使用时,它们也可能被称为“实时测试”。
系统测试测试整个系统,看看系统是否与所有集成模块和组件协调工作。在我的“书中”,您以“黑盒”方式执行这些测试,从外部向内进行测试,而无需真正使用内部工作原理的知识。测试阶段属于技术测试领域,这意味着您应该尝试坚持技术测试(例如身份验证、验证、CRUD 请求、错误处理等)
注意:系统测试对于不同的团队来说可能意味着很多很多的事情。正如前面的免责声明中提到的,我主要关注普通的 SaaS 类商业软件。因此,在这种情况下,这些测试意味着通过 API 交互来测试功能。
BDD 使用人类可读的软件用户需求描述作为软件测试的基础。
每个测试都基于一个用户故事。系统测试更高一级,因为在这些 BDD 测试中,我们将以
与系统测试(API 调用)相同的方式进行测试,但采用用户故事(场景)的格式来断言幕后故事/流程按预期工作。
到目前为止,我们测试了一切在技术和功能方面都运行正常。事情看起来很棒,我们很高兴!但是,这些正确的回答是否及时返回?!如果还有 5 个以上的用户使用我们的服务,或者 10 个用户怎么办?在我们开始注意到响应时间延迟之前,我们可以处理多少个并发用户或请求。因此,这就是我们试图通过这些测试来涵盖的内容,即使我们返回正确的结果,我们也会以预期的响应时间返回它们
我们在这篇简短的文章中介绍的是在不同级别(低 - 高)和不同价值结果(技术 - 业务)上测试软件的示例策略/管道/流程(随你怎么称呼),以及一些关于事情如何进行的示例当没有定义好的测试堆栈过程时就会结束。显然,这是测试堆栈的 10k 英尺视图!每个单独的步骤都需要更多的工作、文档和规划才能在测试堆栈中实际正确实施。然而,心中有一个初步计划可能会给你带来比即兴发挥更好的结果!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。