测试手段之探索性测试(3)

发表于:2012-06-21来源:新浪博客作者:JerryGao点击数: 标签:探索性测试
现在对于探索性测试,大家很多的看法都存在一点误区,都认为探索性测试不会控制和管理测试进度,大家在网上可以找到很多关于探索性测试的介绍,很少介绍到探索性测试应用在项目过程中式任何管理的,没有涉及到核心,那么很多人都关心这个ET到底在项目中怎么

  现在对于探索性测试,大家很多的看法都存在一点误区,都认为探索性测试不会控制和管理测试进度,大家在网上可以找到很多关于探索性测试的介绍,很少介绍到探索性测试应用在项目过程中式任何管理的,没有涉及到核心,那么很多人都关心这个ET到底在项目中怎么来做呢?还有一个就是之前说了ET(探索性测试,后续统称为ET)很难去控制和管理整个进度,那到底有没有什么好的办法去管理ET呢?下面我们就去看看国外是怎么做的吧。

  首先要说的是这些问题在ET发展过程中,ET的那些大师们已经想好了怎么在项目实践过程中应用ET,也有一些比较成熟的解决办法。

  1.1 实践中ST和ET的使用模型

  这里需要说明的是怎么应用ET在项目过程中,可以从不同的维度去考虑:

  一个是ET和ST的结合方式,和测试人员具体做ET还是ST或都做无关

  另一个是team的组成方式,从测试的专业性角度去分隔开ET tester和ST tester

  看下面的模型更易理解:

  (备注:ST就是Scripted based Testing, 就是我们目前所做的基于测试用例进行测试的测试方法; Tester A是专门做ST Team的ST测试人员,Tester B是专门做ET Team的ET测试人员)

  从模型的演变过程可以看到,其实我们最终目标是没有ST tester和ET tester之分的,所有人都是标准的ET tester。国外ET的大师们确实带了好几个ET team,在项目测试过程中已经达到了模型四的境界,可想ET是可以主导整个项目测试的,其进度控制和质量管理都在实践中有了自己方法。

  1.2 ET team的管理方式

  在ET team里面又存在2个不同的管理方式:Delegation和Participation,这个区分的角度是从ET team lead在整个项目ET过程中的作用来看的。

  Delegation:

  (1) Test lead指定需要测试的charters, 不参与具体测试任务

  (2) ET tester完成这些charters并且report back

  (3) 对于一些问题和测试报告召开定期会议

  Participation:

  (1) Test lead在项目测试过程中与ET tester一样,参与某些测试任务

  (2) Lead可以实时的根据测试质量情况制定最后的测试策略

  (3) Lead可以持续的了解他所想要的了解的team的任何情况

  这里还可以让大家知道的是相比较单个人进行ET测试,在一个ET team中大家工作在一起,在同一时间对于同一个SUT(Software Under Test)进行ET,经常会出现很多更好的测试idea。 所有还有一种组合ET team的方式是让测试人员组成一对且让他们在同一台计算机上进行测试。另一种就是其中一个测试人员进行测试,傍边有多个测试人员观察且做记录,通过问测试执行人员不同的问题产出更多的测试idea,这里有一个好处就是测试执行人员不必担心发现的bug难以重现,因为傍边的测试人员会做记录和分析,这样测试执行人员可以不必分心去继续自己的测试。还有一个好处就是如果一旦这个测试人员思维过于开阔,去测试很多非当前需要测试的模块时,傍边的测试人员可以给予及时提醒。但其缺点就是更多资源消耗在同一个功能模块上,成本上有待商榷。

  1.3 ET过程中的任务

  下面我们说说具体的ET tester是怎么完成这些Charters的,还有怎么管理和控制他们完成的这些Charters。Charter的定义:ET过程中使用到的一个非常清晰地任务列表,指出了要测试什么,怎么测试(强调策略,不是详细测试步骤),要寻找什么样的bug,有哪些风险,要去检查什么文档等。

  在测试执行之前,ET lead和Senior ET tester参与制定所有的charters,并根据实际情况从charters中分离出所有需要测试的sessions(一个基本的测试工作单元,一般对应1-2个UC)。这里我们可以看到ET tester所有进行的ET是基于session的,那么我们使用的管理方法就叫Session-Based Test Management(Jon Bach的首创)。

  这里需要说下制定这些session的一些基本的原则:

  (1) 这些Session必须是chartered(与测试任务绑定的)

  (2) 这些Session必须是uninterrupted(独立的功能,且执行时不受外界的干扰)

  (3) 这些Session必须是reviewable(其Session sheet可以被第三方review)

  (4) 每个Session一般不超过90 min, 其大致范围从45 min(short session)到120 min(Long session)

  首先我们来分解下ET过程中,大概花的时间的分配:

  (Opportunity 指的是Opportunity testing,就是执行其他的session的功能)

  这里每个ET tester完成一个Session过后,必须记录session sheet,下面是主要的因素:

  (1) Session Charter (charter名称,和session名称)

  (2) Tester name(s)

  (3) Data and time started

  (4) TBS metrics (包括3个方面的effort统计:测试设计和执行,bug分析和报告,session setup)

  (5) Data files

  (6) Test notes(ET 过程中的随时记录的一些东西,比如test ideas, risk list 等)

  (7) Issues(ET 过程中的问题和疑惑)

  (8) Bugs

  1.4 ET中管理Session

  下面我们继续ET在项目中的管理(这里说的是上述的模型三或四),大致如下在:

  Lead针对SUT做出Charters和Sessions

  Lead针对所有sessions和资源来做出Test plan和测试策略(包含对SUT的攻击策略)

  设计阶段ET tester对于自己负责的sessions进行test idea development

  设计阶段ET tester还需要对自己负责的session所对应的oracles(可以准确任务这个问题是个bug的所有信息,包括文档) 进行梳理

  测试执行的时候ET tester根据之前的test idea list来进行测试,根据SUT本身的response并采用Heuristics的方法产出更多的test idea(这部分的test idea 不是必要记录下来)

原文转自:http://www.ltesting.net