测试基础
检查产品说明书
开始测试
- 黑盒测试与白盒测试
- 黑盒测试:软件测试员只需要知道软件要做什么,无法看到软件内部是如何运行的;每次只需要输入,就可以得到某种输出结果。
- 白盒测试:可以访问软件内部,查看软件的代码,测试员根据代码检查结果判断或多或少可能出错的数目,并由此定制测试。
- 静态测试和动态测试
- 静态测试:测试不运行的部分——只是检查和审核;
- 动态测试:使用和运行软件
- 静态黑盒测试、测试产品说明书
- 测试软件说明书属于静态黑盒测试,软件测试员可以利用说明书进行静态黑盒测试,认真查找错误;产品文档有时候是文档,有时候是图表。
对产品说明书进行高级审查
- 假设自己是客户;认真处理文档中自己不懂的地方;
- 研究现有的标准和规范,包括但不限于:
- 公司惯用语
- 行业要求
- 政府标准
- 图形用户界面及安全标准等;
- 审查和测试类似软件,包括但不限于:
- 规模
- 复杂性
- 测试性
- 质量和可靠性
- 安全性
产品说明书的低层次测试技术
- 属性检查清单
- 完整
- 准确
- 精确、不含糊、清晰
- 一致
- 贴切
- 合理
- 代码无关
- 可测试性
带上眼罩测试软件
动态黑盒测试
不深入代码细节测试软件的方法称为动态黑盒测试。测试员输入数据,接受输出,检验结果。
通过性测试和实效性测试
- 通过性测试:确认软件最少能做什么,不会考验其能力,不需要想尽办法让软件崩溃,只运用最简单、最明显的测试用例。
- 失效性测试:采用各种手段搞垮软件来找出软件缺陷。
等级性划分
在测试时不能覆盖到所有测试用例,所以将测试用例等价分类划分,来将测试用例集减的很小。
满足等价类的测试用例应该满足以下的条件:
- 具有相似输入
- 相似输出
- 相似操作
数据测试
用户可能输入的所有样例叫做一个数据集
边界条件
程序员往往会在边界处出问题,把处于边界的测试用例叫做边界条件;
测试边界
提出边界条件时,一定要测试临界边界的有效数据,测试最后一个可能有效的数据,同时测试杠超过边界的无效数据。
次边界条件
在软件内部,用户不可见但测试员必须进行测试,这样的条件叫做次边界条件。
- 2的幂
- 在计算机中,数据和命令都是以二进制存放的,假设此时输入的规定为:1~1000,除了要包含1和1000边界的值以外,还有考虑临近字节边的254、255、256
- ASCII表
- 如果限制输入在”az“与”AZ“,那么不仅要考虑内部的边界,还要考虑比如之外的”/",":","@“等符号
默认、空白、空值、零值及无
要考虑到空白输入及0输入
非法、错误、不正确及垃圾数据
主要是失效性测试。可以设计千奇百怪的输入
状态测试
软件状态是软件所处的模式或者状态。测试员在测试其状态时需要考虑状态及状态的转换。
测试软件的逻辑流程
- 建立软件状态转换图
- 软件可能进入的每一个状态;
- 从一种状态转换到另一种状态所需的输入和条件;
- 进入或退出某种状态是的设置条件及输出结果;
- 减少要测试的状态及转换的数量;
- 每种状态至少访问一次;
- 测试看起来最常见、最普通的状态转换;
- 测试状态之间最不常用的分支;
- 测试所有错误状态及其返回值;
- 测试随机状态;
- 进行具体测试
失败状态测试
- 竞争条件和时序错乱
- 重复、压迫和重负
- 重复测试:不断的执行同一操作,检查内存泄漏;
- 压迫测试:在不够理想的环境下运行,比如内存小,CPU慢等;
- 重负测试:提供尽可能大的条件,给予尽可能多的任务;