随机测试思想

发表于:2016-4-22 11:25

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:搜狗测试    来源:51Testing软件测试网原创

  在软件测试中除了根据测试样例和测试说明书进行测试外,还需要进行随机测试(Ad-hoc testing),主要是根据测试者的经验对软件进行功能和性能抽查。随机测试是根据测试说明书执行样例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。
  随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试样例(TestCase)没有覆盖到的部分。另外,对于软件更新和新增加的功能要重点测试。重点对一些特殊点情况点、特殊的使用环境、并发性、进行检查。尤其对以前测试发现的重大Bug,进行再次测试,可以结合回归测试(Regressive testing)一起进行。
  理论上,每一个被测软件版本都需要执行随机测试,尤其对于最后的将要发布的版本更要重视随机测试。随机测试最好由具有丰富测试经验的熟悉被测软件的测试人员进行测试。对于被测试的软件越熟悉,执行随机测试越容易。只有不断的积累测试经验,包括具体的测试执行和对缺陷跟踪记录的分析,不断总结,才能提高。
  随机测试和用例测试的区别:
  用例测试:对需求文档实现的一种验证,按照写好的测试用例一个模块一个模块执行测试。用例怎么写就怎么测试。测试过程中个功能联系不是很紧密。
  随机测试:没有测试用例的束缚,更多考虑功能模块中的联系,用户行为的差异。
  一、做好随机测试的一些前提条件
  1.熟悉产品的需求
  2.熟悉测试用例
  3.完整的执行过测试用例
  4.熟悉在用例测试阶段所发现的Bug和Bug的分布情况
  5.测试人员具备一定的测试经验
  二、随机测试功能点的选取
  1.根据用例测试阶段对产品的了解选取bug比较密集的功能模块。
  在发现很多bug的地方,一定可以发现更多的bug。我们在做随机测试的时候,往往会先统计一下,之前哪些模块被发现的bug最多,那么接下来一定要狠狠的在那个模块里发掘一下。
  2. 功能比较复杂,操作路径比较复杂的地方,进行随机测试
  3.根据发现的一次性bug或重现率比较低的bug涉及的功能点选取随即测试功能点。
  Bug产生的过程一定可以重现,重现率比较低的bug是隐藏比较深的bug,这些bug可能正是导致软件无法上线的原因。因此重现这些隐藏bug是十分重要的工作
  4.与开发人员沟通了解软件的缺陷。
  首先可以了解到程序本身哪些地方最复杂,最薄弱,这些地方最容易发生什么错误,其次可以了解程序员最容易在哪些地方犯哪些错误。前者通过对程序的熟悉可以比较好的掌握,后者可以通过对bug的分析得到。
  5.根据经验选取功能点。积累了一定的测试经验以后,有时测试就是一种感觉。
  6. 测试过程中注意对开发人员特点,习惯的观察,来进行随即测试
  三、功能点的随机测试
  1.以测试用例为基础。
  首先要明确随机测试是对功能点进行随机测试而不是随机测试功能点。因此每一个功能点都是测试对象,依照测试用例进行随机测试可以有效地覆盖所有的功能点。
  2.考虑操作前的状态
  3. 操作过程中的状态改变
  4. 考虑到其他功能对该功能点的影响
  5. 考虑该功能点直接对其他功能点的影响
  6.考虑该功能点间接对其他功能点的影响
  7.极端条件下的测试
  模拟程序在非正常情况下是否会出现问题,例如网络频繁断开连接,已极快速度持续点击button,导入超大规模文件
  8.稳定性方面测试
  10. 操作步骤地追踪
  在测试中常常会出现这样的情况,进行一系列复杂的操作之后bug突然呈现在眼前。这个时候如果能清晰地描述出具体的操作过程对于bug的重现是十分有利的,这也对最后的bug定位和简化bug的重现步骤提供了保障。交互性的模块追踪步骤主要考虑自己操作步骤地最终和对方操作步骤地追踪。有时bug的出现并不是完全是由自己的操作而发生的,别人的操作也有可能导致bug,只有综合自己和对方的操作才能是完整的过程追踪。
  11.简化bug重现步骤。
  寻找Bug要准确定位,开发和测试是一个整体,时间是等量的,时间不在你身上浪费,就是在他身上浪费。如果测试人员每次发现的bug 描述不清楚或者重现bug的过程非常复杂,并且多个问题潜在的错误原因是一个,虽然操作可能稍微有些变化。这样开发人员在重现bug 的时候他要调试跟踪判断,很花费时间,而且效率低。如果测试人员发现bug 的时候多尝试可以更加准确的定位bug 步骤和原因,给开发人员最精确的步骤和准确的描述,这样整个团队才能高效。简化bug重现的步骤主要体现在减少涉及的功能点的操作上。
  12.与开发人员进行沟通
  在和程序员沟通的过程中,你可以知道很多你前所未知的东西例如功能的实现过程,功能模块间的内在联系等,你可以通过验证这些东西,来发现未知的bug,并且可以激发你运用更多的测试手段来测试。
  13.举一反三
  首先通过以前发现的bug反映出可能出现的一类bug,通过bug重现的步骤反映出一类操作可能会导致bug
  14. 测试经验的积累
  经验是来之不易的东西,我们需要在日常测试中不断的积少成多,并且多和同行交换测试心得和测试经验丰富自己的测试手段和测试角度。经验在随机测试中可以帮助我们少走弯路,让我们的目标更加明确,更容易发现bug
  15. 测试心态
  做测试最重要的是心态,这里说的心态一方面指的是测试人员对程序的看法。作为测试人员,在拿到测试程序时,一定要保持悲观的心态,认定这个程序有很多缺陷和错误,甚至认定这个程序很垃圾,想像微软出来的程序都有很多缺陷,那我们的程序也一定需要我们去狠狠的去发掘bug。不能因为这个模块已经被测试过好多遍,或者这个这个模块非常小非常简单就忽略了对这个模块的测试。另一方面,要有足够的耐心。首先,在作随机测试之前比较明显的bug和操作步骤比较简单的bug已经基本上被找到,随即测试主要是挖掘深层次的bug。相对用例测试操作步骤相对复杂,因此随机测试可能会出现长时间找不到bug的情况,这时需要耐心的测试才能找到bug。
  16. 突破思想上的束缚
  测人人员的测试手段和测试角度往往是从别人那里得到的,因此测试人员常常受到传统测试思想的束缚。挖掘更深层次的bug需要测试思想有所创新和升华,这一点比较难做到,需要付出更大的努力。关注不同人群,操作习惯
版权声明:本文出自《51测试天地》原创测试文章系列(四十一)投稿。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
相关推荐:
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号