第一部分 软件测试基础
第 1 章 软件测试基本概念
本章要点:
● 了解软件、Bug、用户需求、软件测试、测试环境的概念,学会搭建测试环境。
● 掌握软件环境的分类以及测试用例的概念,学会使用测试用例的模板及编写测试用例的注意事项。
1. 普遍认可的软件定义
软件是计算机中与硬件相结合的一部分,包括程序和文档。程序指的是能够实现某种功能的指令的集合。文档指的是软件在开发、使用和维护过程中产生的图文合集,甚至是一些软件市场宣传材料、包装文字和图形等。
2. 软件的分类
① 按功能划分:系统软件,能够直接操作底层的硬件、并为上层软件提供支撑的软件。应用软件,能够为用户提供某种特定的应用服务的软件。
② 按技术架构划分:单机版软件,直接在单个计算机上安装并运行的软件。C/S结构软件,基于局域网或互联网,需要有一台服务器来安装服务器端软件,每台客户端都需要安装客户端软件。B/S结构软件,同样基于局域网或互联网,与C/S结构的区别在于不需要安装客户端软件,只需要有浏览器即可。
③ 按照用户划分:产品软件,目标是大众用户,而不是某一特殊群体。项目软件,目标用户是具体的用户,而不是千家万户。
④ 按照开发的规模划分:按照软件开发的参与人数以及开发时间来划分,具体如图1所示。
3. 软件的Bug
指的是软件中(包括程序和文档)不符合用户需求的问题。这个定义是我们判断一个软件问题是否是Bug的唯一标准。
4. 常见的Bug类型
① 完全没有实现的功能。
② 基本实现了用户需要的功能,但是运行时会出现一些功能或性能上的问题。
③ 实现了用户不需要的功能。
5. 软件测试的标准定义
使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别(1983,IEEE软件工程标准术语)。
这个定义明确指出了,软件测试的最终目的是检验预期结果(用户需求)和实际结果之间的差别。
而在《The art of software testing》中,曾经对软件测试下过如下定义:
Testing is the process of executing a program with the intent of finding errors.
测试是为发现错误而执行程序的过程。
6. 测试环境的定义
软件测试环境就是软件运行的平台,即硬件、软件、网络的集合。
硬件,主要包括PC机(包括品牌机和兼容机)、笔记本、服务器、各种PDA终端等。不同的机器类型,不同的机器配置。
软件,主要指软件运行的操作系统。
网络,主要针对的是C/S结构和B/S结构的软件。不同的网络类型,不同的网络传输速度。
7. 搭建测试环境的要点
① 真实,尽量模拟用户的真实使用环境。
② 干净,测试环境中尽量不要安装其他与被测软件无关的软件。
③ 无毒,测试环境没有中毒。
④ 独立,测试环境和开发环境独立。
8. 软件环境的分类
软件开发环境:软件在开发过程中使用的环境,一般包括VB、VC等一些开发工具。
软件生产运行环境:最终用户使用的环境。
软件测试环境:要与软件生产环境保持一致,要从开发环境中独立出来。
9. 使用虚拟机搭建测试环境的好处
虚拟机(Virtual Machine)是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
使用虚拟机作为测试环境主要有以下一些好处:
● 可以安装各种演示环境,便于做各种例子。
● 保证主机的快速运行,减少不必要的垃圾安装程序,对于偶尔使用的程序或者测试用的程序可以在虚拟机上运行。
● 避免每次重新安装,可以快速恢复到初始的安装状态。
● 体验不同版本的操作系统,如Linux、MAC等。
虚拟机不适合进行性能测试。
10. 测试用例的定义
英文名为Test Case,缩写为TC,指的是在测试执行之前设计的一套详细的测试方案,包括测试环境、测试步骤、测试数据和预期结果。
11. 测试用例模板——Excel模板
12. 测试用例模板——Word模板
13. 两种通用模板的比较
Excel模板:每个用例占一行,便于集中管理和维护,一般适合写功能用例。
Word模板:每个用例单独占一页,描述的比较清楚,但比较分散,适合写性能用例。
14. 编写测试用例的好处
① 便于团队交流
② 便于重复测试
③ 便于跟踪测试
④ 便于用户自测
缺点:需要花费大量时间,通常编写测试用例的时间比实际执行测试的时间还要长。
15. 什么时候写测试用例
通常在测试设计阶段,即《需求规格说明书》和《测试计划》都已经完成之后。
16. 根据什么编写测试用例
唯一标准是用户需求,具体的参考资料就是《系统需求规格说明书》和软件原型(指没有嵌入全部源代码的软件界面)。