软件测试入门③——测试设计【讲义】

image.png

Day 3 测试设计讲义

经过前面两天的课程内容,我们已经能够具备分析一个需求,通过其验收标准来确定测试范围,划分测试重点,然后根据分析的情况,编写测试用例,准备测试数据,执行测试用例并发现软件的缺陷,提交Bug。事实上这些已经是测试人员的常规操作了。

接下来我们重点要解决的问题是:如何对测试活动有一个“持续”的概念。或许大家还没有那么明确的概念:持续。当前互联网时代的软件行业,绝大多数的软件都是一个“持续”更新的状态,那么有一些功能就会被“持续”的测试,所以,虽然有了之前的方法和实践,我们依旧需要对测试实践进行详细的设计,这样能够接受“持续”带来的挑战。

最直接的“持续”活动,就是将软件测试实践“套路化”,给出文档,方便任何时候进行。这里的文档就是“测试计划”。

这里解决的主要问题如下:

  • 如何保证你测试的功能接受重复测试(或者反复测试)而质量不受影响?
  • 请问你们有测试评审么?如果有的话,评审都有哪些内容呢?
  • 如何保证不同的人员对同一功能测试取得类似的测试效果?

0 主要内容

  • 1 B4_方法策略
  • 2 B5_测试场景
  • 3 T2_测试计划

1 B4_方法策略

首先,我们接着前两天的内容继续。分析了测试的范围和重点以后,我们是直接开始编写测试用例了。但是实际上,我们没有探讨:方法策略。好的方法策略的选择,可以是测试活动变得可靠。

1.1 方法的作用

合理的方法,可以使得软件测试的执行变得更加有效,并且尽量的保证软件测试的执行不遗漏。在具体的项目中,合理的方法,可以使得漏测的缺陷减少。

如果没有确定方法,那么不同的测试人员,执行同一份测试,可能会选择不同的方法,那么带来的效果可能也不同,这样就把软件测试的结果寄托于“人”身上了,而并不是流程与节点,对于测试结果是不负责任的。

1.2 方法的选择

这里,我们首先来讨论一下方法的分类。

我们可能听过很多的说法:等价类、边界值、正交试验法等,还有说黑盒测试、白盒测试等,其实这样的讨论并不是在同一个层面上。我们先来澄清一下测试方法的分类。

  • 按照对被测试对象的执行情况

    • 手工测试
    • 自动化测试:Automatic Testing
  • 按照对被测试对象的观察视角

    • 白盒测试:White Box Testing,研究源代码的内部结构,保证程序正确。
    • 黑盒测试:Black Box Testing,不关注系统内部,只关注输入与输出。
    • 灰盒测试:Grey Box Testing,介于上述两者之间。
  • 按照对被测试对象的操作情况

    • 动态测试:Dynamic Testing,被测试的系统需要运行起来。
    • 静态测试:Static Testing,被测试的系统一定不能运行,检查代码和文档。
  • 按照对被测试对象的质量维度

    • 功能测试
    • 性能测试
    • 安全测试
    • 兼容性测试
    • 可用性测试
    • 稳定性测试
    • ……
  • 按照对被测试对象的阶段划分

    • 单元测试,Unit Testing,一般是开发人员对编写的类,方法进行测试
    • 集成测试,Integration Testing,主要包括接口测试
    • 系统测试,System Testing,传统的测试人员进行的功能、性能测试
    • 验收测试,Acceptance Testing,由用户,或者模拟用户进行遍历测试
  • 按照对被测试对象的系统结构

    • 界面测试,UI Testing
    • 接口测试,Interface Testing
    • 数据库测试,Database Testing
    • 业务逻辑测试,Business Testing
    • 服务器测试,Server Testing
  • 按照被测试对象的测试活动

    • 回归测试,Regression Testing
    • 冒烟测试,Smoke Testing
    • 随机测试,Random Testing

我们可能听过很多的说法:等价类、边界值、正交试验法等,还有说黑盒测试、

1.3 方法的使用

实际上,大部分的项目中的日常测试,使用的是黑盒或者灰盒测试,而我们常说的黑盒测试方法,例如等价类,边界值就属于主要使用的过程。

一般来说:等价类、边界值和流程法这三个是被用的最多的测试方法。主要用来:准备测试数据。

2 B5_测试场景

2.1 什么场景

场景,Scenario,指的是行为,用户的实际使用行为。测试场景,就是在测试的过程中,模拟的用户的使用行为。

以登录作为栗子:

  • 用户打开浏览器首次登录
  • 用户在不同的浏览器同时登录
  • 用户在不同的设备同时登录
  • 用户在已经登录的浏览器打开登录页面
  • 用户退出以后,不关闭浏览器,直接重新登录
  • 用户……

2.2 场景的描述

需要注意的是,场景的描述,不能带有“预期结果”。很多测试的初学者在一开始是区分不清楚场景的概念,在编写场景的时候,往往会添加上“预期结果”。例如:用户打开浏览器首次登录成功登录。这样一来,编写的已经不再是测试场景,而是测试用例了。请注意,这样是不对的。

场景的描述,需要讲明白:用户的具体行为。

2.3 场景的设计

场景的设计,其实并不会非常复杂,但是往往有遗漏,我们来谈一下具体的设计方法。

首先,需要从最“正常”的用户使用着手,这也是最重要的,最常用的地方。需要参考和针对的点就是:测试重点。把所有的测试重点的地方,依次分析用户可能的行为,并一一列出来。

其次,类似和雷同的场景,应该汇总在一起,作为一个场景来编写。

最后,仔细考虑“不正常”的用户有可能的使用方式,包括:

  • 错误操作
  • 错误流程
  • 意外情况

3 T2_测试计划

3.1 测试计划的作用

“凡事预则立,不预则废”。测试计划的作用其实无需多言,已经非常明确。任何事情都需要有一个计划。测试当然也是不例外的。

  • 测试计划是评审的对象
  • 测试计划是规范的体现
  • 测试计划是提升的依据

3.2 测试计划的格式

测试计划的具体格式,在不同的团队和不同的项目组,一般是有差别的,目前国内外都没有非常明确的格式。我们这里推荐的测试计划,是与前面的内容相关的。包括以下几个方面:

  • 测试目的
  • 需求描述
  • 测试范围
  • 测试重点
  • 策略方法
  • 测试场景

是不是看上去非常眼熟?因为就是之前的内容,放到一起。

3.3 如何使用测试计划

测试计划是需要在测试实践开始之前,针对某一个需求来编写的。注意:一个测试计划,只针对一个需求。这是敏捷测试团队的一般情况。

编写好测试计划以后,一般需要经过一个评审过程。后续的测试行为,会在测试计划的基础上做改动,并持续使用。

不同的测试人员,针对同一份测试计划,需要做出同样的测试执行。

此外,禅道目前还没有测试计划的功能,这一点值得期待。但是TAPD是有测试计划的功能的。

六天入门软件测试系列课程总纲
  • 相关学习

立师兄Linty:六天入门软件测试①——测试执行讲义

立师兄Linty:六天入门软件测试①——测试执行笔记

立师兄Linty:六天入门软件测试②——测试分析讲义

立师兄Linty:六天入门软件测试②——测试分析笔记

立师兄Linty:六天入门软件测试③——测试设计讲义

立师兄Linty:六天入门软件测试③——测试设计笔记

立师兄Linty:六天入门软件测试④——测试脚本讲义

立师兄Linty:六天入门软件测试④——测试脚本笔记

立师兄Linty:六天入门软件测试⑤——测试编程讲义

立师兄Linty:六天入门软件测试⑤——测试编程笔记

立师兄Linty:六天入门软件测试⑥——测试报告讲义

立师兄Linty:六天入门软件测试⑥——测试报告笔记

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 472fc5c3de2d阅读 1,540评论 1 0
  • 夜色朦胧沉醉一人身影 一点烟火在手上流泪 不知道为何 长街晚灯笑声聋哑一夏 巷口风声停下了哭泣 奔波于劳碌影身 沉...
    自朴阅读 2,361评论 0 1