测试基础

一、软件测试发展

 
1979年,在《软件测试艺术》艺术中软件测试早期定义:“测试是为了发现错误而执行的一个过程。”后来定义发生了改变,测试不单纯是发现错误的过程,而且包含软件质量评价的内容。
1983年,在《软件测试完全指南》一书中指出:“测试是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件质量的度量”。
2002年,在《系统的软件测试》一书中对软件测试做了进一步定义:“测试是为了度量和提高被测软件的质量,对测试软件进行工程设计、实施和维护的整个生命周期过程”。
2003年,关于职业资格认证第一次在我国有了“软件评测师”的称号。
 
比尔·盖茨曾在一次演讲中说过:“在微软,一个典型的开发项目组中测试工程师要比编码工程师多得多,可以说我们花费在测试上的时间要比花费在编码上的时间多得多”。
 
软件测试的根本目的:是为了提高软件质量,降低软件项目的风险
 
软件项目风险:
内部风险是在即将销售的时候发现有重大的错误,从而延迟发布日期,失去市场机会。
外部风险是用户发现了不能容忍的错误,引起索赔、法律纠纷,以及用于客户支持的费用甚至失去客户的风险
 

二、软件测试基础

 

软件质量:

2001年,软件“产品质量”国际标准ISO 9126定义的软件质量包括“内部质量”、“外部质量”和“使用质量”,就是说,“软件满足规定或潜在用户需求的能力”要从软件在内部、外部和使用中的表现来衡量。
 

软件测试与质量保证的区别:

  • 质量保证(QA):是软件生命周期的管理以及验证软件是否满足规定的质量和用户的需求,主要着眼于软件开发活动中的过程、步骤和产物,而不是对软件进行剖析找出问题或评估。
  • 软件测试:是对过程的产物以及开发出的软件进行剖析。测试人员要“执行”软件,对过程中的产物——开发文档和源代码进行走查,运行软件,找出问题,报告质量。同时对测试中发现的问题的分析、追踪和回归测试也是软件测试中的重要工作,因此软件测试是保证软件质量的一个重要环节。
 

软件测试的目的

为了发现软件缺陷和错误,对软件质量进行度量和评估,提高软件质量。
 

软件测试原则

  • 所有的软件测试都应追溯到用户需求。
  • 应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭。
  • 完全测试是不可能的,测试需要终止。
  • 测试无法显示软件潜在的缺陷。
  • 充分注意测试中的群集现象。
  • 程序员应避免检查自己的程序。
  • 尽量避免测试的随意性。
 

软件测试对象

软件是由文档、数据以及程序组成的。
 

软件测试分类

1.按照开发阶段划分:单元测试、集成测试、系统测试、确认测试和验收测试。

  • 单元测试:针对软件设计的最小单位——程序模块进行正确性检验的测试工作。
  • 集成测试:在单元测试的基础上,将所有的程序模块进行有序的、递增的测试。
  • 冒烟测试:是对程序主要功能进行验证。又叫版本验证测试、提交测试。
  • 确认测试:是检测与证实软件是否满足软件需求说明书中规定的要求。
  • 系统测试:在真实或模拟系统运行环境下,检查完整的程序系统能否和系统(包括硬件、外设、网络和系统软件、支持平台等)正确配置、连接,并瞒足用户需求。
  • 验收测试:按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接受或拒收系统。

2.按照测试实施组织划分:开发方测试(α测试)、用户测试(β测试)、第三方测试。

  • 开发方测试(α测试):通常也叫“验证测试”。开发方通过在软件开发环境下检测和提供客观证据,证实软件的实现是否满足规定的需求。是对要提交的软件进行全面的自我检查和验证。
  • 用户测试(β测试):在用户的应用环境下,用户通过运行和使用软件,检测与核实软件实现是否符合自己预期的要求。是指用户的使用性测试,并由用户找出软件的应用过程中发现的软件缺陷与问题,并对使用质量进行评价。
  • 第三方测试:是由在技术、管理和财务上与开发方和用户方相对独立的组织进行的软件测试。一般在模拟用户真实应用环境下,进行如那件确认测试。
 

3.按照测试技术划分:白盒测试、黑盒测试、灰盒测试。又可划分为静态测试和动态测试。

  • 白盒测试:通过对程序内部结构的分析、检测来寻找问题。检查是否所有的结构及路径都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。
  • 黑盒测试:通过软件的外部表现来发现其缺陷和错误。只是检查样序是否按照需求规格说明书的规定正常实现。
  • 灰盒测试:介于白盒测试和黑盒测试之间。即关注输出对于输入的正确性,同时也关注内部表现。
  • 静态测试:是指不运行程序,通过人工对程序和文档进行分析与检查,实际上是对软件中的需求说明书、设计说明书、程序源代码等进行非运行的检查。
  • 动态测试:是指通过人工或使用工具运行程序进行检查、分析程序的执行状态和程序的外部表现。
 

posted on 2020-02-29 12:21  Archer_兽兽  阅读(130)  评论(0编辑  收藏  举报

导航