一个软件测试工程师的成长日记(连载二)

发表于:2013-5-02 10:38

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

 作者:《从菜鸟到测试架构师    来源:51Testing软件测试网采编

  在工作中状态下,缺陷的负责人可以与测试人员(缺陷创始人)及相关人员一同讨论问题的原因和解决办法,并根据方案对文档或系统进行修改。修改完成以后,负责人需要把缺陷的状态改为验证(Verify)状态,并创建一个验证记录(Verification Record)供缺陷创始人验证。这时缺陷的创始人同时也是负责人。如果验证通过,问题已经解决,则缺陷创始人可以认可(Accept)这个解决方案,这时缺陷的状态会变成认可(Accept)。系统可以关闭(Close)处于认可状态的缺陷。

  从开启到关闭状态的流程,是缺陷生命周期的主要流程。在任何时候,基于新线索的发现,缺陷创始人都可以取消缺陷。有一些问题可能在不同的测试用例中以不同的方式暴露出来,或者分别被不同的测试人员发现,这种问题所被报出的缺陷最终都会被归结为同一个缺陷。缺陷负责人仅需要跟踪第一个被创建的缺陷(主缺陷),而其他缺陷会被标上重复(Duplicate)的记号。然后,验证缺陷的步骤无论是对主缺陷还是重复缺陷的创建人都是必需的。

  这种基于状态的缺陷生命周期管理模型有利于跟踪缺陷的状况并推动缺陷的及早解决。缺陷的属性中会包括重要性、严重性、发现时间等信息,根据这些信息,项目组可以把更多资源分配给更重要的、严重的和紧急的缺陷。

  测试专家在大多数情况下会作为问题的发现者出现,因而也顺理成章地成为缺陷处理的推动者。如何更早地、有效地发现问题,是测试专家的一项非常有技术含量的工作。而测试专家的另一项有技术含量的工作,就是发现问题后的问题分析(Problem Determination,PD)。

  开发人员要做的,远不仅限于开发;而测试专家要做的,也远不仅限于测试。系统出现缺陷好比一个人生病了,而问题分析的过程则好比医生对病情的诊断,问题分析的主要任务是找到问题的原因。只有发现了问题的原因,才有对症下药解决问题的可能。

  问题分析常用的系统方法有两种--自顶向下(Top-Down)和自底向上(Bottom-Up)方法。在分析错综复杂的问题,如系统级别的结构问题或性能问题时,这两种方法能够有效地定位问题。

  自顶向下方法,其着眼处在于整体。使用自顶向下方法,首先应该认同的一个观点是,系统整体的问题可能是系统某个部分的原因引起的,而这个局部的问题放大后会在系统的宏观级别上表现出来。通过观察和分析存在缺陷的系统整体情况,把系统分成若干部分,并逐个部分判断可能存在的问题。判断确定“嫌疑”所在后,使用调整--测试的方法证实判断的正确性。如果判断正确,宏观的问题确实存在于系统中,那么可以对这个细节进行修改,解决问题;如果判断不正确,则需要重现判断。从宏观到微观的过程也可能不是一步到位的,在复杂的系统中,这个过程可能会分为多个级别的细化来完成。有时候,整体的问题可能是由多个划分同时存在的问题引起的。通过逐个验证测试系统划分的“地毯式排查”方式,可以扫清所有“患处”。

  一个系统的局部分解方式通常是稳定的,使用自顶向下方法的理念在于通过这种稳定的分解,使用穷举方式最终可以确切地找到发生问题的局部。其好处是对于经验不多的人员,使用自顶向下法也能最终找到问题所在。当然,缺乏经验也可能带来苦头--对某些局部的验证也许是不需要的。

  相对而言,自底向上方法对分析者的能力要求较高。使用自底向上方法的前提是,承认缺陷的全部或部分是由于系统局部细节的问题引起的。分析时,根据系统表面看到的蛛丝马迹,直接判断出现问题的根源,并验证这个判断是否正确。实践上,可以从最底一层起,对系统在逻辑上或功能上进行划分,然后设计特定的测试场景,有针对性地验证这些划分是否正常。因为对系统进行过划分,所以一旦验证性的测试重现了问题,则能够比较清晰地定位究竟是哪个部分存在问题。

  这个从下往上的判断过程当然是很有讲究的,遭遇问题的经验、对问题的“嗅觉”,都有助于提高判断的准确性。复杂的系统中可能有问题的细节成千上万,作为分析人员,首先应该对系统的这些细节及其在整体中的作用比较熟悉,其次要拥有直达问题根源的“直觉”。如果缺少这种一击即中要害的技能,自底向上的问题分析方法可能并不奏效。

  值得注意的是,无论是自顶向下还是自底向上的问题分析方法,其本质其实都是准确地重现和定位问题。只要问题得以有效重现和定位,离找到解决的办法就不遥远了。

  自顶向下和自底向上方法可通用于一般各种测试类型,针对不同测试类型,这两种方法的具体使用方式可能存在不同之处。

  发现、定位和解决问题的方法,是测试人员的核心技能。由于测试的门类众多,针对系统的测试也有多种角度,这些方法在不同的测试中会有不同的具体表现。

  经过与凯文的谈话,小艾觉得自己对测试本身及其重要性、测试的技巧和窍门等方面的理解都加深不少。许多要点其实小艾在日常工作中已经有所接触,只是缺少系统的总结和提炼,而其他一些能力,则需要通过更多积累才能达到。凯文提醒道:“作为测试专家,核心的能力其实还是思考的能力。五花八门的测试方法和技术,得通过自己的实践、总结和思考,转化成系统的测试方法论。当一套属于你自己的测试方法论已经形成的时候,意味着你已经从专家成长为高手了。测试,在这种角度看,就是一个完备的哲学体系。”

  (未完待续)

相关链接:

一个软件测试工程师的成长日记(连载一)

55/5<12345
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号