定义

  • 在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

  • 测试就是发现程序中的错误而执行的过程。

    给自己一个心理设定,就是要找出程序中的错误。(克服心理障碍)

原则

  • 测试用例中必需部分是对预期输出或结果进行定义

  • 程序员应当避免测试自己编写的程序

  • 编写软件的组织不应当测试自己编写的软件

  • 应当彻底检查每个测试的执行结果

  • 测试用例的编写不仅应当根据有效和预料到的输入情况,而且也应当根据无效和未预料到的输入情况

  • 检查程序是否“ 未做其应该做的” 仅是测试的一半,测试的另一半是检查程序是否 “ 做了其不应该做的”

  • 应避免测试用例用后即弃,除非软件本身就是一个一次性的软件

  • 计划测试工作时不应默许假定不会发现错误

  • 程序某部分存在更多错误的可能性,与该部分已发现错误的数量成正 比

分类

  • 是否运行程序

    • 动态测试

      通过运行软件来检验软件的动态行为和运行结果的正确性。
    • 静态测试

      通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性
  • 是否查看源码

    是否查看源码
    • 黑箱测试

      ```
      black-box testing,也称黑盒测试,测试应用程序的功能,测试者不需具备应用程序的代码、内部结构和编程语言的专门知识。

数据驱动

穷举路径测试
```
- 通过有限的测试用例,最大限度的发现问题。
- 可用性测试
- 灰盒测试

    ```
    多用于集成测试阶段
    ```- 白箱测试    ```
    white-box testing,又称透明盒测试,结构测试等。测试程序内部运作。以编程语言角度来设计测试案例。

逻辑驱动型
```
- 利用错误列表进行代码检查
- 小组代码走查
- 同行评审

  • 测试阶段

    • 单元测试

      ```
      对软件组成单元进行测试,其目的是检验软件基本组成单位的正确性。

测试的对象是软件设计的最小单位:函数。
```
- 集成测试

    ```
    集成测试也称综合测试、组装测试、联合测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。目的是检查软件单元之间的接口是否正常。
    ```- 系统测试    ```
    对一个完整的软件以用户的角度测试。
    ```- 确认测试    ```
    验证被测对象有测性
    ```- 安全测试
- 回归测试
    - QTP
- 验收测试    ```
    验收测试的目的是确保软件准备就绪
    ```
  • 测试进程

    • Alpha测试

      验证测试。模拟运行。由开发人员与测试的测试人员。
    • Beta测试

      公众参与的测试的阶段。确认测试,在一个真实的环境中以实际的数据来运行测试,,以确认性能,系统运行有效率,系统撤消与备份作业正常。
    • 封闭测试Closed Beta

      公开上市前的测试过程。
    • 公开测试Open Beta

      又称压力测试
    • Gamma测试

      对“存在缺陷”产品的测试,这个概念存在着一定的不确定性。
  • 压力测试与性能测试

    压力测试和性能测试常常混淆。
    • 压力测试

      ```
      压力测试要求进行超过规定性能指标的测试。

判断准则:
1、系统能够恢复。
2、压力测试过程中,不要有明显的性能下降。
```
- 性能测试

    ```
    通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
    ```
  • 其他

    •  

    • 探索性测试

      没有很多实际的测试方法、技术和工具,但是却是所有测试人员都应该掌握的一种测试思维方式。
      探索性强调测试人员的主观能动性,抛弃繁杂的测试计划和测试用例设计过程,强调在碰到问题时及时改变测试策略。 
    • 冒烟测试

      检查对象是否具有可测性
    • 敏捷测试

      ```
      利用测试记录需求和驱动开发的思想。

敏捷测试思想是面向结果的、技术性的、协作的,乐于学习的、勇于不断生产业务价值的。
```

对象

  • 程序

  • 数据

  • 文档

缺陷(bug)

  • 缺陷的跟踪流程(流程基本要素)

  • 5C原则

    • 准确

    • 清晰

    • 简洁

    • 完整

    • 一致

  • 内容

    • bug编号

    • 严重级别/优先级

    • 产生条件

    • 产生模块

    • bug摘要

    • bug对应版本

    • bug详细描述,截图,录屏

测试用例

  • 原则

    • 单个用例最小化原则

    • 测试用例替代产品文档功能原则

    • 单次投入成本和多次投入成本原则

    • 使测试结果分析和调试最简单化原则

  • 方法

    • 等价类划分

    • 边界值分析

    • 错误推测

    • 因果图

    • 判定表驱动分析

    • 正交实验设计

    • 场景设计法

    • 状态转换图

  • 内容

    • 用例编号

    • 用例描述

    • 前提条件

    • 输入数据

    • 测试步骤

    • 期望结果

工具

  • 测试管理工具

    • TestDirector

  • 功能测试工具

  • 负载压力测试工具

    • loadrunner

      Web性能测试工具
  • 测试辅助工具

  • 白盒测试工具