软件测试概论

Posted privilege

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试概论相关的知识,希望对你有一定的参考价值。

软件测试的基本概念

测试的含义为“以检验产品是否满足需求为目标”,而软件测试活动包括了很重要的任务即发现错误。“软件测试”的经典定义是在规定条件下对程序进行操作,以发现错误,对软件质量进行评估。

软件测试应该是对软件形成过程的文档、数据以及程序进行测试,而不仅仅是对程序进行测试。

 

软件测试的目的

测试目的的演进

证明:

1、获取系统在可接受风险范围内可用的信心;

2、尝试在非正常情况和条件下的功能和特性;

3、保证一个工作产品是完整的并且可用或者可被集成。

检测:

1、发现缺陷、错误和系统不足;

2、定义系统的能力和局限性;

3、提供组件、工作产品和系统的质量信息。

预防:

1、澄清系统的规格和性能;

2、提供预防或减少可能制造错误的信息;

3、在过程中尽早检测错误;

4、确认问题和风险,并且提前确认解决这些问题和风险的途径。

Grenford J.Myers就软件测试的目的提出了以下观点:

测试时程序员执行过程,目的在于发现错误;

一个好的测试用例在于能发现至今未发现的错误;

一个成功的测试是发现了至今未发现的错误的测试;

Bill Hetzel提出了测试的目的不仅仅是为了发现软件缺陷与错误,而且也是对软件质量进行度量和评估,以提高软件的质量。

 

软件测试的对象

软件测试应该贯穿于整个软件生命周期中。在整个软件生命周期中,各阶段有不同的测试对象,形成了不同开发阶段的不同类型的测试。

需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明(SRS)、概要设计说明(HLD)、详细设计说明(LLD)以及源程序,都应该称为“软件测试”的对象。

SRS:Software Requirement Specification

HLD:High Level Design

LLD:Low Level Design

验证(Verification)是保证软件正确实现特定功能的一系统活动和过程,目的是保证软件生命周期中的每一个阶段的成果物满足上一个阶段所设定的目的。

确认(Validation)是保证软件满足用户需求的一系统的活动和过程,目的是在软件开发完成后保证软件与用户需求相符合。

验证与确认都属于软件测试,它包括对软件分析、设计以及程序的验证和确认。

 

软件生命周期

包括以下几个阶段:计划(Planing),需求分析(Requirement Analysis),设计(Design),程序编码(Coding),测试(Testing),运行和维护(Run and Maintenance)。

 

软件研发组织和流程

项目组一般由项目经理领导并负责制定项目计划,分配任务。项目组一般由下列人员参与:

分析人员、设计人员、开发人员、测试人员、配置管理人员、SQA。

 

瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。

螺旋模型(Spiral Model)采用一种周期性的方法来进行系统开发。这会导致开发出众多的中间版本。使用它,项目经理在早期就能够为客户实证某些概念。该模型是快速原型法,以进化的开发方式为中心,在每个项目阶段使用瀑布模型法。这种模型的每一个周期都包括需求定义、风险分析、工程实现和评审4个阶段,由这4个阶段进行迭代。软件开发过程每迭代一次,软件开发又前进一个层次。

V模型

RAD(Rap Application Development,快速应用开发)模型是软件开发过程中的一个重要模型,由于其模型构图形似字母V,所以又称软件测试的V模型。它通过开发和测试同时进行的方式来缩短开发周期,提高开发效率。

需求分析-规格说明书-概要设计-程序设计----编码----单元测试-集成测试-系统测试-验收测试

W模型

V模型的局限性在于没有明确的早期的测试,不能体现“尽早地和不断地进行软件测试”的原则,在V模型中增加软件各开发阶段应同步进行的测试,被演化为一种W模型,因为实际上开发是“V”,测试也是与此相并行的“V”。

验收测试设计-确认与系统测试设计-集成测试设计-单元测试设计---单元测试---集成测试-确认测试与系统测试-验收测试

 

以上是关于软件测试概论的主要内容,如果未能解决你的问题,请参考以下文章

软件测试概论

软件测试概论01

软件工程概论学习心得

软件概论课堂测试

软件测试概论_1

软件工程概论习题