我昨天正在参加考试,我注意到他们询问以下发生的顺序(我将把我认为的顺序放在这里):
- 单元测试(总是先写你的单元测试!)
- 集成测试(在你有一些代码并且它与其他代码/系统一起工作之后)
- 验证测试(保持您的数据处于一致状态并确保没有输入错误数据)
- 用户/验收测试(一切都与用户有关,否则我们为什么要首先构建系统?)
这是对的吗?
就我个人而言,我认为负载测试或数据库调优应该在最后出现,但它没有在测试中。
我昨天正在参加考试,我注意到他们询问以下发生的顺序(我将把我认为的顺序放在这里):
这是对的吗?
就我个人而言,我认为负载测试或数据库调优应该在最后出现,但它没有在测试中。
这个问题没有多大意义。
一方面,不同的人对你提到的几乎每一种测试都有不同的定义。例如,在极限编程 (XP) 中,验收测试(源自用户故事)与用户测试或用户验收测试 (UAT) 无关。使用 XP 的定义,验收测试是指在代码接近用户之前在构建代理上运行的自动化测试。另一方面,用户验收测试 (UAT) 通常是在建议的最终版本创建并部署到 UAT 环境之后发生的手动过程。
正如评论中已经指出的那样,验证测试并不是一个具有广泛接受定义的通用概念。集成测试对不同的人也意味着不同的事情。对某些人来说,这是在测试不同的进程/应用程序是否可以一起工作(例如,在 UAT 环境中)。对于其他人来说,它只是涉及不止一个类的自动化测试,即不是单元测试。
另外,“订单”是什么意思?您是指编写测试的顺序,还是在将代码发布到野外和/或生产环境之前运行它们的顺序?
无论如何,这个问题在现实世界中基本上是无关紧要的,因为不同的流程适用于不同的团队。例如,我自己总是会在任何单元测试之前编写验收测试。遵循测试优先的方法,您总是在修改类之前编写单元测试,是吗?那么你为什么不在修改整个系统之前写一个验收测试呢?
如果“验收测试”意味着接近于 XP 验收测试定义的任何东西,那么我认为把它放在最后是没有意义的。
这听起来像是那种“考试题”,只有在你考试前所学课程的背景下才有意义。如果没有所有这些信息(特别是每种测试的定义),就很难为这个问题提供有用的答案。
系统测试不是验证测试,而是正确的词。数据库测试是集成和系统测试的一部分。此外,负载测试将在系统和用户验收测试阶段进行。