自动化测试和测试工具
15.1 自动化测试的好处
a) 速度
b) 效率
c) 准确度和精准度
d) 节省资源
e) 方针和模拟 代替正常情况下与产品连接的硬件或软件
f) 坚持不懈
15.2 测试工具
15.2.1 查看器和监视器
查看器和监视器测试工具能够看到正常情况下看不到的软件细节。
大多数编译器附带的代码调试器也可以看作查看器,允许测试员查看内部变量值和程序状态。
如:通信分析器,查看通过网络或者其他通信电缆传输的原始协议数据。它只是监听线路,提取经过的数据,在另一台计算机上显示。
15.2.2 驱动程序
驱动程序是控制和操作被测试软件的工具,如:批处理文件
a)软件或者操作系统可能不是多任务的,同时运行另一个驱动程序是不可能的。
b)通过从外部计算机发送击键和鼠标移动信息,被测试系统处于非入侵状态。如果测试软件时在同一个系统中执行驱动程序,它就是入侵式的,这种测试情况可能不被允许。
15.2.3 桩
桩和驱动程序一样,属于白盒测试。
测试向打印机发送数据的软件,运行桩软件的另一台计算机来替代打印机,读取并解释打印数据,就可以非常快捷地检测测试结果。
15.2.4 压力和负载测试
压力和负载工具用于向被测试软件增加压力和负载。
压力在web中指增加请求数量,增加负载指在高cpu使用和高内存使用的状况下,对软件的压力进行测试。
压力程序可以分贝设置内存量、磁盘空间大小、文件数量,以及在该机器上运行软件的其他可用资源。
15.2.5 干扰注入器和噪声发生器
类似压力和负载工具。
设置可以模拟所有由数据中断、噪声或者电缆损坏等因素导致的通信错误。
15.2.6 分析工具
a) 文字处理软件
b) 电子表格软件
c) 数据库软件
d) 文件比较软件
e) 抓屏和比较软件
f) 调试器
g) 进制转换计算器
i) 秒表、录像机、照相机
15.3 软件测试自动化
15.3.1 宏录制和回放
设置宏如下选项
a)名称
b)重读次数
c)触发条件
d)捕捉对象
e)回放速度
f)回放位置
15.3.2 可编程的宏
15.3.3 完全可编程的自动测试工具
检查软件是否按预期方式运行
a)屏幕捕获 进行屏幕画面对比
b)控件值 检查窗口中各种控件的值,如是否点击复选框
c)文件和其他输出:把数据保存在文件中,自动化工具读取和正确文件进行比较。此技术也可适用在调制解调器或则网络发送数据的被测试软件。对读回数据和预期数据进行比较。
还包括:文件或文件格式日期、计数器或其他变化值。
15.4 随机测试:猴子和大猩猩
15.4.1 笨拙的猴子:不了解软件测试输入随机值
15.4.2 半聪明的猴子:笨拙猴子的基础上增加日志记录
15.4.3 聪明猴子
知晓:
1)它在哪里
2)他那里能干什么
3)他能到哪里
4)所见到的是否正确
同时查看数据、检查操作结果、找出其与预期结果的差别
15.5 使用测试工具和自动化的实质
使用自动化技术之前要考虑:
a)软件变更。产品说明书从未修改过。
b)人眼和直觉是不可替代的。
c)验证难以实现 保证测试工具子只检查需要的画面,而且能够在产品开发过程中高效处理变化。
d)容易过分依赖自动化。
e)不要花太多的时间使用达不到测试软件目的的测试工具和自动化。
f)编写宏、开发工具和编制测试工具都属于开发工作。应遵守程序员标准和规范。
g)某些工具是入侵式的,可能造成被测试软件不正常的失败。软件的缺陷也可能是测试过程中工具造成的。
缺陷轰炸和beta测试
16.1让别人测试你的软件
A)让其他人检查软件有助于打破杀虫怪现象:皇帝的新衣
B)类似地,人们互相之间不仅看到的不同,而且测试方法也不同。
C)让别人帮忙测试有助于消除烦躁心情。
D)观察别人解决问题的方式是学习新测试技术的上佳方法
16.2 测试共享
互换测试任务,执行他人的测试用例
缺陷轰炸:一段时间内整个测试小组停下指定的常规测试任务,参加轰炸
16.3 beta测试:外部测试,软件分发给潜在的客户群,让他们在实际环境中使用软件
Beta测试目标
A)谁是beta测试者
B)如何让指导beta用户使用过软件。跟踪测试
C)Beta测试可以成为寻找配置和兼容性软件缺陷的好方法
D)易用性测试是beta测试能有所作为的另一个领域
E)不管配置、兼容性和易用性、beta测试在寻找缺陷方面时间长,效率低。
F)Beta测试程序会耗费测试员大量时间。
16.4 外包测试 :软件测试外包公司
外包测试考虑:
A)测试公司究竟要执行哪些测试任务?谁来定义?谁来批准?
B)他们遵守哪个进度?谁来制定进度?如果超过最后期限会怎么样?
C)为测试公司提供哪些内容?例如软件说明书、阶段性更新以及测试用例
D)联系测试公司,
E)怎么知道测试公司是否满足期望?他们怎样知道是否满足期望?