您的位置: turnitin查重官网> 计算机 >> 计算机工程 >计算机软件测试技术

计算机软件测试技术

收藏本文 2024-02-13 点赞:3251 浏览:9957 作者:网友投稿原创标记本站原创

摘要:随着人们对软件质量越来越重视,使得作为保证软件质量重要手段之一的软件测试也越来越引起人们的关注。本文简述了软件测试的定义等基本概念,指出了软件质量保证与软件测试间的关系,简要概括了3种软件测试用例的生成技术,介绍了软件测试所使用的相关技术。
关键词:质量保证;测试用例;黑盒测试;白盒测试
1007-9599 (2012) 11-0000-02

一、软件测试的概念

软件测试理论在1975年由Good enough首次提出,尽管当时对“软件测试”的真正含义还缺乏共识,但这一词条已经频繁出现。1982年,第一次软件测试技术大会在美国北卡莱纳大学召开,随后“质量”的号角开始吹响。
人们对软件测试的定义不断演化,IEEE标准610.12-1990,“软件工程专门术语的IEEE标准词汇表”将软件测试进行了这样的定义:
在指定的条件下操作测试系统或组件,观察或记录结果,并对测试系统或组件的不同方面做出评估的过程。

(一)应用目标/特性

1.可靠性测试:软件系统在规定的时间内及特定的环境条件下,完成规定功能的能力。

2.安全性测试:验证软件系统的安全怎么写作和识别潜在安全性缺陷的过程。

3.适用性测试:在指定使用条件下,产品被理解、学习、使用和吸引用户的能力。

4.健壮性测试:指软件系统在异常输入或异常动作情况下的容错和恢复能力。

5.功能测试:根据规格说明书对产品的各功能进行验证,检查产品是否达到用户要求的功能。
6.性能测试:验证软件系统是否达到用户提出的性能指标,同时发现系统中存在的性能瓶颈,目的在于优化系统。
(二)目的
软件测试的目的在于发现错误。通俗的讲,从用户的角度出发,就是希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品;从软件开发者的角度出发,则希望软件测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。

二、软件质量保证与软件测试

人们对计算机的依赖程度与日俱增,市面上软件的数量呈爆炸性的增长,像诸如空中交通管制系统,火箭卫星飞行系统,地震监测系统等都是非常复杂的软件系统。保障软件的质量,当下面对的问题就是软件系统越来越复杂,加之面向对象软件开发等方法的出现和IDE的使用,使得软件质量更加难以度量。
软件质量保证涉及软件开发周期的每个阶段,保证软件质量的方法很多,毋庸置疑,软件测试是其中非常有效和关键的方法。现在越来越多的公司开始重视软件测试这一块,有些软件开发机构如微软据说其软件测试的人员甚至是软件开发人员的两倍。虽然人们也在用形式化描述或是模型化方法来保障软件质量,但这些方法存在一定局限性,因此,软件测试在今后较长时间内将是保证软件质量的重要手段。

三、软件测试用例生成技术相关研究

(一)基于路径覆盖的测试用例生成技术

该技术属于白盒测试的范畴。方法主要有三种,分别是基于符号执行的、基于程序实际执行的和基于目标路径的测试用例生成。
基于符号执行是指以符号计算代替实际输入的测试数据值,由多个不等式组成,通过求解不等式来产生满足特定路径的测试数据。
基于程序实际执行的方法中,Korel提出了分支函数极小化的方法。对于不满足要求的分支,利用分支函数极小化,确定新的输入值,直至找到使程序沿指定路径执行的测试数据。
基于目标路径的方法,Gupta提出了迭代逼近法,通过选择一系列与所选路径谓词相关的语句进行迭代,得到一个线性约束集,用高斯消去法求解该约束集,获得一个输入增量,最终产生选定路径的测试数据。

(二)组合测试用例生成技术

旨在生成较少的测试用例有效的检测软件系统中的各因素及其相互作用对系统产生的影响,具有较高的错误检错能力。如今两两组合覆盖方法已经得到广泛应用,使用该方法可以发现很多传统方法难以发现的错误,但该方法仍存在着一些局限,这一课题很多人在研究,至今还没得到完美解决。

(三)面向对象测试用例生成技术

面向对象测试用例生成技术通常是根据程序内部结构和规范自动或半自动的生成测试用例。主要有两种方法,分别是基于外部接口行为的和基于内部结构的测试用例生成。

四、软件测试技术

(一)软件测试阶段

软件测试分为单元、集成、系统和验收测试四个阶段。
(1)单元测试:在隔离环境中对独立的软件模块进行测试以发现其中的缺陷。
(2)集成测试:在单元测试基础上,当模块组装后查找模块间接口的错误。
(3)系统测试:将软件系统与系统中的其它部分(硬件、信息)集成起来,以保证各组成部分不仅能单独受到检验,而且在系统各部分协调工作的环境下也能正常工作。
(4)验收测试:以用户为中心,软件开发人员和质量保证人员也参与其中。测试内容包括:功能测试,特殊情况,文档检查,强度测试,恢复测试,可维护性,用户操作测试,用户友好性检验,安全测试。

(二)静态测试和动态测试

测试技术按是否运行程序分为静态测试和动态测试。
(1)静态测试:不运行程序,分析、检查和审阅系统的相关文档,如需求、设计文档、程序原代码等。
(2)动态测试:执行并使用软件,通过事先设计好的测试用例,比较实际输出与预期输出,发现存在的还未

源于:毕业设计论文致谢www.udooo.com

被发现的错误。

(三)白盒测试和黑盒测试

测试技术按是否查看源代码分为白盒测试和黑盒测试。
(1)白盒测试:通过分析组件/系统的内部结构,并设计相应测试用例进行的测试。主要分为基于数据流白盒测试,基于控制流的白盒测试和代码覆盖测试。
(2)黑盒测试:不需要了解软件内部结构以及代码的具体实现,是基于需求规格说明书的软件测试。它的技术包括等价类划分、便捷分析、决策表、状态测试、用例/场景测试、基于经验的测试等。黑盒测试主要分为功能测试和性能测试两大类。功能测试分为:逻辑功能测试、界面测试、易用性测试(残疾人)、安装测试、兼容性测试;性能测试分为:一般性测试、稳定性测试、负载测试和压力测试。

(四)其他测试技术

(1)回归测试:对软件错误修改后,需要重复执行先前的用例,也可能需要设计新的测试用例。贯穿于整个软件生命周期,既有黑盒回归也有白盒回归。
(2)冒烟测试:主要指测试团队对软件系统主要功能进行先期测试,如果连主要功能都未实现,直接打回去进行开发。
(3)随机测试:所有输入的测试数据随机生成,模拟用户操作,目的在于发现一些边缘性的错误。

五、结束语

软件行业发展至今,软件开发技术不断取得突破性进展,与此同时,软件质量的问题逐渐成为人们重视的焦点。软件测试作为保障软件质量最有效的手段之一,现今已成为了研究热点。随着软件规模的不断增大,复杂度越来越大,与其他系统的接口不断增多,应用越来越广泛,集成度越来越高,软件测试这一环节必须得到重视,只有这样,才能尽早的发现并解决错误,提高效益,
参考文献:
于海澍.计算机软件测试技术概述[J].科技资讯,2009,9
金松.软件测试的关键技术[J].湖北三峡职业技术学院学报,2006,1
[作者简介]李翼(1991.6-),男,籍贯:重庆,学校:四川大学软件学院,专业:软件工程,研究方向:软件工程;陈创(1990.11-),男,籍贯:重庆,学校:四川大学软件学院,专业:软件工程,研究方向:软件工程。

copyright 2003-2024 Copyright©2020 Powered by 网络信息技术有限公司 备案号: 粤2017400971号