软件测试基本方法(一)之软件测试

为什么要进行软件测试:

  • 产品质量的保证
  • 控制成本的关键
  • 软件可靠性确认
  • 让企业具备国际竞争力

软件测试定义:

软件测试是由“验证(verification)”和“有效性确认(validation)”活动构成的整体。
  • 验证:检验软件是否已正确地实现了产品规格书所定义的系统功能和特性。
  • 有效性确认:确认所开发的软件是否满足用户真正需求的活动。

软件测试和软件开发的关系:

软件缺陷:

  • 定义:是指计算机程序中存在的任何一种破坏正常运行能力的错误,或者隐藏的功能缺陷,其结果会导致软件产品在某种程度上不能满足用户的需要。

  • 修复软件缺陷的代价:

修复缺陷的代价不是随着时间线性增加,而是近乎指数。

软件测试分类:
  • 按测试对象或阶段:需求审查、设计审查、单元测试、集成测试、系统测试、验收测试
  • 按测试方法:白盒、黑盒
  • 按目标:可靠性测试、兼容性测试、安全性测试、性能测试、回归测试(保证软件中新的变化不会对原有功能的正常使用有影响而进行的测试)压力测试(用来检查系统在不同负载特别是高负载条件下的运行情况,以发现系统性能瓶颈、不稳定等问题)
  • 按软件是否在测试时被执行:静态测试(对源码进行研读,不需要编译运行,查找错误和收集度量数据,包括对规格说明书的评审)、动态测试(通过运行程序和测试用例,根据系统行为和输入输出关系来发现错误)
软件测试的工作范畴:
  • 软件测试工作的组织与管理:制定测试策略、测试计划,确认所采用的测试方法与范围,控制测试进度,管理测试资源
  • 测试工作的实施:编制符合标准的测试文档,搭建测试环境,开发测试脚本与开发协作实现各阶段的测试活动