Introduction to the basic theory of software testing.
- 单元测试也叫模块测试;测试最小的程序模块;
- 集成测试又叫组装测试,通常在单元测试的基础上,单独的模块合在一起测试
- 系统测试,指的是将整个软件系统看为一个整体进行测试
- 验收测试:
- α测试:Alpha 是内测版本,通常只在软件开发者内部交流,或忠实的粉丝之间发布,该版本软件的bug较多,普通用户最好不要安装。
- β测试:Beta是公测版本,是对所有用户开放的测试版本,免费发布,因为里面还会有一些bug的存在。
- γ测试:Gamma版本就是正式版的候选版本。
- 黑盒测试:关注业务逻辑,输入内容与输出结果之间
- 白盒测试:去研究里面的源代码和程序结构
- 灰盒测试:黑白之间的状态
- 静态测试: 指不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误过程。
- 动态测试: 是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。
- 人工测试:也叫做手工测试,测试人员手动去进行的测试。
- 自动化测试:利用代码或者工具帮助人工进行测试。
- 冒烟测试:冒烟测试就是对系统进行最基本功能的测试,保证基本的功能和流程能走通。
- 回归测试:当修复一个BUG后,把之前的测试用例在新的代码下进行再次测试。
- 随机测试:随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试用例没有覆盖到的部分。
- 探索性测试:探索性测试意味着同时设计测试和执行测试。测试人员通过测试来不断学习被测系统。
软件缺陷:是指软件或程序中存在的各种问题及错误;会导致软件产品在某种程度上不能满足用户的需求
- 软件未达到需求规格说明书中标明的功能。
- 软件出现了需求规格说明书指明不会出现错误的地方。
- 软件的功能超出了需求规格说明书指明的范围。
- 软件未达到需求规格说明书虽未指明但应该达到的目标。
- 软件测试人员认为软件难以理解,不易使用,运行速度慢,或者最终用户体验不好。
软件缺陷产生是不可避免的,造成软件缺陷产生的原因主要归纳如下:
- 需求解释、记录或者定义错误
- 设计文档说明存在错误或者拼写错误
- 编码说明、程序代码有误
- 硬件或者软件系统上存在错误
- 功能错误
- 界面错误
- 兼容性缺陷
- 易用性问题
- 改进建议
- 只能证明软件存在问题,不能证明不存在问题
- 不能进行穷尽(穷举)测试,应该分类别测试
- 测试工作要尽早的介入,降低修复成本
- 缺陷存在集群现象,二八原则:20%的模块中存在80%的缺陷
- 测试依赖环境(系统、浏览器)
- 杀虫剂现象
- 不存在缺陷谬论
人工和自动化手段来进行测试,目的找到预期结果和实际结果之间的差异
用最少的人力、物力、财力,找到软件中的问题并修复,从而降低商业风险
定义:是为特定的目的而设计的一组测试输入,执行条件和预期结果的文档。测什么?怎么测?