探索式测试学习笔记(1)

什么是探索式测试?

 

   探索式测试(Exploratory Testing)是一种自由的软件测试风格,强调测试人员同时展开测试学习、测试设计、测试执行和测试结果评估等活动,以持续优化测试工作。

测试专家Cem Kaner博士在1983年提出的。

测试需要探索,而探索需要大量的思考。积极思考的探索式测试是具有挑战性的智力过程,常常需要在不确定的顺序反复实施钻研、尝试、迂回、调整、评估等活动。好的探索式测试不会使测试更简单,但是它会使测试更有效,从而在测试速度和缺陷发现上获得更多的汇报。

 

 

测试思维模式?

 

在实际测试执行中,你是否遇到过如下几个问题:

测试人员按照一个测试用例来执行测试,得到的程序的输出和预期输出不一致;

测试人员判断程序的行为并不是缺陷,但根据新的输出想到了新的测试思路;

测试人员根据新的测试思路采用不同的输入并检查程序输出;

测试人员再次根据新的测试结果选择新的输入,反复的探索下去,最终发现了一个程序缺陷;

测试人员发现该缺陷的测试思路或测试用例并没有出现在最初的测试设计或测试用例文档中。

 

这种现象非常正常,由于我们还没有真正深入地了解产品,不可能在测试设计的时候想到所有测试场景,且在需求分析阶段不可能评审到所有的隐含需求,所以最初测试设计并不能扑获程序的所有缺陷。为了发现尽可能多的缺陷,测试人员需要在测试过程中,根据测试反馈持续地优化测试模式、调整测试设计。这样的思维将有助于测试人员更有效地测试、提高测试水平。

 

   在测试过程中,测试人员可能遇到令人困惑的问题。这时,他可以考虑用一下方法来解除疑惑。

1)简化自己的测试思路。

2)保留测试现场并寻求帮助。

3)不断重复执行自己的操作。

4)返回到一个已确认过的状态。

5)一次只考虑一个因素,一次只修改一个因素。

6)做出精确的观察。

 

在探索式测试过程中,测试人员的下一个测试思路往往是不可预知的。在和大程度上,下一个思路取决于本次测试用例执行情况。有时,测试人员需要自问:是沿当前测试思路继续挖掘,还是更换思路?这是,可以参考“陷入与退出”策略:面对复杂的产品,先深入研究30分钟或1小时,然后停下来做些别的工作。经过几轮的陷入与退出,就会开始理解产品的模式和轮廓,并在头脑中形成更系统、更具体的测试和研究策略。

功能测试的三个层次:


探索式测试学习笔记(1)_第1张图片


功能测试模型分成三个层次:

 

第一层是功能测试模型:基本功能测试。

 

第二层是线下缺陷模式:互联网测试模型。

 

第三层是线上故障模型:

 

 

互联网测试模型: 多线程并发模型、时间边界模型、搜索查询异常模型、数据库校验模型。


1、多线程并发模型:


探索式测试学习笔记(1)_第2张图片

1)多线程创建、更新、删除某类数据,以多线程方式来操作数据并检查数据的完整性。

2)同时使用多个浏览器或一个浏览器的多个标签页进行测试,考虑Cookie 值得变化是否影响后续的操作,或使用场景探索模型多个角度地检查页面信息和数据库数据的正确性。

 

2、时间边界模型


探索式测试学习笔记(1)_第3张图片

1)在测试底层系统时,需要考虑时间对产品的影响,特别是通信时间差,另外还要考虑在业务数据计算过程中年月日的边界情况、特殊年份等。

2)通过修改客户端或服务器时间来校验带有时间和日期限制的功能,或考虑手机和后台服务器的时间差。

 

3、搜索查询异常模型

  1)进行搜索或查询测试时,多考虑特殊字符查询,如空格、带字母、特殊字符;

  2)由于数据量小,在测试环境下搜索查询不会出现严重超时的问题,在预发布测试的时候,注意一些搜索条件可能导致在大量数据量情况下的超时问题;

  3)对于搜索功能,查看搜索查询传入的参数的正确性和完整性,以及和搜索结果的对应关系系;

  4)在使用某些查询或搜索功能时,查询项中存在数据获取,在查询一个不存在的任何记录的情况后,再次查看该查询项的数据获取是否正确,考虑页面缓存,同样也要考虑搜索结果中含有边界属性的情况。

 

4、数据库校验模型

  1)对于数据库中的键或关键字段的数据类型进行最小、最大边界值得校验,对于业务计算中的浮点数或浮点数进位进行更精确的校验。针对关键字段,多次插入或更新数据,来校验字段唯一性约束。

  2)在数据库设计中,对于同一个字段在不同的表中的属性是否相同进行校验,重点检查“是否为空”和“限制性”这两个属性。

  3)在数据库设计中,测试分库分表策略的操作,重点测试同样的更新操作对所有的表是否可以成功执行,还要特别留意多线程并发的情况。

 

 

 

 

 

 

   文章未完。



你可能感兴趣的:(文章)