而AppSight这个工具的背后实际上是提供了一种问题解决思路的转变,也是说需要把重现问题这个环节大程度地消除,同时在发现问题的时候尽可能的去收集问题信息和相关环境信息,并协助定位问题。这于灰盒测试的方法实际上是不谋而合的,如图2所示。

图2  AppSight提供了一种问题解决思路的转变

  工作原理
  BMC AppSight应用解决方案事实上是通过采用类似于飞机上的“黑盒子”专利技术来使得测试后问题解决流程变得更加自动化。这又完全不同于黑盒测试,原因在于飞机的黑盒子终是可以被解剖的,而黑盒测试永远是面对一个黑盒子。具体而言,AppSight系统会将问题发生的相关信息完整录制下来,包括问题发生的现场场景、信息及分析等,从而快速切入到问题根源。如图3所示。

图3  AppSight系统会将问题发生的相关信息完整录制下来

  下面是运用AppSight工具的典型测试工作流程。
  1.测试人员通过AppSight提供的录制器进行测试录制,由于灰盒测试不同于黑盒测试中主要强调回归测试的概念,因此录制不需要添加校验点和进行参数化,整个过程相当简单易用。
  2.录制过程中,录制器会将所有过程录制成一个灰盒文件,同时包含了很多环境信息和录制中的性能数据信息:如数据库调用、Web访问信息、J2EE/.NET调用信息等,这些信息将有助于将来问题的分析。
  3.录制完成后通过AppSight的集成器将缺陷自动创建到缺陷跟踪系统中,同时附上灰盒文件,于是开发人员可以进行问题处理。
  4.开发人员拿到相关信息后,可以直截了当地看到当时测试用例的全过程,加之灰盒文件提供了有价值的信息,进而可以快速定位到代码中某一行的位置,这样开发人员只需要直接进行问题处理即可。

图4  问题终被AppSight准确定位到应用代码相应行和函数

  小结
  BMC AppSight通过自动化手段进行灰盒测试的优化应用,并提供开发测试解决方案。它采用的专利问题解决方案技术,从以下几个方面大大加速了测试过程中问题解决流程:提供了自动化的信息采集、捕获现场操作并将所有的相关信息统一打包处理;消除了通常情况下需要完整重现问题发生的过程,避免在重现问题上耗费的时间开销;大大加速了问题分析的过程,使得开发人员能够快速分析问题并隔离根源问题。
  事实上,BMC AppSight应用问题解决方案非常适用于测试人员和开发人员。对于测试人员来说,由于自动记录了测试场景和问题发生过程,避免了开发人员和测试人员之间相互推诿,同时开发人员可以通过“黑盒子”直接从测试人员那里得到更多信息,并帮助直接定位到代码行。如果说灰盒测试只是万事俱备只欠东风,那么AppSight是东风。