软件测试综述.docx
- 文档编号:18643530
- 上传时间:2023-08-24
- 格式:DOCX
- 页数:11
- 大小:172.83KB
软件测试综述.docx
《软件测试综述.docx》由会员分享,可在线阅读,更多相关《软件测试综述.docx(11页珍藏版)》请在冰点文库上搜索。
软件测试综述
软件测试综述
LT
指的是系统环境设置。
编写测试用例时应注意4W,即why(为什么要编写测试用例),when(什么时候写测试用例),who(有谁来写测试用例),what(根据什么写测试用例)。
1.软件测试分类
软件测试的目标在于以最少的时间和人力系统地找出软件中潜在的各种错误和缺陷。
所以如何测试的彻底、怎样设计测试用例是测试的关键所在。
而软件测试的方法是多种多样的,这些方法各有优缺点,适用于不同的场合。
下面针对各种测试方法及其优缺点作一下简要地介绍,可以从不同的角度加以分类:
(1)根据软件测试的阶段可以划分为单元测试、集成测试、系统测试、验收测试,其中验收测试又可分为α测试和β测试。
(2)从是否需要执行被测软件的角度来看,可分为静态测试和动态测试。
(3)从测试是否针对系统的内部结构和具体实现算法的角度来看,可分为黑盒测试和白盒测试。
黑盒测试又可以分为功能测试和性能测试。
期中功能测试包括逻辑功能测试、界面测试、易用性测试、安装测试、兼容想测试;性能测试包括一般性能测试、稳定性测试、负载测试、压力测试。
(4)其他的测试还有回归测试、冒烟测试、随机测试,灰盒测试、自动化测试等。
软件测试的方法和技术是多种多样的,从不同的角度出发,软件测试可以划分为不同的分类。
2.软件测试的一些基本原则
(1)ZeroBug与GoodEnough
ZeroBug指的是软件中没有任何Bug,GoodEnough指的是只要软件大道一定的质量要求,就可以停止测试了。
对于相对复杂的产品或系统来说,没有Bug是不可能的,我们只能相仿设法把软件的Bug书控制在可以忍受的范围之内。
GoodEnough原则就是一种权衡投入/产出比的原则:
不充分的测试时不负责任的;过分的测试时一种资源的浪费,同样也是一种不负责任的表现。
(2)不要试图穷举测试
(3)开发人员不能及时运动员又是裁判员,也就是说测试应该由独立的第三方机构来完成。
(4)软件测试要尽早执行
实践证明,在大多数情况下,在需求分析阶段就会产生缺陷,而且需求分析阶段引入的缺陷是最多的,其修复成本确实最低的,所以软件测试应该尽早执行,越早执行,风险越小。
(5)软件测试应该追溯需求
测试环节包括4个部分:
正确的功能;有错误编码带来的错误,这种错误可有开发人员直接修改;有错误设计产生的错误,这种错误时不能直接修改的,必须去修改设计;最后一种是有错误说明带来的错误,这种也是潜伏的不容易发现的错误,需要我们追溯需求。
(6)缺陷的二八定理
一般情况下,80%的缺陷集中在20%的模块中。
我们测试时要抓住主要矛盾,如果发现某一程序模块比其他模块有跟多的缺陷,就要投入主要的人力和精力重点测试这20%的模块,以提高我们的测试效率。
(7)缺陷具有免疫性
程序员在修改完缺陷,把新版本提交给测试人员,测试人员根据相同的测试用例进行回归测试,就像是用同一种农药来杀害虫一样,其效果五一回大打折扣,这就要求测试人员要根据新版本的特点去修改维护测试用例。
(8)要严格执行测试计划,排除测试的随意性
3.软件测试的模型
5.1测试模型概述
正如软件开发有过程模型一样,软件测试也有测试模型。
软件测试模型是软件测试框架,它描述了软件测试过程所包含的主要活动,以及这些活动之问的相互关系等。
一种好的软件测试模型.应具有以下特征Ⅲ:
(1)它将测试计划、测试用例设计、测试执行、测试结果收集与分析结合在一起。
(2)不同的测试技术.应用于不同的时间点、需求和运行环境对应用程序进行测试。
(3)使软件设计中的错误尽可能早地暴露出来。
通过测试模型,软件测试人员及有关人员可以了解,测试从什么时候开始,在什么时候结束,测试过程包括哪些活动,需要什么资源等。
在软件测试策划时,要根据测试目的、所采用的开发过程模型和组织的条件等,选择合适的测试模型。
5.2测试模型介绍
1)模型基本介绍
目前,软件测试模型有V-模型、W-模型、前置测试模型、H模型、X模型、蝶型模型等,其中V-模型和W-模型是常用的测试模型,得到了普遍接受。
本文只介绍V-模型与W-模型。
在传统的瀑布型软件开发过程中,仅仅把测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段,对软件测试过程没有进一步的描述。
V模型针对瀑布模型对软件测试过程进行了补充。
v模型最早由已故的PaulRook在80年代后期提出,V模型被包含在英国国家计算中心文献中发布,旨在改进软件开发的效率和效果。
V模型在欧洲尤其是英国被接受,并被认为是瀑布模型的替代品,V模型最早提出测试并不是一个事后弥补行为,而是一个同开发过程同样重要的过程,这是它最大的积极意义所在。
单元测试设计
Fig.1V-模型
Fig.1
因此,V模型主要向我们传递了如下信息:
需求、功能、设计和编码的开发活动随时间而进行,而相应的测试活动,即针对需求、功能、设计和编码的测试,其开展的次序则正好相反。
换而言之,代码最后被开发,而相应的单元测试首先被执行;需求最早被开发,可相应的验收测试到最后才进行。
V模型揭示了软件测试活动分层和分阶段的本质特性。
V-模型的哟点就是详细表示了测试的各个阶段以及参考依据:
单元测试参考的是详细设计
集成测试参考的是概要设计
系统测试参考的是需求规格说明书
验收测试参考的是用户需求
V-模型的缺点是没有说明在项目的前期测试需要做哪些工作(编写测试技术啊、测试用例等),而且和瀑布模型一样,流程也是单向的,不可逆的。
V-模型容易让人形成测试是开发之后的一个阶段,测试的对象就是程序”之类的误解。
2)W-模型
软件开发过程各阶段都可能产生错误。
据国外对一些大型软件系统的统计,需求分析与设计阶段产生的错误占64%,编码错误占36%。
软件错误具有传递性,即需求分析产生的错误如果没有发现,会依次传递到设计和编码。
软件错误的发现和解决具有放大性。
据估计,在分析设计阶段产生的错误,如果在编码结束后的测试过程才被发现,其代价约为在分析设计阶段发现和解决错误的代价的10倍。
如果该错误在产品交付使用后才发现和解决,则其代价将超过100倍。
因此,测试工作越早进行,发现和解决错误的代价越小,风险越小。
根据这个观点,,SystemeEvolutif公司在V-模型的基础上,提出了W-模型,如图Fig.2所示。
Fig.2W-模型
按照W-模型,软件开发过程中各个阶段的可交付产品(中间的或者最终的产品)都要进行测试,尽可能使各阶段产生的错误在该阶段得到发现和解决。
W-模型在V-模型的基础上增加需求测试、规格测试和设计测试,目的是确保需求的完整性、一致性、准确性、可实现性和可测试性等,以及设计对需求的可追踪性、正确性、规范性和可测试性等。
测试与开发是同步进行的,软件需求规格说明、软件概要设计说明以及软件详细设计说明等是被测试的对象。
3)SpillnerW-模型
AndreasSpillner在Evolutif基本模型的基础上,增加了测试--查错--更改--再测试循环,并将启动测试活动、测试计划和准备活动在模型上明确表示出来,如图Fig.3所示。
单元测试计划和准备
Fig.3
根据该模型,在软件项目开始时,应该启动软件测试活动,该活动包括以下几个方面的内容:
(1)确定测试策略:
进行风险分析,确定关键特性和测试强度,估算测试费用等;
(2)编制测试计划;
(3)组建测试组,并对测试人员进行必要的培训;
(4)建立监控与报告机制;
(5)准备必要的硬件和软件资源。
在开发过程的各个阶段,需要进行需求评审、规格评审、概要设计评审和详细设计评审,并完成相对应的验收测试、系统测试、集成测试和单元测试的计划和准备工作。
测试计划和准备工作主要包括根据关键特性确定测试的优先级,进行测试用例设计等方面。
当单元测试、集成测试、系统测试或者验收测试中发现错误时,测试进入了测试、查错、更改、再测试循环。
在该循环中,通过测试发现错误,然后对发现的错误进行原因分析并定位,再对有关程序和文档进行更改。
一旦发生更改,将会进入再测试(递归测试),以验证错误是否得到排除以及是否引入新的错误。
W-模型使我们树立了一种新的观点,即软件测试并不等于程序测试,不应仅限于程序测试的狭小范围内,而应贯穿于软件定义与设计开发的整个过程。
因此,需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象。
4.软件测试的研究方向
方向一:
通用测试理论
长久以来测试研究的一个梦想是:
构建可靠且全面的理论来支持和丰富测试技术。
基于“通用”测试理论即一致且严格的框架,测试人员可以了解已有测试技术的相对优势和局限性,在给定条件下,选出最合适的一种或几种技术。
软件测试理论开创性工作要追溯到上世纪七十年代晚期首次提出可靠的或理想的测试套件的概念。
这些工作告诉我们:
测试永远不够精确。
通用测试理论需要关注几个关键技术,如明确测试假设,测试效率,组合测试和测试实验。
方向二:
基于测试的建模
基于模型测试是利用软件设计时定义的模型驱动测试过程,特别是自动生成测试用例。
使用符号语言如UML或Z进行建模。
从测试人员的角度出发,理想情况应是将顺序颠倒过来:
不是利用模型进行测试,而是构造模型有效地测试软件,将当前“基于模型的测试”改为“基于测试的建模”。
方向三:
100%自动测试
随着软件数量和复杂性的增加,自动化成为一种保证软件质量的方法。
大部分现有测试研究针对提高自动化程度,通过研究先进的技术来产生测试输入,或自动化测试过程。
100%自动测试是一个强大的集成测试环境,作为软件的一部分被完善和配置,可以自动地产生或恢复所需的桩代码(驱动、桩程序和模拟器)生成最合适的测试用例,执行并最终发布测试报告。
方向四:
测试效率最大化
软件测试研究的最终目标是应用测试方法、工具和过程开发高质量的软件。
测试效率最大化面临的最大障碍是现代系统不断增加的复杂性。
这种复杂性不仅影响了系统本身,也影响系统配置环境。
可测试性是比系统怎样建模更广泛的一个概念,它还涉及到实现特征,测试技术本身以及其支持环境。
方向五:
新范型和新环境下的软件测试
面向服务的体系架构(SOA,Service-OrientedArchitecture)已成为基于Web的分布式系统(如电子商务、电子政务等)的主要发展趋势。
SOA提出了一种松散耦合的、基于标准的、面向服务的体系架构,以有效解决分布式、异构环境下,应用系统的集成问题。
5.结束语
随着软件应用范围的不断扩大和人们对软件质量要求的不断提高,软件测试越来越受到重视。
软件测试是一门技术,是一个从实践到理论再由理论到实践循环往复的过程,是一门集编程方法、模型设计、统计方法、预测等多领域的实践性很强的综合学科。
不同系统、不同环境、不同对象所关心的侧重点不同,采用的测试方法自然随着具体系统而设定。
参考文献:
[1]赵斌编著《软件测试技术经典教程》科学出版社2007年5月
[2]赵秀梅现代应用软件测试方法综述晋东南师范专科学校学报[期刊论文]2004,21
(2)
[3]黄柏素.梅宏软件工程--实践者的研究方法
[4]景涛.白成刚.胡庆培.蔡开元构件软件的测试问题综述[期刊论文]-计算机工程与应用2002
[5]黄龙水.黄诚学软件测试模型介绍[期刊论文]-舰船电子工程2004(03)
[6]弓英.吴旭丰一种改进的软件测试模型[期刊论文]-科技信息2009(9)
[7]李袆.陈嶷瑛一种有效的软件测试模型[期刊论文]-计算机工程与应用2004
[8]张靖贲可荣罗云锋软件测试研究综述计算机与数字工程2008,36(10)
[9]颜炯.王戟.陈火旺基于模型的软件测试综述[期刊论文]-计算机科学2004(02)
[10]冷先刚软件测试模型与方法研究学位论文
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 综述