《软件测试技术》

《软件测试技术》

  • 软件测试技术
    • 软件测试的基本概念
    • 软件生存周期中测试的实施
    • 代码检查走查与评审
    • 白盒测试
      • 逻辑覆盖
        • 语句覆盖和块覆盖
        • 判定覆盖分支覆盖
        • 条件覆盖
        • 条件判定覆盖
        • 条件组合覆盖
        • 路径覆盖
        • ESTCA覆盖
        • LCSAJ
      • 路径测试
    • 系统测试
    • 软件性能测试和可靠性测试
    • 面向对象软件的测试
    • Web应用软件测试
    • 其他测试
      • 兼容性测试
      • 易用性测试
      • 极限测试
      • 文档测试

软件测试的基本概念

软件的生存周期可划分为3个阶段:
软件需求定义阶段
软件产品开发阶段
软件运行和维护阶段
用户质量要求由外部度量和内部度量表示。
外部度量:在测试和使用产品的过程中
内部度量:在设计和编码过程中
测试原则:
尽早地和不断地进行软件测试
测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成
程序员应避免检查自己的程序(区别于Debugging)
测试用例应包括合理的输入条件和不合理的输入条件
充分注意测试中的群集现象
严格执行测试的计划
应当对每一个测试结果做全面检查
妥善保存各类报告
缺陷状态
活动状态(Active或Open):问题还没有解决
已修正状态(Fixed或Resolved):认为已解决问题,或通过单元测试
非活动状态(Close或Inactive):测试人员已验证修正后的缺陷,认为缺陷不存在
软件测试的心理学:
程序测试的过程具有破坏性
程序猿应避免测试自己的程序
程序设计组织不应测试自己的程序
策略:
黑盒测试(数据驱动的测试)
白盒测试(逻辑驱动的测试)
评审方法:
静态分析规格说明
通过对软件产品进行手工和自动的检查来发现错误和不足,而不用执行软件代码。可应用于开发的所有阶段,以及所有提交的文档。
动态分析软件行为
需要执行软件本身或其原型,以此来确定它的一些属性是否有效。
形式化分析(如数学校对)

软件生存周期中测试的实施

软件生存周期:

  • 制定规划
  • 系统与软件需求分析
  • 软件设计
  • 编程与单元测试
  • 集成与系统测试
  • 运行与维护

软件测试的生存周期:

  • 指定测试计划
  • 测试设计
  • 实施测试
  • 单元测试
  • 集成测试
  • (确认测试,验证测试)
  • 系统测试

    在开发环境下对已继承的系统进行测试

  • 评估测试(验收测试)

测试是找错,调试是纠错。

黑箱测试和白箱测试都是动态测试。

代码检查、走查与评审

桌上检查:程序员自己检查自己编写的代码。程序员在程序通过编译之后,进行单元测试之前,对源程序代码进行分析,对照错误列表进行检查,对程序推演测试数据,并补充相应的文档,目的是发现程序中的错误。

代码检查:以小组为单位阅读代码,应用一些列规程和错误检查技术,检查实际的产品,包括文档和程序代码,发现存在的错误和缺陷的过程。

走查:类似代码检查,规程有所不同,采用的代码检查技术也不同。走查中,作者占有主导地位。

同行评审:通过作者的同行来确认缺陷和需要变更区域的检查方法。

白盒测试

逻辑覆盖

覆盖率的要求不同,逻辑覆盖方法分为:

  • 语句覆盖和块覆盖
  • 判定覆盖
  • 判定-条件覆盖
  • 条件组合覆盖
  • 路径覆盖

语句覆盖和块覆盖属于点覆盖,其它属于边覆盖。

语句覆盖和块覆盖

设计若干个测试用例,运行被测程序,使得每一句可执行语句至少执行一次。用例越少越好。

判定覆盖(分支覆盖)

设计若干个测试用例,运行被测程序,使得程序中每个判定的取真分支和取假分支至少被评价一次。

条件覆盖

设计若干个测试用例,运行被测程序,使得程序中每个判定的每个条件的可能取值至少评价一次。

条件/判定覆盖

每个条件的所有可能取值至少评价一次,同时每个判定语句本身的所有可能分支至少评价一次。

条件组合覆盖

设计若干个测试用例,运行被测程序,使得每个判定的所有可能的条件取值组合至少被执行一次。

路径覆盖

执行程序中所有可能的路径。

ESTCA覆盖

错误敏感测试用例分析

LCSAJ

线性代码顺序和跳转覆盖 Linear Code Sequence and Jump Coverage

路径测试

系统测试

系统测试包括:

  • 确认测试
  • alpha测试
  • beta测试
  • 验收测试

alpha测试是由一个用户在开发环境下进行的测试,也可以是产品供应商内部的用户在模拟实际操作环境下进行的测试。开发者在用户旁边记录下错误和使用中的问题,这是受控环境下的测试。

beta测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在现场,由用户记下遇到的有所有问题。

只有当alpha测试达到一定的可靠程度时,才能开始beta测试。

软件性能测试和可靠性测试

软件性能的指标:

  • 响应时间
  • 系统相应时间和应用延迟时间
  • 吞吐量:系统在单位时间内处理请求的数量
  • 并发用户数
  • 资源利用率

软件性能测试的分类:

  • 性能测试
  • 并发测试
  • 压力测试
  • 可靠性测试
  • 负载测试
  • 配置测试
  • 失效恢复测试

目前应用最广泛的性能测试工具是LoadRunner, Segue公司开发的Silk Performer也是一个常用的性能测试工具。

错误Error 缺陷Defect 故障Fault 失效Failure

面向对象软件的测试

多态:多态指对一个类的引用可以与多格类的实现绑定。

Web应用软件测试

其他测试

兼容性测试

WebLogic WebSphere

易用性测试

极限测试

文档测试

你可能感兴趣的:(《软件测试技术》)