测试的方式很多,通常都是使用两种基本方式,黑盒测试和白盒测试,今天来讨论三种其它的测试方式
Ad Hoc Testing
Ad Hoc的意思有多种解释,一般解释为特定的,随机的,这里的Ad Hoc不是指网络上的对等模式,和测试组合起来,解释为随机测试。
随机测试一般是在集成测试结束后或是在某个模块功能测试完成后,时间又宽裕,不急着上线发布,可以使用随机测试,似乎有点像猴子测试;测试人员可以抛弃测试用例和测试说明书,主要是根据测试者的经验对软件进行功能和性能抽查。随机测试是根据测试说明书执行样例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。
随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试用例没有覆盖到的部分。另外,对于软件更新和新增加的功能要重点测试。重点对一些特殊点情况点、特殊的使用环境、并发性、进行检查。尤其对以前测试发现的重大Bug,进行再次测试,可以结合回归测试(Regressive testing)一起进行。
理论上,每一个被测软件版本都需要执行随机测试,尤其对于最后的将要发布的版本更要重视随机测试。随机测试最好由具有丰富测试经验的熟悉被测软件的测试人员进行测试。对于被测试的软件越熟悉,执行随机测试越容易。只有不断的积累测试经验,包括具体的测试执行和对缺陷跟踪记录的分析,不断总结,才能提高。
Cross Testing
Cross Testing是指交叉测试,不是指嵌入式测试,有些人把嵌入式测试也叫交叉测试;这里的交叉测试是指二个功能模块开始分别由2个人独立测试,之后2人再交叉互相测试对方测试的模块。
这样做的好处是可以提高测试覆盖率,我们都知道每个人的思维都有一定的出发点和看问题的角度,这也是为什么不允许开发人员测试自己开发的程序,因为每个人都有个思维定式,所以通过交叉测试,可以发现对方没有想到的细节问题或是不大关注的细节。简单来说交叉测试就和开发的代码Review同一个概念,通过结对检查,发现一些死角,目的还是尽可能多的发现Bug。
Smoke Testing(转载)
冒烟测试(smoke testing),据说是微软起的名字。在《微软项目求生法则》一书第14章“构建过程”关于冒烟测试,就是开发人员在个人版本的软件上执行目前的冒烟测试项目,确定新的程序代码不出故障。
冒烟测试的名称可以理解为该种测试耗时短,仅用一袋烟功夫足够了。也有人认为是形象地类比新电路板功基本功能检查。任何新电路板焊好后,先通电检查,如果存在设计缺陷,电路板可能会短路,板子冒烟了。
冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。冒烟测试的执行者是版本编译人员。
在一般软件公司,软件在编写过程中,内部需要编译多个版本(Builds),但是只有有限的几个版本需要执行正式测试(根据项目开发计划),这些需要执行的中间测试版本,在刚刚编译出来后,软件编译人员需要进行基本性能确认测试,例如是否可以正确安装/卸载,主要功能是否实现,是否存在严重死机或数据严重丢失等Bug。如果通过了该测试,则可以根据正式测试文档进行正式测试。否则,就需要重新编译版本,再次执行版本可接收确认测试,直到成功。
新版本的基本功能确认检查的测试,有的公司成为版本健康检查(Build Sanity Check)。对于编译的本地化软件新版本,除了进行上面提到的各种测试检查,还要检查是否在新的本地化版本中正确包含了全部应该本地化的文件。可以通过采用文件和目录结构比较工具,首先比较源语言版本和本地化版本的文件和目录中的文件数目、文件名称和文件日期等,这个过程称为版本镜像检查(Build Image Check)。其次,分别安装源语言版本和本地化版本,比较安装后的文件和目录结构中的文件数目、文件名称和文件日期等,这个过程称为版本安装检查(Build Installing Check)。