• 软件测试之发现问题的方法


      软件测试的一个原则是尽早地发现问题。作为测试专家,应该考虑的问题也是如何更早地发现缺陷以及有效地解决缺陷。

      有没有办法让问题“提前”暴露呢?

      发现问题的可行方法:

      分析方法:也可归类为静态测试,主要使用逻辑分析推理的方法发现缺陷和评估问题的严重性,并根据所处的阶段得到解决的方法。由于缺陷没有经过测试证实,而是通过分析的方法推导认定的,这里称其为“潜在的”缺陷,但由于理据充分,本质上这个缺陷和测试发现的缺陷是一样的。在提出了解决方法之后,对设计分析时认为有问题的场景进行模拟,如果在这种场景下没有出现此前认为会出现的问题,那么这个缺陷解决方案就被认为是可以接受的。分析方法不需要等待缺陷目标的开发完成并使用测试进行验证,这种方法对分析人员技能要求较高,他们在需求分析和设计方面的经验必须比较丰富,才能准确定位问题所在。

      测试方法:设计出有针对性的场景,并在测试环境上模拟该场景。如果测试的输出和预期输出有差异,则证实问题存在。使用此方法前提是测试的场景能够在测试环境中正常工作。

      无论使用分析方法还是测试方法发现的问题,都通过创建缺陷来跟踪。

      Bug:一般指系统存在的问题或者需要加强的细节。

      如何更早地、有效地发现问题,是测试专家的一项非常有技术含量的工作,而测试专家的另一项由技术含量的工作,就是发现问题后的问题分析。

      

      问题分析常用的系统方法有两种

      自顶向下(Top-Down): 其着眼处在于整体。使用该方法,首先应该认同的一个观点是,系统整体的问题时系统某个部分的原因引起的,而这个局部的问题放大后悔在系统的宏观级别上表现出来。

      自底向上(Buttom-Up): 对分析者的能力要求较高,前提是,承认缺陷的全部或部分是由于系统局部细节的问题引起的。分析时,根据系统表面看到的蛛丝马迹,直接判断出现问题的根源,并验证这个判断是否正确。作为分析人员,首先应该对系统的这些细节及其在整体中的作用比较熟悉,其次要拥有直达问题根源的“直觉”。

      在分析错综复杂的问题,如系统级别的结构问题或性能问题时,这两种方法能够有效地定位问题,而它们的本质也正是准确地重现和定位问题。只要问题得以有效重现和定位,离找到解决的办法也就不远了。

      发现、定位和解决问题的方法,是测试人员的核心技能。作为测试专家,核心的能力其实还是思考能力。五花八门的测试方法和技术,得通过自己的实践、总结和思考,转化为系统的测试方法论。当一套属于你自己的测试方法论已经形成的时候,意味着你已经从专家成长为高手了。

      像外行一样思考——追求一种新的方法或者角度,仅仅考虑某个问题是否可能存在或者某种方法是否能解决问题,不考虑方法是否有理论依据,也避免过多地考虑可行性。

      执行测试消耗了很大一部分时间,而常规项目(不含自动化任务)的任务把可用时间的90%都占用了,也就是说,分析解决问题的时间很有限,那么测试工程师通过什么方法更有效地完成测试任务呢?

      提高测试效率。对于同一个测试人员,效率的提高有两种外在的表现:一是使用相同时间完成更多的测试用例执行,二是对于同一个或同一组测试用例,耗费时间减少。即,提高技能的熟练程度,能够提高效率。

      进一步提高效率考虑的方向应该是减少对测试的人工干预,让测试自动完成,即自动化测试。自动化水平的高低,在很大程度上衡量了一个测试团队的水平。

      如需了解更多测试技术信息请关注:深圳多测师软件与技术服务有限公司

     

  • 相关阅读:
    机器人仿真-SolidWorks学习笔记(0)-前期准备
    Linux下IPv6地址的配置
    动静态库生成&&使用
    analog IC layout-Parasitic effects
    NumPy简单学习(需要结合书本)
    阿里云99元服务器2核2G3M带宽_4年396元_新老用户同享
    @Import注解的作用以及如何使用
    【Linux驱动开发知识点】
    WebServer(Nginx、Httpd、IIS)搭建Http文件服务
    easy-monitor3.0 nodejs性能监控和分析工具
  • 原文地址:https://blog.csdn.net/duoceshi/article/details/126519162