软件测试的一个原则是尽早地发现问题。作为测试专家,应该考虑的问题也是如何更早地发现缺陷以及有效地解决缺陷。
有没有办法让问题“提前”暴露呢?
发现问题的可行方法:
分析方法:也可归类为静态测试,主要使用逻辑分析推理的方法发现缺陷和评估问题的严重性,并根据所处的阶段得到解决的方法。由于缺陷没有经过测试证实,而是通过分析的方法推导认定的,这里称其为“潜在的”缺陷,但由于理据充分,本质上这个缺陷和测试发现的缺陷是一样的。在提出了解决方法之后,对设计分析时认为有问题的场景进行模拟,如果在这种场景下没有出现此前认为会出现的问题,那么这个缺陷解决方案就被认为是可以接受的。分析方法不需要等待缺陷目标的开发完成并使用测试进行验证,这种方法对分析人员技能要求较高,他们在需求分析和设计方面的经验必须比较丰富,才能准确定位问题所在。
测试方法:设计出有针对性的场景,并在测试环境上模拟该场景。如果测试的输出和预期输出有差异,则证实问题存在。使用此方法前提是测试的场景能够在测试环境中正常工作。
无论使用分析方法还是测试方法发现的问题,都通过创建缺陷来跟踪。
Bug:一般指系统存在的问题或者需要加强的细节。
如何更早地、有效地发现问题,是测试专家的一项非常有技术含量的工作,而测试专家的另一项由技术含量的工作,就是发现问题后的问题分析。
问题分析常用的系统方法有两种
自顶向下(Top-Down): 其着眼处在于整体。使用该方法,首先应该认同的一个观点是,系统整体的问题时系统某个部分的原因引起的,而这个局部的问题放大后悔在系统的宏观级别上表现出来。
自底向上(Buttom-Up): 对分析者的能力要求较高,前提是,承认缺陷的全部或部分是由于系统局部细节的问题引起的。分析时,根据系统表面看到的蛛丝马迹,直接判断出现问题的根源,并验证这个判断是否正确。作为分析人员,首先应该对系统的这些细节及其在整体中的作用比较熟悉,其次要拥有直达问题根源的“直觉”。
在分析错综复杂的问题,如系统级别的结构问题或性能问题时,这两种方法能够有效地定位问题,而它们的本质也正是准确地重现和定位问题。只要问题得以有效重现和定位,离找到解决的办法也就不远了。
发现、定位和解决问题的方法,是测试人员的核心技能。作为测试专家,核心的能力其实还是思考能力。五花八门的测试方法和技术,得通过自己的实践、总结和思考,转化为系统的测试方法论。当一套属于你自己的测试方法论已经形成的时候,意味着你已经从专家成长为高手了。
像外行一样思考——追求一种新的方法或者角度,仅仅考虑某个问题是否可能存在或者某种方法是否能解决问题,不考虑方法是否有理论依据,也避免过多地考虑可行性。
执行测试消耗了很大一部分时间,而常规项目(不含自动化任务)的任务把可用时间的90%都占用了,也就是说,分析解决问题的时间很有限,那么测试工程师通过什么方法更有效地完成测试任务呢?
提高测试效率。对于同一个测试人员,效率的提高有两种外在的表现:一是使用相同时间完成更多的测试用例执行,二是对于同一个或同一组测试用例,耗费时间减少。即,提高技能的熟练程度,能够提高效率。
进一步提高效率考虑的方向应该是减少对测试的人工干预,让测试自动完成,即自动化测试。自动化水平的高低,在很大程度上衡量了一个测试团队的水平。
如需了解更多测试技术信息请关注:深圳多测师软件与技术服务有限公司