探索性测试是一个特殊的测试过程,它的测试活动和测试内容是动态变化的,更多的是通过测试执行的结果来指导后续的测试活动,花在文档上的时间很少,这也意味着探索性测试的可管理性不强,对于每个测试人员执行的测试活动的进度和效果很难监控。为了更好地开展探索性测试,Jonathan Bach提出了一种"基于会话的测试管理(Session-based test management,缩写为SBTM)"方法,这种方法可以对探索性测试进行更好地管理,把探索性测试的优势更好地发挥出来。
   
    基于会话的测试管理是一种用于管理探索性测试的方法。这里的会话(Session)是指测试工作的基本单位,在一个会话中测试工作是连续进行的,不会被打断。会话中的测试活动是为了实现某个具体的目标,同时测试活动的结果是可评审的。任何可能会被电话、会议、电子邮件或其他非测试活动打断的测试活动,都不适合成为一个会话。在一个会话中,测试人员应该专注于测试活动而不被打扰。在每个会话结束的时候,应创建描述已进行的测试活动的报告,该报告通常称为会话单(Session Sheet)。测试经理需要对该会话的报告或者会话单进行评审。一个会话可以持续90分钟,也可以是3个小时,对于会话的持续时间并没有严格的要求,通常情况下,每个测试人员完成的测试会话不要超过3个。
   
    由于每个会话持续的时间比较短,所以对于每个会话进行报告的周期也相应比较短,但是内容也很简洁。Jonathan Bach将一个测试会话中的任务分成三类:
   
    1、创建会话:建立测试环境和增进对产品的理解。
   
    2、测试设计和执行:细查测试对象,寻找问题。
   
    3、缺陷调查和报告:开始于测试人员发现某些疑似失效的问题。
   
    上述的三个任务并不一定是顺序执行的,在实际的操作中经常都是重叠的。每个测试会话完成后,测试人员要填写会话单。基于会话的测试管理中的会话单主要包括:
   
    1、会话章程(Session Chapter):主要描述会话的任务和可能采用的策略,会话的章程可能是测试人员自己选择的,也可能是测试经理分配的。
   
    2、测试人员姓名。
   
    3、起始的日期和时间。
   
    4、任务分解(以会话的形式):通常分别描述测试设计和执行、缺陷调查和报告。
   
    5、数据文件:描述测试会话中使用的数据文件。
   
    6、测试备注:对于测试活动中的任何特别的说明都可以记录在这里。
   
    7、问题:描述测试过程中碰到的问题,例如:由于测试环境不足,有些测试没有执行。
   
    8、缺陷:描述测试过程中发现的缺陷。
   
    测试经理根据测试人员提交的会话单,在测试团队内进行任务报告会议。在任务报告会议中,测试经理回顾测试活动、改善章程、从测试人员处取得反馈、估算和计划进一步的会话。任务报告的议程主要是简要地检验以下各项,并明确下一步的测试会话章程。
   
    1、经过:在会话期间发生了什么?
   
    2、结果:会话取得了什么成果?
   
    3、展望:还有什么有待解决的问题?
   
    4、障碍:要进行良好的测试有些什么障碍?
   
    5、感受:测试人员对上述项的感觉?
   
    在探索性测试中,测试的对象和内容比较发散,经常出现具体的测试活动和会话章程不一致的情况。那么在后的会话单中要对会话章程进行修改,以保证提交的会话单如实地反映了实际的测试活动。如果需要的话,也可以新建一个新的会话来记录这次测试活动。虽然不建议会话的持续时间太长,但是在实际的测试过程中,仍然会出现一个会话占用测试人员一整天的情况,通常可能是因为会话环境的搭建或者缺陷的调查花费的时间比预期的要大。这种情况下也没有必要强行把会话拆成多个更小的会话,可以根据测试的需要保留这些持续时间较长的会话。一个测试会话好是在没有被打断的情况下持续地进行,但有时候可能需要参加一个紧急的会议,或者开发人员修复紧急的缺陷而需要测试人员的帮助,这个时候测试会话不得不被打断。这种情况下,测试会话的中止和恢复是允许的。