Skip to content

软件的生命周期

  1. 软件的规划和定义
  2. 需求分析
  3. 软件设计(概要设计、详细设计)
  4. 编程
  5. 测试
  6. 运维

软件测试的目的

  1. 从用户角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷。
  2. 从软件开发者的角度出发,希望测试成为表明软件产品中不存在错误的过程。
  3. 测试的最终目的是确保最终交给用户的产品的功能符合用户的需求,将尽可能多的问题在产品交给用户之前发现。

软件测试分类

  1. 根据开发阶段划分
    • 单元测试:对软件中的最小可测试单元进行检查和验证。
    • 集成测试:也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求组装成为子系统,进行集成测试。
    • 系统测试:对整个系统的测试,将硬件、软件、操作人员看作一个整体,检验它是否有不符合系统说明书的地方。
    • 验收测试:部署之前的最后一个测试操作,确保软件准备就绪。
    • 确认测试:部署之后的测试操作,以确保软件是可以工作的,并且符合软件需求说明书中规定的全部功能和性能要求。
  2. 根据测试技术划分
    • 黑盒测试:以用户的角度来检测每个功能是否都能正常使用,不考虑程序内部结构和内部特性。
    • 白盒测试:基于代码的测试,全面了解程序内部逻辑结构,对所有逻辑路径进行测试。
    • 灰盒测试:介于白盒测试与黑盒测试之间的一种测试,多用于集成测试阶段。不仅关注输出、输入的正确性,同时也关注程序内部的情况。
  3. 根据测试手段划分
    • 手工测试:测试人员手动的对被测对象进行验证。
    • 自动化测试:自己写测试脚本或通过第三方工具进行测试。主流的第三方工具 LambdaTest、TestComplete 等。
  4. 根据运行状态划分
    • 静态测试:不运行程序,检测语法、结构、过程、接口等。
    • 动态测试:运行程序,检测运行结果与预期结果是否一致。
  5. 根据软件特性划分
    • 功能测试:功能测试就是对产品的各功能进行验证,根据功能测试用例逐项测试,检查产品是否达到用户要求的功能。
    • 性能测试:通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
    • 安全性测试:对系统进行安全测试。
  6. 其他
    • 回归测试
    • 冒烟测试
    • 随机测试

基于 MIT 许可发布