• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

软件测试技术基础概论

发布: 2008-6-03 11:55 | 作者: 网络转载 | 来源: 软件测试时代论坛 | 查看: 2779次 | 进入软件测试论坛讨论

领测软件测试网

3.MILY: 黑体">错误类型

各种不同的测试方法检测不同错误类型的能力也是不同的。错误的分类方法目前有许多种,前边已经给出了比较详细的分类方法,为分析方便,下列分类是其中的一种简单的分类方法。

1)初始化错误:初始化代码中的错误;

2)控制错误:控制转移的条件或转移地址错误;

3)数据错误:包括程序中的常数、数据库中的数据错误等;

4)计算错误:计算代码错误

5)集成错误:各模块之间、软件与环境之间的错误

6)容貌错误:人机界面、打印格式等错误。

1.10中是根据是BasiliSelby的实验数据整理的。

4.测试充分度

测试充分度是反映了在给定的测试方法下软件被测试的程度。设M是给定的测试方法,在M下,软件S应被测试的元素的集合是T,而实际上被测试元素的集合为U,则U/T即是测试充分度。FranklWeiss发现,只有当测试的充分度接近100%时,才能使测试发现错误的能力得到发挥。如图1.11所示。

111  软件测试工具

软件测试工具是提高软件测试效率的重要手段,是软件理论和技术发展的重要标志。也是软件测试技术从实验室走向产业的重要标志。软件测试工具是伴随软件测试技术的发展而发展的。目前,应用比较广泛的软件测试工具有下列几种类型:

1)测试设计工具:测试设计工具有助于准备测试输入或测试数据。测试设计工具包括逻辑设计工具和物理设计工具。逻辑设计工具涉及到说明、接口或代码逻辑,有时也叫做测试用例生成器。物理设计工具操作已有的数据或产生测试数据。如可以随机从数据库中抽取记录的工具就是物理设计工具。从说明中获取测试数据的工具就是逻辑设计工具。

2测试管理工具:测试管理工具是指帮助完成测试计划,跟踪测试运行结果等的工具。这类工具还包括有助于需求、设计、编码测试及缺陷跟踪的工具。其代表工具有MI公司的Test Director Rational公司的Test Manager Compureware公司的TrackRecord等。

3)静态分析工具:静态分析工具直接对代码进行分析,不需要运行代码,也不需要对代码编译链接,生成可执行文件。静态分析工具一般是对代码进行语法扫描,找出不符合编码规范的地方,根据某种质量模型评价代码的质量,生成系统的调用关系图等。静态分析工具的代表有Telelogic公司的Logiscope软件,PR公司的PRQA软件,Reasoning公司的Illuma软件。

4)动态分析工具:动态分析工具与静态分析工具不同,动态测试工具的一般采用“插桩”的方式,向代码生成的可执行文件中插入一些监测代码,用来统计程序运行时的数据。其与静态分析工具最大的不同就是动态分析工具要求被测系统实际运行。其代表有Compuware公司的DevPartner软件、Rational公司的Purify系列产品。

5)覆盖测试工具:覆盖工具评估通过一系列的测试,测试软件被测试执行的程度。覆盖工具大量的用于单元测试中。例如,对于安全性要求高或与安全有关的系统,则要求的覆盖程度也较高。覆盖工具还可以度量设计层次结构,如调用树结构的覆盖率。如Telelogic公司的TestChecker测试软件。

6)负载和性能测试工具:性能测试工具检测每个事件所需要的时间。例如,性能测试工具可以测定典型或负载条件下的响应时间。负载测试可以产生系统流量。例如产生许多代表典型情况或最大情况下的事物。这种类型的测试工具用于容量和压力测试。专用于性能测试的工具有Radview公司的WebLoad、,icrosoft公司的WebStressMI公司的LoadRunner等工具。

7GUI测试驱动和捕获/回放工具:这类测试工具可使测试自动执行,然后将测试输出结果与期望输出进行比较。此类测试工具可在任何层次中执行测试:单元测试、集成测试系统测试验收测试。捕获回放工具是目前使用的测试工具中最流行的一种。其代表有Rational公司的TeamTestRobotCompuware公司的QACenterMI公司的WinRunner等。

    8)基于故障的测试工具:首先给出软件的故障模型,在此故障模型下,给出基于该故障模型的软件测试工具。这是目前一种有很好发展前景的软件测试工具。随着人们对软件故障认识的不断深入,软件的故障模型也会越来越完备,并更加符合实际。基于故障的软件测试工具有三个需要研究的问题:一是故障模型的准确程度,二是测试的准确程度,三是测试的自动化程度。目前比较典型的是Rational公司的C++测试产品CInspector

112  软件测试技术的发展现状

软件测试技术是和程序联系在一起的,自从有了程序,也就有了软件测试。只不过是早期人们没有认识到这个问题罢了。

早在二十世纪五十年代,英国著名的计算机科学家图灵就曾给出了程序测试的原始定义:测试是正确性确认的实验方法的一种极端形式。但在这个时期,程序一般是比较简单的,控制类程序和计算类程序是主要的,程序的规模一般在几百~几千行源代码。程序设计者、编程人员和程序测试者一般都是一个人,测试者可以简单的根据程序的功能对程序进行测试,并简单的根据结果的正确性来决定程序是否有错误。由于程序规模小,一般程序的正确性也不存在大的什么问题。

五十年代以后,随着高级语言的诞生和广泛应用,软件的规模急剧增大,就计算机科学本身来说,操作系统软件、编译软件等一般都在数万行源代码,而且由于这种软件一般都是计算机系统运行的核心,其正确性和可靠性的要求都比较高,传统程序设计的思想和软件不可靠性的矛盾日趋突出。于七十年代诞生的软件工程技术是软件发展的里程碑,它在某种程度上缓解了这个矛盾,但没有从根本上解决问题。

七十年代中期以后,是软件测试技术发展的最活跃的时期。Brooks总结了开发IBM OS/360操作系统中的经验,在著名的《神秘的人—月》一书中阐明了软件测试在研制大系统中的重要意义。1975年,美国黄荣昌教授在论文中讨论了测试准则、测试过程、路径谓词、测试数据及其生成问题,首次全面系统地论述了软件测试的有关问题。Hetzel1975年整理出版了《Program Test Methods》一书,书中纵览了测试方法及各种自动测试工具,这是专题论述软件测试的第一本著作。GoodenoughGerhart首次提出了软件测试的理论,从而把软件测试这一实践性很强的学科提高到理论的高度,被认为是测试技术发展过程中具有开创性的工作。此后不久,著名测试专家Howden指出了上述理论的缺陷,并进行了新的开创性工作。以后,WeyukerOstrandGellerGerhart等进一步总结原有的测试理论并进一步加以完善,使软件测试成为有理论指导的实践性学科。

在软件测试理论迅速发展的同时,各种软件测试方法也应运而生。黄荣昌提出了程序插装测试技术;Howden在路径分析的基础上,提出了系统功能测试和代数测试的概念;HowdenClarkeDarringer等人提出了符号测试方法,并建立了DISSET符号测试系统;Demillo提出了程序变异测试方法;OsterweilFosdick提出了数据流测试方法;WhiteCohen提出了域测试方法;RichardsonClarke提出了划分测试方法。总之,七十年代至八十年代,是软件测试技术迅速发展的时期,数十种软件测试方法被提出,软件测试技术已迅速发展成为一个独立的学科。

但总体来看,七十年代至八十年代,软件测试技术的研究主要是在理论上。实用的软件测试系统并不多见,少数的测试系统由于测试效率不高,也难以进入市场。

进入二十世纪九十年代,随着计算机技术的日趋普及,软件的应用范围逐步扩大,一些关系到国际民生的行业、关系到国家安全的重要部门已变得越来越依赖软件。软件的规模在大幅度的扩大,软件的复杂性在大幅度的提高,由于软件测试技术的发展远远落后于软件技术的发展,软件不可靠性的矛盾变得更加突出。因此,进入九十年代,软件的质量与可靠性已引起了政府和社会的广泛重视,各种实用的软件测试系统不断涌现,软件测试产品也逐步的进入市场,专门从事软件测试的公司也相继出现,这为保证软件的质量与可靠性奠定了重要基础。进入2000年以来,我国软件测试技术发展极为迅速,全国目前大约有100余家软件评测中心,软件测试的从业人员有数千人,2003年软件测试的产值达到了数亿人民币。

在软件测试技术的学术领域,1982年,在美国北卡罗来纳大学召开了首届软件测试的正式学术会议,之后,该学术会议每两年召开一次,此外,国际上还有软件可靠性会议,从会议的规模和论文的数量与质量上看,从事软件测试技术的人员在大幅度的增加。我国目前虽然没有专门的软件测试的学术组织,但目前在容错计算专业委员会的学术会议上、全国测试学术会议上都能受到大量的软件测试技术的学术论文。20048月,在青海省西宁市召开了全国首届软件测试技术研讨会,2007年,将在昆明召开第二届全国软件测试技术研讨会。

可以预测,在未来的时间里,软件测试技术与行业将会得到更快的发展,主要可能的表现包括:软件测试理论更加完善,测试效率更加提高;更实用的软件测试系统将会大量出现;更多的专门从事软件测试与可靠性评估的公司将会诞生。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

77/7<1234567

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网