软件测试被定义为是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件质量的度量。下面我给大家分享软件技术论文2000字,大家快来跟我一起欣赏吧。
软件测试技术研究
摘 要:软件测试是软件工程范畴的一项重要工作,与软件质量密切相关。本文就软件测试的概念、分类和方法等几个方面进行了论述。
关键词:软件测试;黑盒测试;白盒测试
中图分类号:TP311.52
软件测试是软件生产过程中的一个重要环节,是伴随着软件的产生而发展的,它并不是不能正常运行的软件的专利,而是为了发现所有软件缺陷而执行程序的过程。软件测试贯穿于软件开发的到投入使用的各个过程中,不同阶段的测试手段各不相同,测试成为软件产品质量控制和管理的重要手段之一。大量资料表明,软件测试的工作量占软件开发总工作量的40%以上,测试成本也占总成本的30%―50%。
1 软件测试的目标和重要性
1.1 软件测试的定义
看待软件测试的角度不同,软件测试的定义也各不相同。总的说来,软件测试就是利用测试工具按照预先设定好的方案和流程对产品进行功能和性能测试,甚至根据需要重新编写测试代码,对测试过程中可能出现的问题进行分析和评估。它是帮助识别开发完成的计算机软件的正确度、完全度和质量的软件过程,是保证软件质量的重要内容。
1.2 软件测试的目标
软件测试的正确定义是“为了发现程序中的错误而执行程序的过程”。而测试的目的决定了如何去组织测试。测试的目标是什么?G.Myers曾给出了关于测试的一些规则,这些规则可以看作是软件测试的目标:
(1)软件测试并不是为了验证软件的正确性,而是为了发现错误而执行程序的过程。(2)好的测试方案是尽可能发现目前尚未发现的错误的测试方案。(3)成功有效的测试是发现了至今尚未发现的错误的测试。从以上规则可以看出,测试是以查找错误为中心,和人们通常想象的“测试是为了验证程序的正确功能”,“成功的测试是没有发现错误的测试”等是完全相反的。所以,近年来,正确软件测试目标如下:(1)软件测试并不仅仅是为了查找出软件的错误,而是要通过进一步分析错误产生的原因和错误的发展趋势,发现一些可以通过测试避免的开发风险;(2)通过测试能够帮助测试人员设计出适合该软件更加有效的测试方法,进一步提高测试效率,缩短测试实践,降低测试费用;(3)结果完全正确的测试也是有价值的,是软件质量的一种评价,但并不是测试正确就说明该软件没有错误,随着使用的深入,功能的扩充等会逐步暴露出更多的问题,实践证明,完全没有错误的软件世间难求。
1.3 软件测试主要包括
(1)正确性和精确性测试:如果软件的运行结果不正确和不精确,那么会给用户带来很大的麻烦,甚至造成不可估量的损失,因此是保证软件质量的最重要因素。(2)容错性测试:容错性测试是在认可错误的情况下进行的测试,是检查软件在异常条件运行,是否具有防护性和能否自我恢复。容错性测试能确保系统不发生无法意料的事故,从而提高软件的安全性和可靠性。(3)性能与效率测试:用户都希望软件的运行速度更高一些,并且占用的资源更少些,性能与效率测试主要是优化软件的算法,数据结构和代码组织来提高软件的性能和效率。(4)易用性测试:易用性测试是测试软件的易用程度,就像一个常用扳手工具,拿到就能明白怎么去使用,因此易用性测试没有一个量化的指标,主观性较强。在平时使用中,当用户不能正确使用软件中的某个功能时,大多数人首先会通过各种方式学习、请教,或者向产品支持部门打电话,还有一部分用户会查阅用户手册。通常认为,用户不通过翻阅用户手册就能使用的软件易用性较好。(5)文档测试:文档测试主要检查文档的正确性、完备性和可理解性。
1.4 软件测试的基本原则
(1)尽早并不断地进行软件测试;(2)程序员或程序设计机构避免测试自己的软件;(3)测试前应当设置合理的测试用例,测试用例的设计不仅要有合法的测试数据,也要有非法的测试数据;(4)对程序修改之后要进行回归测试;(5)妥善保留测试计划、严格按照计划测试,排除测试的随意性,全部测试用例、出错统计和最终分析报告,并对每一个测试结果做全面检查。
1.5 软件测试的地位
软件的开发过程包括需求分析、设计、实现和测试四个阶段。软件测试在软件生命周期中占重要地位,是软件交付用户使用前保证软件质量的重要手段。在系统发布之前,从客户的需求出发,尽早发现问题,修改的成本越低,破坏性也越小。一旦系统投产后发现问题,其危害性被成倍放大,甚至会给双方造成不可估量的损失。
2 软件测试方法
按照不同的分类方法,软件测试可以分为多种类型。
2.1 从是否需要执行被测试软件的角度分类
静态测试:是指不需要实际运行软件,主要对软件的编程格式、程序逻辑结构等方面进行测试。静态测试是通过对源程序进行语法检查,静态结构分析、代码质量等方面找出缺陷和可疑之处,例如变量定义和生命周期检查、模块接口的正确性、是否允许递归、程序逻辑和结构审查等。
动态测试:通常的上机运行软件而进行的测试,这种方法是使程序有控制地运行,并从多种角度观察程序的行为,以发现其中的错误。在软件维护阶段,当修改软件后,除了对修改部分的软件进行常规的测试外,还应对软件的其他部分进行回归测试,所谓回归测试是指全部或部分地重复已做过的测试,它主要检查软件的修改是否在软件的未修改部分引入了新的错误。
2.2 从是否针对软件结构与算法的角度分为
白盒测试,主要是对软件的逻辑结构进行的测试。白盒测试要求测试人员对程序内部逻辑结构及有关信息来设计和选择测试用例,对程序的逻辑路径进行测试,不需测试软件产品的功能。测试过程是基于覆盖全部代码、分支、路径和条件。白盒测试是指在知道产品内部工作过程,通过设置测试用例来检测产品内部动作是否按照规格说明书的规定正确进行,检验程序是否都能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑覆盖、基本路径测试等。
黑盒测试:指测试来检测每个功能是否可以正常使用。执行严格的测试,通过对整个软件或某些软件功能,但不检查程序的源代码还是非常清楚的了解该软件的源代码程序具体如何设计。通过输入测试数据,并通过分析的结果输出到测试人员了解软件是如何工作的。在测试中,主要的功能是用来检查是否正确的程序或缺少的功能,用户界面是正确的,错误的数据结构或外部数据库访问错误,性能是正确与否,程序是否有初始化和终止错误的存在。
2.3 从测试的不同阶段分类
单元测试:指的是对每一个工作单元进行测试,了解其运行结果是否符合我们的预期。它对测试人员的要求比较高,要求测试人员对程序代码比较熟悉;一般由程序员自己编完某个单元后,先自我检查通过后,再将测试代码交给测试人员进行审核,如果发现缺陷,原开发者应当及时修正程序,这样可以尽快的发现程序中存在的错误,及时修正以提高程序开发的效率。
集成测试:是在单元测试的基础上,测试再将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。也就是说,在集成测试之前,单元测试已经完成,集成测试中所使用的对象,已经是经过单元测试的软件单元。
系统测试:是将已经确认的计算机软件和硬件设备、网络和外围设备等元素组合在一起,对已经集成好的系统进行测试,找出所开发的系统与用户需求不符或矛盾的地方,从而提出更加完善的方案.它的任务是尽可能彻底地检查出程序中的错误,提高软件系统的可靠性。
验收测试:也称为交付测试,完成了功能和系统测试后、产品发布之前所进行的测试活动,它是技术测试的最后一个阶段。
总之,随着软件开发和测试技术的不断发展,测试方法也越来越多样化,针对性更强;选择合适的软件测试方法可以让我们事半功倍。
参考文献:
[1]张永梅.软件测试技术研究[J].测试技术学报,2002,6.
[2]刘继华.软件测试技术的研究进展[J].微计算机信息,2012,10.
[3]瞿莉丽.浅析软件测试技术[J].硅谷,2010,4.
点击下页还有更多>>>软件技术论文2000字
1、软件测试相关概念 (1)软件测试:软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计出一批测试用例,并利用这些测试用例的运行结果来发现程序错误的过程。 (2)软件测试用例:测试用例实际上是对软件运行过程中所有可能存在的目标、运动、行动、环境和结果的描述。测试用例是测试组织的最小单位,指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并最终形成文档。 软件测试的核心是设计和执行测试用例。而测试用例的选择问题可以看作是从庞大的输入状态组合中,搜寻哪些可以发现错误的状态组合。因此需要用抽象的手段来尽量使测试更加有效。 (3)测试用例库:完整的单元测试很少只执行一个测试用例,开发人员通常都需要编写多个测试用例才能对某一软件功能进行比较完整的测试,这些相关的测试用例称为一个测试用例集。将大量的测试用例收集到测试用例库中,合理的分类后供测试人员选择使用,能够极大地提高软件问题的发现率。 2、提高测试质量的方法 2.1 采用测试性设计技术 软件测试是目前用来验证软件是否能够完成所期望的功能的唯一有效的方法。但是在测试的实施过程中,由于种种原因导致测试的难度相当大,甚至出现了无法测试的情形。为了提高软件的可测试性,我们在软件设计时应当遵循测试性设计原则,通过改变设计或代码、为软件增加专门测试结构等方法来提高软件的可测试性。 (1)测试驱动设计。这种设计就是直接把软件需求变成测试代码。在确定软件测试性能要求的基础上优先编写测试代码。先写验收测试,再写单元测试,并在开发过程中不断修正。 (2)每个操作对应一个方法,使方法小型化。使用小型化方法说明和重载带缺省方法参数的方法,使得测试中调用这些方法变的很容易。 (3)显示与控制分离。把代码移到GUI视图的外面,各种GUI动作就能成了模型上的简单方法调用。这样,在修改程序功能不会影响视图,同时通过方法调用测试功能也比间接地测试功能更容易。 (4)对于可能要作为参数的类,做一个接口。用接口说明外部程序组件或在需要时改变接口形成一个空类作为参数传入。 2.2 选择合适的测试管理模型 模型是系统功能的形式化或半形式化的表示,支持输入状态组合的系统枚举。基于模型的测试主要考虑系统的功能,可以认为是功能测试的一种。测试模型体现了被测试系统的最本质的功能关系。而且要比系统本身更易于开发和分析。一个可测试的模型要能提供足够的信息用来产生测试用例。所以可测试的模型必须满足以下要求: (1)必须是某种测试实现的完全准确的反映,模型必须表示要检查的所有特征; (2)是对细节的抽象; (3)可以表示所有事件和所有的动作;⑷可以表示系统的各种状态,以便由可知的方法来确定已达到或没有达到什么状态。
今年上半年,在党中央、国务院的正确领导下,在软件产业界同仁的共同努力下,中国软件产业仍然保持了持续、稳定的发展势头。 软件产业作为信息产业的核心,是知识高度密集的行业,具有不同于普通制造业和服务业的特性。在投资、商务活动、人员培训、软件出口等方面给软件企业带来了一定的冲击,给企业正常的生产经营活动造成了一定程度的影响。从另一个角度考虑,SARS 同时引发了新的市场需求,如医保系统、视频会议系统、远程教育系统、防治系统等领域,对软件产品的品种、质量和安全性等提出了新的、更高的要求,也为我国软件产业结构的调整和发展提供了机遇。 在全行业的共同努力下,今年上半年全行业共完成销售收入 847 亿元,同比增长59.8%。其中: 软件产品销售额为465.9 亿元,同比增长69.4%; 软件服务销售额为381.1 亿元,同比增长49.5%; 软件出口额为8.04 亿美元,同比增长33.3%。 由于今年4-6 月份非典疫情的影响,今年上半年的同比增长率趋缓,预计今年下半年软件产业的产值将有较大幅度的增长。 (三)发展目标为进一步提高我国软件产业的总体水平和国际竞争力,国家在《振兴软件产业行动纲要》中提出了到2005 年的发展目标:软件市场销售额达到2500 亿元;国产软件和服务的国内市场占有率达到60%;软件出口额达到50 亿美元;培育一批具有国际竞争力的软件产品,形成若干家销售额超过50 亿元的软件骨干企业;软件专业技术人才达到 80 万人。从2002 年的实践和2003 年上半年的发展状况来看,这一目标应该能够超额完成。 2002 年软件产业 存在的问题 (一)软件企业反映的主要问题 1.大型企业市场销售额增加,利润普遍下降(从证监会公布的一些上市公司的数据中明显可以看出此趋势),主要原因:这些大企业的老总们普遍认为是成本上升所致。 2.2002 年国内市场竞争加剧,主要表现为: ①不但国外大公司进入中国市场,而且国际上中、小企业也开始进入中国市场,过去欧美日企业进入中国市场,现在印度大中型公司也进入中国市场(如印度TATA集团、NIIT、QAI 落户中国等),2002 年明显表现出国内市场竞争加剧的趋势。 ②人才竞争加剧,尤其在高端人才竞争方面更加剧烈,高端人才成本在2002 年进一步抬高,高端人才流动现象在增加。 3.市场环境有恶化的趋势,主要表现为: ①市场竞争行为不规范,在国外订制软件上表现尤为突出,如西部和西南地区,6000~7000 美元就答应承接一个国外订单。 ②恶性竞争,降价的趋势明显。③国内大中型企业普遍反映2002 年资本回收慢,应收款项拖欠现象开始出现(从上市公司公布的数据可以反映出来)。 (二)2002~2003 年软件行业的发展趋势 1.软件(产品)与信息服务业本来就是一个行业,但是在这样一个行业中,服务的趋势更加明显,服务在行业中的比重越来越高;服务的内容包括产品及产品增值服务、产品及升级和更新换代服务、在线增值服务、咨询和培训(业务培训、产品培训)服务、系统解决方案和系统集成服务,以及产品测试评估和维护服务等,未来3~5 年内,单一产品提供的方式在行业中所占比重会下降到20%以下; 2.无线移动平台上的软件(移动系统软件、移动中间件、移动数据库)引起企业的关注,也是企业市场大、利润高的领域; 3.嵌入式软件(手机、移动手持设备、信息家电等)引起软件开发商广泛关注,不少软件企业已转向这个领域; 4.从事ERP 的软件企业开始从炒作转向务实,如要求制定ERP 标准和市场规范,软件企业积极务实参预工业信息化的领域; 5.要求开放源代码已成为共同呼声,Linux 企业从炒作多的倾向转向务实,商业化成为Linux 厂家必须考虑的问题; 6.软件出口与国际合作是发展中国软件产业的一个重要突破口,北京、上海、天津、大连都在积极争取日本方面的合作与订制软件,美国、欧洲也开始将软件加工转向中国,其原因为: ① 欧美在经济不景气形势下; ② 本国本地的成本高; ③ 过去订单大都流向印度,美欧发现印度有再转包给中国的现状,由于加入WTO后对中国政治歧视的减少,今后欧洲软件外包业务将直接转向中国。软件人才需求情况分析 作为高科技产业之一的软件产业,其发展在很大程度上取决于人才的素质与人才的结构。软件产业的竞争从根本上来讲是人才的竞争。因此,不断提高各类软件人才的素质,不断完善人才的合理结构和供应体系,将是未来中国软件产业得以强劲发展的基础。 2002 年,受全球IT 行业人才需求减缓的影响,加之我国加大了对软件人才的培养力度,我国软件人才供不应求的局面有所缓解。随着35 所示范性软件学院开始招生以及社会力量办学的培训机构的增加,我国软件人才的供给数量增多,在一定程度上改善了我国软件人才的结构。但总体来说,2002 年中国软件人才状况仍未摆脱长期以来形成的“缺口较大、结构失衡、需求旺盛”的状况,人才短缺与结构不合理现状并存。具体表现为我国软件人才结构呈现“橄榄型”,即软件高端人才,包括系统分析师、项目技术主管等,以及低端人才,如软件编码程序员等都严重短缺,中级(端)人才过剩。最近,人事部公布了2003 年我国人才市场招聘与求职专业主要情况,其中计算机专业的招聘数量为14.8 万名,求职数量为39.6 万名,也呈供大于求的态势,这同时说明中端人才过剩。 (一)全国普通高校在校生情况 到2002 年底,我国普通高等院校共计1396 所,其中本科院校 629 所,专科院校767 所。全国共设有计算机科学与技术、计算机软件、软件工程专业的院校有982 所,其中本科院校有484 所,专科院校 498 所。 2002 年普通高等院校在校生总数为903.36 万人(本科生657.54 万人,专科生193.41 万人),其中计算机及软件专业在校生71.85 万人。此外,与软件相关专业(信息与计算科学、地理信息系统、电子信息科学与技术、电子信息科学与技术类新专业、自动化、电子信息工程、网络工程、信息对抗技术、信息安全等9 个专业)的在校生有 48.26 万人。 (二)2002 年全国普通高校计算机及软件专业毕业生情况2002 年全国高校计算机及软件专业毕业生人数为89214 人,其中博士336 人,硕士3491 人,本科37918 人,专科47693 人。 (三)2002 年全国普通高校中与软件相关专业在校生情况 全国普通高校中与软件相关专业共有在校生48.26 万人,其中 2002 年毕业生人数为48165 人,其中本科毕业生33048 人,大专毕业生15117 人。 (四)示范性软件学院软件人才培养情况 到2002 年10 月,35 所示范性软件学院共计招收本科生8073 人,工程硕士5670 人,研究生1158 人,全年招生超过15000 人。 (五)2002 年全国软件相关专业毕业生汇总 根据教育部提供的资料,我们将2002 年全国普通高校和成人高校中软件相关专业的毕业生进行汇总 感谢你的支持!