软件测试的基本知识

  • 格式:docx
  • 大小:40.73 KB
  • 文档页数:11

下载文档原格式

  / 11
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件测试的基本知识

2.1 软件测试贯穿于整个的软件开发生命周期

2.1.1 软件测试中使用的各种术语

①软件错误

②软件缺陷

③软件故障

④软件失效

2.1.2 软件测试贯穿于整个的软件开发生命周期

20世纪70年代中期以来,形成了软件开发生命周期的概念。

测试工作应该着眼于整个软件开发生命周期,特别是着眼于编码以前各开发阶段的工作来保证软件的质量。也就是说,测试应该从软件开发生命周期的第一个阶段开始,并贯穿于整个的软件开发生命周期。

谈到测试,首先是为什么要进行测试的问题。所有的测试都是为了发现和消除软件的缺陷。明确为什么要进行软件测试的问题之后,就需要明确测试什么的问题。

软件的开发有其自己的生命周期,在整个软件生命周期中,软件都有各自的相对于各生命周期的阶段性的输出结果,其中也包括需求分析、概要设计、详细设计及程序编码等各阶段所产生的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,而所有这些输出结果都应成为被测试的对象。

随着人们对软件工程化的重视以及软件规模的日益扩大,软件分析、设计的作用越来越突出,而且有资料表明,60%以上的软件错误并不是程序错误,而是分析和设计错误。因此,做好软件需求和设计阶段的测试工作就显得非常重要。这就是传统的测试概念的扩大化,从而提出了软件全生命周期测试的概念。

测试过程包括了软件开发生命周期的每个阶段。在需求阶段,重点要确认需求定义是否符合用户的需要;在设计和编程阶段,重点要确定设计和编程是否符合需求定义;在测试和安装阶段,重点是审查系统执行是否符合系统规格说明;在维护阶段,要重新测试系统,以确定更改的部分和没有更改的部分是否都正常

工作。

2.1.3 软件测试的手段

1.验证和确认

通常在测试中,使用验证来检查中间可交付的结果,使用确认来评估可执行代码的性能。一般来说,验证回答这样的问题:“是否建立了正确的系统?”,而确认回答的问题是:“建立的系统是否正确?”。

所谓验证,是指如何决定软件开发的每个阶段、每个步骤的产品是否正确无误,并与其前面的开发阶段和开发步骤的产品相一致。验证工作意味着在软件开发过程中开展一系列活动,旨在确保软件能够正确无误地实现软件的需求。所谓确认,是指如何决定最后的软件产品是否正确无误。

2.功能和结构测试

当测试人员测试项目小组的解决方案时,将利用验证和确认技术完成功能和结构测试。功能测试通常也被称为黑盒测试,因为测试案例中都不涉及系统的内部逻辑。

相反,结构测试通常被称为白盒测试,因为系统的内部逻辑常被用于假想的测试案例。结构测试主要使用验证技术。

如上所述,测试人员用验证技术,通过评审系统的结构和逻辑来确认系统的合理性。而确认要严格应用于物理测试,来确定是否产生了预期的结果。执行结构测试将主要使用验证技术,而执行功能测试则主要使用确认技术。

2.2 测试模型

就像软件开发有过程模型一样,测试也有测试模型。描述以上测试过程的就是测试模型。最具有代表意义的测试模型称为V模型。V模型如图2-1所示。

在开发过程中,从需求阶段到编码阶段,主要是采用验证手段进行测试,如需求评审、设计评审、代码走查以及代码审查等,从而完成对开发的中间结果的正确性的评估。编码完成并经过代码审查等测试之后,此时的测试主要在软件的可执行模式下进行,即利用确认手段进行测试,确认测试包括单元测试、集成测

图2-2 V模型中的测试

2.3 软件测试的分类

按照不同的分类方法,软件测试可分为以下几种类型。

1.按照开发阶段划分

按照开发阶段划分,软件测试可分为单元测试、集成测试、系统测试和验收测试

2.按照测试实施组织划分

按照测试实施组织划分,软件测试可分为开发方测试、用户测试(β测试)和第三方测试。

3.按照测试技术划分

按照测试技术划分,软件测试可分为白盒测试和黑盒测试,也可分为静态测试和动态测试。

2.4 软件测试的原则

软件测试的原则尚没有标准的说法,大多是经验之谈,一般有下面几条可作为测试的基本原则。

(1)所有的测试都应追溯到用户需求。

(2)应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭。(3)设计时应完成测试计划,详细的测试用例定义可在设计模型确定后开始,测试可在代码产生之前进行计划和设计。

(4)pareto原则:测试发现的错误中80%很可能起源于20%的模块中。应孤立这些疑点模块,进行重点测试。

(5)完全测试是不可能的,测试需要终止。

(6)应由独立的第三方来构造测试。

(7)充分注意测试中的群集现象。

(8)要尽量避免测试的随意性。

(9)兼顾合理的输入和不合理的输入数据。

(10)程序修改后要回归测试

(11)应长期保留测试用例,直至系统废弃。

2.5 软件测试策略

软件测试策略描述软件测试活动的总体方法和目标。为了检验开发的软件能否符合规格说明书的要求,测试活动可以采用各种不同的策略。这些策略的区别在于它们表明了不同的出发点、不同的思路以及采用不同的手段和方法。具体地说,包括要使用的测试技术和工具;测试完成标准;影响资源分配的特殊考虑等。

通常,制定软件测试策略要考虑如下的内容。

(1)要使用的测试方法。

(2)确定质量风险。

(3)测试完成和测试成功所采用的评价标准。

(4)有关资源要求或涉及进度的特殊考虑。

(5)测试类型、评估标准以及测试方法。

(6)确定资源。

在软件测试策略所包含的内容中最主要的部分有两个,一是要进行的测试过程,另外一个就是要执行的测试类型。

1.测试过程共分为以下4个过程。

①单元测试

②集成测试

③系统测试

④验收测试

2.测试类型

对于测试类型的说法多种多样,最多的能有30多种测试类型。而实际工作中很多测试是互相包含的。按照企业中实际工作需要,测试主要包含下面的类型。

①功能测试

②健壮性测试

③接口测试

④强度测试

⑤压力测试

⑥性能测试

⑦用户界面测试

⑧安全测试

⑨可靠性测试

⑩安装/反安装测试

11.文档测试