在软件测试中除了根据测试用例和测试说明书进行功能测试外,还需要进行随机测试(Ad-hoc testing),随机测试是没有书面测试用例、记录期望结果、检查列表、脚本或指令的测试。主要是根据测试者的经验对软件进行功能和性能抽查。随机测试是根据测试说明书执行测试用例的重要补充手段,是保证测试覆盖完整性的有效方式和过程。
随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试样例(TestCase)没有覆盖到的部分。另外,对于软件更新和新增加的功能要重点测试。重点对一些特殊点情况点、特殊的使用环境、并发性、进行检查。尤其对以前测试发现的重大Bug,进行再次测试,可以结合回归测试(Regressive testing)一起进行。
随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试用例没有覆盖到的部分。另外,对于软件更新和新增加的功能要重点测试。重点对一些特殊点情况点、特殊的使用环境、并发性、进行检查。尤其对以前测试发现的重大Bug,进行再次测试,可以结合回归测试(Regressive testing)一起进行。
理论上,每一个被测软件版本都需要执行随机测试,尤其对于最后的将要发布的版本更要重视随机测试。随机测试最好由具有丰富测试经验的熟悉被测软件的测试人员进行测试。对于被测试的软件越熟悉,执行随机测试越容易。只有不断的积累测试经验,包括具体的测试执行和对缺陷跟踪记录的分析,不断总结,才能提高。
客户端随机测试思想
随机测试是根据测试者的经验随机的选取功能点对软件进行有针对性的测试。 这种测试没有用例的指导,完全根据测试员自己的经验和相关知识来测试。
一、作随机测试之前的一些前提条件
1)熟悉产品的各项功能和产品的逻辑结果
2)熟悉测试用例
3)完整的执行过测试用例
4)熟悉在用例测试阶段所发现的缺陷和缺陷的分布情况
5)测试人员具备一定的测试经验,对缺陷有敏锐的洞察力。
二、随机测试功能点的选取
1)根据用例测试阶段对产品的了解选取缺陷比较密集的功能模块。
在发现很多缺陷的地方,一定可以发现更多的缺陷。我们在做随机测试的时候,首先会先统计一下,之前哪些模块被发现的缺陷最多,那么接下来一定要重点的在那个模块里发掘一下缺陷。
2)根据发现的一次性缺陷或重现率比较低的缺陷涉及的功能点选取随即测试功能点。
缺陷产生的过程一定可以重现,重现率比较低的缺陷是隐藏比较深的缺陷,这些缺陷可能正是导致软件无法上线的原因。因此重现这些隐藏缺陷是十分重要的工作。
3)与开发人员沟通了解软件的缺陷。
首先可以了解到程序本身哪些地方最复杂,最薄弱,这些地方最容易发生什么错误,其次可以了解程序员最容易在哪些地方犯哪些错误。前者通过对程序的熟悉可以比较好的掌握,后者可以通过对缺陷的分析得到。
4)根据经验选取功能点。积累了一定的测试经验以后,有时测试就是一种感觉。
5)随机选取功能点。经过上述四种情况对功能点进行筛选后,剩下的功能点可以随机的选取。随机选取功能点只是在随机测试中选取功能点的一个方面,更多的时候还是要有针对行的选取功能点。
三、功能点的随机测试
1)以测试用例为基础。
首先要明确随机测试是对功能点进行随机测试而不是随机测试功能点。因此每一个功能点都是测试对象,依照测试用例可以有效地覆盖所有的功能点。
2)考虑操作前的状态
3)操作过程中的状态改变
4)考虑到其他功能对该功能点的影响
5)考虑该功能点直接对其他功能点的影响
6)考虑该功能点间接对其他功能点的影响
7)操作步骤地追踪。
在测试中常常会出现这样的情况,进行一系列复杂的操作之后缺陷突然呈现在眼前。这个时候如果能清晰地描述出具体的操作过程对于缺陷的重现是十分有利的,这也对最后的缺陷定位和简化缺陷的重现步骤提供了保障。交互性的模块追踪步骤主要考虑自己操作步骤地最终和对方操作步骤地追踪。有时缺陷的出现并不是完全是由自己的操作而发生的,别人的操作也有可能导致缺陷,只有综合自己和对方的操作才能是完整的过程追踪。
原文转自:http://www.uml.org.cn/Test/201104215.asp