只要身体健康、手中有零用,那么幸福就是抬手可得的!

发布新日志

  • 测试覆盖率

    2007-06-12 23:13:58

    1.什么是覆盖率?
     覆盖率=(至少被执行一次的ITEM数)/ITEM的总数
    2.常见的覆盖有哪些类型?它们各表示什么含义?
     逻辑覆盖:(1)语句覆盖率=(至少被执行一次的语句数量)/(可执行的语句总数)
          (2)判定覆盖率=(判定结果被评价的次数)/(判定结果的总数)
          (3)条件覆盖率=(条件操作数值至少被评价一次的数量)/(条件操作数值的总数)
          (4)判定条件覆盖率=(条件操作数值或判定结果至少被评价一次的数量)/(条件操作数值总数+判定结果总数)
          (5)路径覆盖率=(至少被执行到一次的路径数)/(总的路径数)
     功能覆盖 需求覆盖率=(被验证到的需求数量)/(总的需求数量)
     面向对象的覆盖率 继承上下文覆盖
              基于状态的上下文覆盖
              基于线程的上下文覆盖
    3.覆盖率对软件测试有什么作用?
     覆盖率是用来试题测试完整性的一个手段。
     通过覆盖率数据,可以知道测试得是否充分,测试的弱点在哪些方面,进而指导我们设计能够增加覆盖率的测试用例。这样就能够有效地提高测试质量,避免设计无效用例。
    4.如何正确地使用覆盖率?
     基本原则:覆盖率不是目的,只是一种手段;
          你不可能针对所有的覆盖率指标去进行测试;相反,只考虑一种覆盖率指标也是不恰当的;
          不要追求绝对100%r 覆盖率
     用5个维度来衡量:可自动化性、可获得性、可理解性、要维护性和完整性
     使用最少测试用例来达到覆盖
  • 白盒测试和黑盒测试

    2007-06-12 22:50:43

    1.什么是白盒测试?
     白盒测试是一种测试用例设计方法。在这里,盒子指的是被测试的软件,白盒,顾名思义即盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。因此,白盒测试需要对系统内部的结构和工作原理有一个清楚的了解;并且基于这个知识来设计你的用例。
    2.为什么要进行白盒测试?
     在于软件自身的缺陷:
     (1)逻辑错误和不正确假设与一条程序被运行的可能性成反比。
     (2)我们经常相信某逻辑路径不可能被执行,而事实上,它可能在正常的情况下被执行。
     (3)笔误是随机的。
     “错误潜伏在角落里,聚集在边界上”,而白盒测试更可能发现它。
    3.什么是黑盒测试?
     又叫功能测试,因为主要关注被测软件的功能实现,而不是内部逻辑。
    4.为什么要进行黑盒测试?
     如何测试功能的有效性;
     何种类型的输入会产生好的测试用例;
     系统是否对特定的输入值尤其敏感;
     如何分隔数据类的边界;
     系统能够承受何种数据率和数据量;
     特定类型的数据组合会对系统产生何种影响;

    5.白盒测试和黑盒测试有什么区别?
     白盒测试只考虑测试软件产品,它不保证完整的需求规格是否被满足;
     黑盒测试只考虑测试需求规格,它不保证实现的所有部分是否被测试到;
     黑盒测试会发现遗漏的缺陷,指出规格的哪些部分没有被完成;
     白盒测试会发现代理方面缺陷,指出哪些实现部分是错误的。
    6.常见的白盒测试技术有哪些?
     (1)静态分析技术 手工:检视与走读
               自动:静态验证、语法分析器和符号执行器;
     (2)动态分析技术 路径和分支测试
     (3)测试数据生成
     (4)覆盖率 
    7.常见的黑盒测试技术有哪些?
     (1)没有用户参与的黑盒测试
       功能性测试、容量测试、负载测试、恢复性测试、标杆测试、稳定性测试、可靠性测试
     (2)有用户介入的黑盒测试
       外场测试(类似BETA测试)和实验室测试(类似ALPHA)测试

  • 软件测试概论

    2007-06-12 20:53:25

    1.什么是软件测试?
       使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。
      

    2.软件测试是怎么发展起来的?
       随着软件产业化的发展,人们对软件的质量、成本和进度提出了较高的要求。人们逐渐发现,一个软件的成功不可能仅仅依赖于软件开发技术是否先进。相反,软件产业化要求有一个规范的软件开发过程,一个全局的质量控制体系。在这些过程中,测试已经是一个基于软件开发整个生命周期的质量控制活动。

    3.为什么要进行软件测试?
      一个好的测试程序可以极大的帮助你定义需求和设计。这有助于项目在一开始时就步入正轨,并且它对整个项目的成功有着重要的影响。
      一个好的测试可以迫使你在工作时必须去面对和处理问题,并且会使重新工作和修改缺陷的成本变得很低。
      一个好的测试不能弥补一个糟糕的软件项目,但是的确有助于发现许多问题并且至少使得你尽早知道你处在问题当中。


    4.软件测试的目的是什么?
    证明
     获取系统在可接受风险范围内可用的信心;
     尝试在非正常情况下和条件下的功能和特性;
     保证一个工作产品是完整的并且可用或者可被集成;
    检测
     发现缺陷、错误和系统不足; 
     定义系统的能力和局限性;
     提供组件、工作产品和系统的质量信息;
    预防
     澄清系统的规格和性能;
     提供预防或减少可能制造错误的信息;
     在过程中尽早检测错误;
     确认问题和风险,并且提前确认解决这些问题和风险的途径。

    5.常见的软件测试的误区有哪些?
    (1)调试和测试是一样的;
    (2)测试组应当为保证质量负责;
    (3)过分依赖BETA测试;
    (4)把测试作为新员工的一个过渡工作;
    (5)把不合格的开发人员安排做测试;
    (6)关注于测试的执行而忽略测试的设计;
    (7)测试自动化是万能的;
    (8)测试是可以穷尽的;
    (9)测试是为了证明软件的正确性;
    (10)测试是枯燥乏味,缺乏创造力的工作。

Open Toolbar