测试技术是测量产品质量的一项重要技术。这是小编为大家整理的测试技术论文参考文献,仅供参考!
测试技术论文参考文献篇一
浅析软件测试技术现状
摘 要:软件测试被定义为是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件质量的度量。随着测试工具盛行,Rick和Stefan在《系统的软件测试》一书中对软件测试做了进一步诠释:测试是为了度量和提高被测软件的质量,对测试软件进行工程设计、实施和维护的整个生命周期过程。本文就软件测试的概念、必要性、测试方法和工具等方面作一简单阐述。
关键词:软件测试;软件测试技术;自动化测试;测试工具
中图分类号:TP311.5 文献标识码:A
The Status Quo of Software Testing Technology
LI Jing, GUO Xiao-lei
(Software Vocational and Technical College,Kaifeng University,Henan Kaifeng 475004)
Key words: software testing; software testing techniques;automated testin; testing tools
1 软件测试概述与必要性
软件是由人来完成的,所有由人做的工作都不会是完美无缺的。问题在于应该如何去避免错误的产生和消除已经产生的错误,使程序中的错误密度达到尽可能低的程度。
随着软件规模的增大,软件的复杂程度也越来越大,与其他系统的接口不断增多应用越来越广泛,集成度越来越高,这使得没有现代软件开发经验的人很难理解它。为了尽可能地减少错误,软件测试这一环节必须得到重视。
中国软件外包市场巨大,国内软件外包服务多属于为客户提供技术和质量服务的中间环节。以占中国软件外包总量近85%的对日软件外包来说,业务内容基本都针对测试环节。这就要求我们加强对软件测试的重视。
质量不佳的软件产品不仅会使开发商的维护费用和用户的使用成本大幅增加,还可能产生其他的责任风险,在一些关键应用,如民航订票系统、银行结算系统、证券交易系统等中使用质量有问题的软件,还可能造成灾难性的后果。这使得软件测试环节显得尤为重要。
2 软件测试技术分析
2.1软件测试的概念
软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一组测试数据,并利用这些测试数据运行程序,以发现程序错误的过程。根据测试数据设计方法,软件测试可分为结构测试和功能测试。在结构测试过程中,测试者对程序的语句、分支和逻辑路径进行各种覆盖测试,可以在不同点检查程序的状态,以确定实际状态与预期状态是否一致。软件测试的目的是发现错误,而不是确认其正确性,而对已进行的测试过程的程度进行评估。
2.2软件测试的目的
软件测试的目的是为了保证软件产品的最终质量,在软件开发的过程中,对软件产品进行质量控制。一般来说软件测试应由独立的产品评测中心负责,严格按照软件测试流程,制定测试计划、测试方案、测试规范,实施测试,对测试记录进行分析,并根据回归测试情况撰写测试报告。测试是为了证明程序有错,而不能保证程序没有错误。
2.3软件测试的方法和过程
软件测试的种类可以分为人工测试和基于计算机的测试。而基于计算机的测试又可以分为白盒测试和黑盒测试。原则上讲,软件测试分为静态测试和动态测试两类。静态测试包括代码审查和静态分析,动态测试包括白盒测试和黑盒测试。[2]
测试虽然是软件生存周期的一个独立阶段,但测试工作却渗透到从分析、设计直到编程的各个阶段中,如测试计划的编写从分析和设计阶段就开始了,而具体的测试工作随编程工作的不断深入也在进行中。在实际工作中,测试环节可分为明显的、同等重要的三个阶段:即单元测试、集成测试(又称构件测试)和系统测试。
2.3.1单元测试
软件单元定义了一个软件很底层的块,用PB开发的客户机/服务器的软件系统中,一个窗口、函数、菜单、报表或一个存储过程都可以作为一个单元进行测试。单元测试是测试的第一步。由开发者自己进行测试最合适,一般采用白盒测试。
2.3.2集成测试
在将所有的单元经过测试以后,接着进行集成测试。集成测试也称综合测试,即将已分别通过测试的单元按要求组合起来再进行的测试,以检查这些单元之间的接口是否存在问题。要求参与的人熟悉单元的内部细节,又要求他们能够从足够高的层次上观察整个系统。集成测试阶段是以黑盒法为主,在自底向上集成的早期,白盒法测试占一定的比例,随着集成测试的不断深入,这种比例在测试过程中将越来越少,渐渐地,黑盒法测试占据主导地位。
2.3.3系统测试
系统测试是整个测试阶段的最后一步,所有的开发和测试在这一点上集中表现为生成一个具有一定功能的软件系统。该阶段主要对系统的准确性及完整性等方面进行测试。主要进行:功能确认测试、运行测试、强度测试、恢复测试、安全性测试等。系统测试的测试人员由测试组成员(或质量保证人员)或测试组成员与用户共同测试。在整个系统开发完成,即将交付用户使用前进行。在这一阶段,完全采用黑盒法对整个系统进行测试。
3 软件测试方法与软件测试工具
3.1软件测试方法
软件测试方法是软件测试技术的一个重要的组成部分,引入自动化测试可以提高软件质量,节省经费,缩短软件产品的发布周期。软件测试自动化就是通过测试工具或其他手段,按照测试工程师的预定计划对软件产品进行自动的测试,它是软件测试的一个重要组成部分,能够完成许多手工无法完成或者难以实现的一些测试工作。[3]
3.2软件测试工具
自动化测试工具可以减少测试工作量,提高测试工作效率。在实际应用中,首先是能够选择一个合适的且满足企业信息系统工程坏境的自动化测试工具,因为不同的测试工具,其面向的测试对象是不一样的。按照测试工具的主要用途和应用领域将测试软件做了一个整理归纳,将自动化测试工具分为以下几类:
3.2.1捕获错误用途
用于捕获软件错误或程序调试。常用的软件:一个是开发人员自行编写的测试工具;另一个是利用所使用的开发工具的调试功能或工具;最后就是购买专业的调试软件。如:Compuware NuMega推出的一系列的调试软件。
3.2.2一般用途
一般用途的测试工具在进行测试时,可以适用大部分的软件。如Sysinternals网站提供的一些免费软件。
3.2.3GUI自动化用途
这类软件除了提供在窗口界面中使用外,也有不少是针对浏览器窗口开发的自动化测试工具。主要代表:Rational公司的Robot、Compuware的QARun等。
3.2.4专项用途
以专项用途为主的测试工具,就是某种专项测试的软件。专用代码测试工具:BoundsChecke、CodeReview、JCheck;白盒测试工具:Logiscope和PRQA、DevPartner、Rational Purify系列等;网络测试工具:Network Associates提供的Network Sniffer。
3.2.5软件产品功能、性能测试用途
IBM Rational系列包括多款测试产品,如功能测试工具IBM Rational Manual Tester、IBM Rational Functional Tester和IBM Rational Robot。如性能测试工具:手动测试工具IBM Rational Performance Tester和IBM Rational Robot。(Robot包括功能测试和性能测试)
3.2.6测试管理工具
一般而言,测试管理工具对测试需求、测试计划、测试用例、测试实施进行管理,并且测 试管理工具还包括对缺陷的跟踪管理。测试管理工具能让测试人员、开发人员或其他的IT人员 通过一个中央数据仓库,在不同地方就能交互信息。主要代表:TestDirector MI的测试管理工具、TrackRecord、Bugzilla、QC(quick center)。
3.2.7测试辅助工具
这些工具本身并不执行测试,例如它们可以生成测试数据,为测试提供数据准备。常用工具:SmartDraw、SDemo。
4 结束语
软件测试是软件工程的一个范畴。软件测试是有计划、有目的的工程性的活动。软件测试是使用人工或者自动化的手段来运行或测试某个系统的过程其目的在于检验是否满足某种预期的结果。软件测试目的是发现错误。一个好的测试用例是发现未发现的错误。一个经过测试的软件不能就说是完全正确的。软件测试是保证软件质量的一个重要手段。因此,软件测试应该贯穿与软件工程的始终。
参考文献:
[1]王水.软件工程[M].郑州:河南科学技术出版社,2008.
[2]赵瑞莲.软件测试[M].北京:高等教育出版社,2004.
[3]佟伟光.软件测试技术[M].北京:人民邮电出版社,2005.
测试技术论文参考文献篇二
软件测试技术进展研究
【摘 要】软件测试技术是软件开发与运用过程中必不可少的手段,其重要性不可替代。论文从软件测试的发展历程、分析模型和测试技术等方面着手,分析其中的技术原理和作用机制,为软件测试研究提供参考性建议。
【关键词】软件测试 历程 模型 黑盒 白盒
一、引言
信息技术的发展对各行各业都带来了巨大的影响,推动了产业的进步,软件作为其中重要的构成部分,起着至关重要的作用,软件的创新与更新速度逐步加快,无论是类型还是规模都是空前的,因而要保证软件的实用性与稳定性等指标,软件测试技术能够有效减少软件故障,弥补缺陷,使软件不断得到完善。软件的安全与可靠性被当作软件的命脉,其质量受到广泛的重视,随着软件测试技术的成熟,自动化与半自动化的测试对于软件测试方法、故障模型等内容形成了系统性的研究应用,推动软件产业取得了长足的进步,软件测试已经成为了一门系统化的产业链,对软件技术的贡献有目共睹,而该行业的从业人员逐渐增加,研究得到进一步拓展。笔者结合近年的工作经验,将从软件的发展背景、故障模型和测试技术等方面进行探讨。
二、软件测试技术的介绍
(一)软件测试的发展
信息化进程推动了软件技术的快速发展,但同样软件系统中的设计缺陷也会造成许多故障,并且可能性比较高,远远超过了硬件技术所引发的故障,鉴于软件技术开发当中其质量要求,研究人员提出了软件测试技术,来减少软件运行中的故障缺陷,提高软件的稳定性与可靠性。早期的软件测试技术的内容仅仅是局限在程序调试方面,但到了上世纪70年代,软件测试被引入了软件设计的生命周期中来,成为软件技术当中不可或缺的一部分,影响软件的实际应用。并随着测试技术逐渐成熟,软件测试已成为一门系统性的学科,形成了注入面向对象测试、模型过程测试、面向目标测试等多种分支,并且新的方法一直在探索当中,学科内的知识更新也非常迅速,推动者软件测试技术的向前发展。
(二)软件缺陷的危害
软件设计当中细小的失误都有可能造成灾难性的危害,由于软件技术已经融入了几乎所有的行业,特别是对社会影响重大的领域中,如医疗、军事、航空等关键领域中,软件的故障很容易导致操作失败,如医疗当中仪器的误操作对患者的生命健康产生危害,航天探测器语言成语的错漏导致发射失败、导弹试射错误程序导致飞行轨迹发生偏离等情况在以往都出现过,而且造成的损失是非常巨大的。而这些失误往往只是源于微小的细节方面的缺陷,因而,提前对软件进行测试,在运行当中今早发现错误,并针对性的修改,甚至有时必须推倒重来,对于保证软件运行的安全可靠都是十分有必要的,也符合软件发展的实际需要,更好的服务于人类的社会生活,推进社会的良好发展。
三、软件故障
(一)软件故障的分类
软件故障的是不以人的意志为转移的,但通过对其存在形式进行分类,提出针对性的测试改良方法能起到立竿见影的效果。软件的分类有多种形式,如故障的性质分类、软件开发过程错误、故障形成的原因等。软件开发的过程错误主要包含需求分析错误、设计错误、编码错误和测试错误等内容;故障性质主要包含功能性的分析和开发错误、数据错误、结构错误、系统结构错误、程序编译错误等内容;故障原因主要包含程序语法、语义错误、文档错误、函数错误和测试错误等内容。此外,还有根据软件规模与质量的重要性,以经济效益为评估方式的错误程度的分类方式,即将错误造成的损失分为具体的等级。软件错误的分类具体要看实际应用的需要,侧重其中心需求,对测试过程中的软件完善有很强的指导性作用。
(二)软件的故障模型
软件的故障模型是软件测试的基本形式,在模型当中,其与实际应用中的故障有很大的相似度,可以对故障很好的模拟作用。虽然由于故障的复杂与多样性,难以取得一种统一的故障模型,但实际应用中的针对性的故障模型有多种,并且取得了良好的效果。目前的故障模型主要有单故障模型、系统崩溃的故障模型、覆盖测试故障模型等几种,其中覆盖故障模型的应用非常广泛,包括分支覆盖、路径覆盖、语句覆盖、应用覆盖等形式,由于其复杂程度低、可操作性强,成为了基本的软件测试方法。除此之外,故障模型的相互结合的测试方式能够弥补各种测试的不足,其相互之间的融合与改进也是一种新的探索方向。
四、软件测试技术
(一)白盒测试技术
白盒测试技术主要包含以下内容:
1.程序路径分析
一个程序中的路径数量的规模非常庞大,依靠路径覆盖来达到完全性测量,但实际操作性的可能非常渺茫,而且实践表明其效果也不理想。
2.分域测试
分域测试是将程序中的空间进行划分,将整体分成若干个测试单位,其中要注意在单位划分时保证边界不会出错误。或尽量减少错误的发生,重要的措施往往通过测试点的选取。
3.程序插装和覆盖测试
软件程序中有许多内容可以划分,如分支、路径、语句和数据等形式的划分,白盒测试可以针对这些内容进行覆盖。软件中的编程主要有代码和数据的集成,软件成型之后,会有相应的功能。操作者输入指令或数据时,软件会有对应的相应,而输入的数据所涵盖的范围可以称作输入域,通过程序插装,当输入大量的信息之后,对响应进行收集,信息收集的过程即是对软件测试运行的监控。
4.结构测试数据生成
软件的结构测试包含多方面的内容,主要有面向路径、面向目标和随即测试几种方法,在测试当中利用生成的数据,进行分析,发现软件运行中可能出现的缺陷和不足。
(二)黑盒测试技术
软件形成之后,根据其内部的定义会有映射关系,即包含了输入与输出之间的函数关系,但如果要分析软件内部具体的结构,既耗费时间,也有操作的困难,对分析人员的专业水平要求很高,而黑盒测试技术针对这一情况,在测试中避免了对内部结构的详细分析,而是直接反映输入与输出之间的关系来评估软件的可靠性与稳定性,并可以验证数据的正确性,黑盒测试技术主要包含以下几方面的内容: 1.组合测试
组合测试的实际应用非常广泛,其优点是利用很少的测试用例但能够取得良好的效果,极大的减少了测试耗费的时间与精力,准确性也能得到保证。所谓组合测试,即是利用两两联合的覆盖表的生成算法,实现对数据参数的缺陷发掘,其理论是以软件故障的实际分布为根据的,据统计,软件故障中由两个参数引起的占总数的绝大部分,达到了70%左右,单个参数和三个或三个参数以上引起的故障都明显低于前者,因此,组合测试技术有非常现实的实用价值。
2.形式规格说明的测试
软件测试当中,要保证识别的精确性,避免语言、语义出现歧义性的认识,可以对软件形式提供规范的语言符号,并且具有业内公认的性质,这样易于机器对软件的程序或内容进行统一的处理,减少误判或模糊的现象,通过软件工具的应用,提高机器的识别能力,进而达到对形式规格的各种推理或证明,分析软件中各种可能的故障缺陷。
3.统计测试
软件测试当中,不同的测试方法或输入域所产生的结果会有很大的差异性,尤其是当软件的复杂性高、功能齐全、规模大的时候,测试往往难以覆盖到所有的运行可能,各种情况都有可能出现,其出现的概率也有差异,所以,利用统计方法,对运行结果进行记录分析,以便在测试当中更能直观的通过数据的分布来判断其稳定性与可靠性。
五、结束语
软件技术是当今社会发展的重要推动力量,融入到了各行各业,其所引起的效应也是不可估量的。但软件的好坏,运行的可靠性、稳定性与安全性等指标影响其效能的发挥,软件测试技术是针对软件形成过程中的故障研判、分析改进的重要手段,在软件研发过程中扮演着至关重要的角色,我国在推动信息化、科技化的发展当中,对软件技术的依赖愈发明显,深入研究软件测试技术,探索新的内容,对我国的产业结构的升级具有非常深远的意义。
参考文献:
[1]齐治昌,谭庆平,宁洪.软件工程[M].北京:高等教育出版社,2001.
[2]Weyuker EJ.Axiomatizing software test data adequacy.IEEETrans.on Software Engineering, 1986,12(12):1128-1138
[3]赵亮,王建民,软件测试准则的有效性度量研究[J].计算机研究与发展,2006,43(8):1457-1463
[4]虞翊,吴芳美.黑箱条件下的软件测试充分性与揭错能力分析[J].计算机工程,2001,27(6):74-76
[5]满靖,闫健卓,王普,异构数据库信息整合系统的测试技术研究[J]. 微计算机信息. 2006(06)