前言
在测试的面试过程中,经常会有面试官问“测试方案和测试用例的区别”。两者都是测试的产出,想要区别两者可以从下面的这些方面着手。
测试方案的定义
测试方案给出了我们必须测试的内容。测试场景就像一个抽象的测试用例。
测试方案回答“要测试什么”。
假设我们需要测试应用程序登录页面的功能。登录页面功能的测试方案如下:
测试方案示例:验证登录功能
测试用例的定义
测试用例是一个测试方案的可以是正向的或者是逆向的可执行步骤的集合,包含一组前置条件、测试数据、预期结果、后置条件和实际结果。
测试用例回答“如何测试”。
假设我们需要测试应用程序登录页面的功能。上述登录页功能的测试用例如下:
测试用例示例:
- 测试用例1:输入有效的用户名和密码
- 测试用例2:输入有效用户名和无效密码
- 测试用例3:输入无效用户名和有效密码
- 测试用例4:输入无效的用户名和密码
测试方案和测试用例的区别
测试方案 | 测试用例 |
---|---|
测测试方案是一句话,但它与多个测试用例相关联 | 测试用例由测试用例名称、前置条件、测试步骤、预期结果和后置条件组成 |
测试场景指导用户“测试什么” | 测试用例指导用户“如何测试” |
测试方案的目的是测试软件的端到端功能 | 测试用例的目的是通过执行一组步骤来验证测试方案 |
在敏捷测试中,测试方案则相对更加适应 | 创建测试用例对于没有固定测试人员的项目很重要 |
因为相对抽象,所以在需求变更后,相对比较好维护 | 软件的页面调整,新功能的添加或者需求变更,导致维护测试用例难度增加 |
需要花费相对较少的测试时间 | 与测试方案相比,往往需要花费更多的测试时间 |
需要相对较小的资源来创建和执行测试用例 | 需要更多的资源来创建和执行测试用例 |
它可以以灵活的方式,测试端到端功能 | 它的测试更加全面 |
它会衍生出测试用例 | 它通常是由测试方案衍生出来的 |
它是相对抽象的测试 | 它是相对具体的测试 |
总结
到这里,大家应该对测试方案和测试用例的定义,以及两者的区别和使用场景有了自己的理解。当然实际测试中,我们也会同时使用测两者,为了确保稳定的、高覆盖率的测试计划。最好的做法是编写测试方案,然后转到测试用例。尽管这是一个最佳实践,但在当今的敏捷时代,大多数公司更喜欢测试场景。在敏捷时代,为了节省时间,测试用例正在被测试方案所取代。