《Software Testing》第十五章 – 自动化测试和测试工具

我终于看到自动化测试了,呵呵,不过这章不是我想象中的那样子,可能这本书并不是主要介绍自动化测试的吧。

The Benefits of Automation and Tools – 自动化测试和使用工具的好处
自动化?那要人干啥!呵呵……人不就是用来实现自动化囖。自动化测试有什么好处,面试的时候经常有人问,答案其实没有十分标准的,不过通常都离不开那些老论调。

The principal attributes of tools and automation – 其实是工具的属性。与生俱来的能力

1.Speed – 速度。机子执行的速度是人的N倍,不顾这是要付出代价的,在你教会电脑做事之前,那就是一堆废铁。
2.Efficiency – 高效。当机子在一边跑case的时候你还能设计出新的case。事情真的是这样子的么?估计是在调试脚本吧。
3.Accuracy and Precision – 准确和精确。电脑可以全天工作不休息而且不会出错。人是铁饭是钢,一顿不吃饿得荒。


4.Resource Reduction – 节省资源。这个对于性能测试是最能体现出来的,雇用100个人来胡点还不如人家一台电脑模拟出来的用户牛!
5.Simulation and Emulation – 模拟。电脑可以模拟很多东西,例如变成一台打印机,不是变形金刚,只是一个虚拟的设备。
6.Relentlessness – 电脑可以没日没夜地干活,只要有电!
工具永远都不能替代测试员,它们只是帮助人们更好地完成工作而已。所以说自动化测试并不能替代手工测试。

Test Tools – 测试工具
作为一个测试工程师,我们肯定接触过很多类型的软件,帮助我们更好地完成工作。不同厂商提供针对不停场景下应用的软件,不过这些软件来来去去都是下面要介绍的一些。设置公司里面自己写来帮助测试进行的软件,也必将落入以下的分类,嘿嘿,听起来很神奇~来看看吧。书中特别强调了两种不同风格的工具,non-invasive and invasive。非侵略性的与侵略性的。前者不会修改被测试的软件,只是检视和观察。后者就是指能够对操作环境进行某种方式的修改和对代码进行修改的测试软件。

1.Viewers and Monitors – 观察器与监视器。这些监视器就是能让你看到一些在一般情况下看不到的细节。例如白盒测试里面的代码覆盖率,分支覆盖,条件覆盖等等。这些都是可以在工具的帮助下轻松得到具体的数据的。这类型的软件算是Invasive的。因为需要编译代码链接等等~~在计算机网络里面还有一种经常被使用的工具sniffer – 嗅探器。嗅探器是属于Non-invasive的工具。反正如果有一个软件能够让你看到平常人看不到的信息的话,这个软件就是一个Viewer。

2.Drivers – 驱动器。就是一个控制器,可以控制软件的操作的工具。其实我们平时用的很多自动化测试工具,功能的性能的,都应该算是这一类。

3.Stubs – 桩。桩更好跟驱动是相反的。例如现在要测试一个打印程序,如果打印出来的话第一比较麻烦,第二可能会有一些发现不到的细节上的错误。那么桩和仿真器emulator有什么区别呢,他们之间的区别就是桩还能看到不同系统之间发送的信息,而仿真器只能仿真,不具备查看内部数据的功能。

4.Stress and Load Tools – 压力和负载工具。压力工具,可以创建一个比较苛刻的系统环境,譬如说让系统可用内存在一个很低的水平,然后运行被测试软件。负载测试工具可以帮测试工程师对被测试系统进行负载的增加。例如模拟10000个web的用户。

5.Interference Injectors and Noise Generators – 冲突注入器和噪声生成器。

我们可以在两台机子中间加一个电脑,中间人,呵呵。然后可以加入噪声或者对包进行更改什么的,达到测试的效果。

6.Analysis Tools – 分析工具
这里面包括:
Word processing software 文字处理
Spreadsheet software 表格处理
Database software 数据库
File comparison software 文件比较
Screen capture and comparison software 抓图
Debugger 调试
Binary-hex calculator 二进制计算器
Stopwatch 计时器
VCR or camera 磁带机摄像机

Software Test Automation – 软件测试自动化。
软件测试自动化的目标就是达到在无人干预的情况下能自动跑脚本,自动找出相应的bug,自动报告,做log记录等等……反正就是!一条龙。鉴于书中讲的自动化方法比较过时,这里就偷懒不说了。不过其实用上先进的工具都是同样的一个过程。1.录脚本回放,最最低级的过程。2.修改脚本加入检查点,实现了检查bug的自动化。3.模块化脚本,实现少量脚本的重用。4.数据驱动,实现广义上的重用。就是写一次脚本,运行N个case。5.关键字驱动,据说可以实现自动化脚本和测试用例同步产生。这个有待验证。

Random Testing -随机测试。
这里书上用了一个猴子做比喻,呵呵,其实一个软件给了用户以后,我们根本不知道他们会怎么使用,有时候可能觉得不会有人那样子用软件的,但是什么事情都有可能发生,书上介绍了一种模拟随机时间的方法,就是搞一个robot,这个robot就像一个猴子那样子乱点,而且这个猴子还是个瞎子,软件挂了他还在乱点~

Realities of Using Test Tools and Automation – 使用测试工具和自动化的现实。
前途是光明的道路是曲折的。所以要认清楚其本质!
1.软件在变,文档在变,需求在变。做自动化就要适应这些变化。由此得出,录脚本死路一条。
2.工具不能代替人的眼睛和直觉。因为是我们赋予了工具能力,那些我们没有“教”那些软件的事情他是不会做的
3.检查点是比较难做到。
4.测试工程师很容易就依赖于测试工具了。不过测试工具并不是银弹。
5.不要花费过多的时间在测试工具和自动化上面,这些都是为测试服务的,但是他们不是测试。
6.自动化脚本就是程序,所以也要跟开发程序一样,有代码控制,遵守指引。
7.一些带有侵略性(Invasive)的工具有可能对我们的测试造成影响。

Leave a Reply

Your email address will not be published. Required fields are marked *