软件测试论文范文

2022-05-14

想必大家在写论文的时候都会遇到烦恼,小编特意整理了一些《软件测试论文范文(精选3篇)》相关资料,欢迎阅读!2012年度中国软件测试信息化最具成长力企业奖北京测试空间科技发展有限公司是注册于北京市海淀区高新技术园的软件企业,目前主要业务范围包括软件测试管理工具研发、软件测试项目外包和软件测试专业技术人才培养及派遣。

第一篇:软件测试论文范文

浅析软件测试技术

摘 要:软件测试是软件工程的重要组成部分,是保证软件质量和提高软件可靠性的重要手段。随着软件程序的规模和复杂度不断地增加,软件测试的工作量也显得愈加艰巨,在软件开发过程中占据的位置也更为重要。本文首先回顾了软件测试的发展变化,介绍了软件测试的主要方法、类型以及发展阶段,然后介绍了两款自动化测试工具QTP和Loadrunner。最后总结了自动化测试是软件测试的发展趋向。

关键词:软件测试;手机测试;软件质量

一、引言

随着软件规模的增大,软件的复杂程度也越来越大,与其他系统的接口不断增多,导致软件开发中出现错误或缺陷的机会越来越多,市场对软件質量重要性的认识逐渐增强。1983年,在IEEE提出的软件工程标准术语中给软件测试下的定义是:“使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。”IEEE Std829-1998进一步明确软件测试是用于检测当前软件与实际设计需求间的差异的过程,具体包括了测试用例(test case,TC)集、测试过程集以及两者的组合。IEEE Std829-2008将软件测试延伸到整个软件开发生命周期中,指出软件测试是给定条件下对系统或组件的执行,以及对结果进行观察或记录的行为。

二、软件测试技术概述

软件测试在软件生命周期中横跨两个阶段,通常在编写出每一个模块之后就需要对它做必要的测试(称为单元测试)。编码和单元测试属于软件生命周期中的同一个阶段。在结束这个阶段后对软件系统还要进行各种综合测试,如集成测试、系统测试、性能测试和配置测试,这是软件生命周期的另一个独立阶段,即测试阶段。软件测试的原则应把“尽早和不断地进行软件测试”作为软件开发者的座右铭,实践证明,单元测试能够尽早发现问题,减少后期测试的错误量。经验表明,测试后程序残存的错误数目与该程序中已发现的错误数目或检错率成正比。

1.软件测试的主要方法

(1)黑箱测试(black-box testing),也称黑盒测试,是软件测试方法,测试应用程序的功能,而不是其内部结构或运作。测试者不需具备应用程序的代码、内部结构和编程语言的专门知识。测试者只需知道什么是系统应该做的事,即当键入一个特定的输入,可得到一定的输出。测试案例是依应用系统应该做的功能,照规范、规格或要求等设计。测试者选择有效输入和无效输入来验证是否正确输出。此测试方法可适合大部分的软件测试,如单元测试(unit testing)、集成测试(integration testing)以及系统测试(system testing)。(2)白箱测试(white-box testing,又称透明盒测试glass box testing、结构测试structural testing等)是一个测试软件的方法,测试应用程序的内部结构或运作,而不是测试应用程序的功能(即黑箱测试)。在白箱测试时,以编程语言的角度来设计测试案例。测试者输入数据验证数据流在程序中的流动路径,并确定适当的输出,类似测试电路中的节点。白箱测试可以应用于单元测试(unit testing)、集成测试(integration testing)和系统的软件测试流程,可测试在集成过程中每一单元之间的路径,或者主系统跟子系统中的测试。尽管这种测试的方法可以发现许多的错误或问题,它可能无法检测未使用部分的规范。

2.软件测试的主要类型

(1)功能测试——按照测试软件的各个功能划分进行有条理的测试。在功能测试部分要保证测试项覆盖所有功能和各种功能条件组合。(2)系统测试——对一个完整的软件以用户的角度来进行测试。系统测试和功能测试的区别是,系统测试利用的所有测试数据和测试的方法都要模拟成和用户的实际使用环境完全一样,测试的软件也是经过系统集成以后的完整软件系统,而不是在功能测试阶段利用的每个功能模块单独编译后生成的可执行程序。(3)极限值测试——对软件在各种特殊条件、特殊环境下能否正常运行和软件的性能进行测试。特殊条件一般指的是软件规定的最大值、最小值以及在超过最大、最小值条件下的测试。特殊环境一般指的是软件运行的机器处于CPU高负荷或是网络高负荷状态下的测试,根据软件的不同,特殊环境也有不同。(4)性能测试——对软件性能的评价。简单地说,软件性能衡量的是软件具有的响应及时度能力。因此,性能测试是采用测试手段对软件的响应及时性进行评价的一种方式。根据软件的不同类型,性能测试的侧重点也不同。(5)压力测试。压力测试常常和性能测试相混淆。它们的主要不同点是,压力测试要求进行超过规定性能指标的测试。如一个网站设计容量是100个人同时点击,压力测试就要是采用120个同时点击的条件测试。压力测试的通常判断准则:系统能够恢复,压力过程中不要有明显性能下降。

3.软件测试的主要阶段

(1)单元测试是对软件组成单元进行测试,其目的是检验软件基本组成单位的正确性,测试的对象是软件设计的最小单位——模块。(2)集成测试也称综合测试、组装测试、联合测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。其主要目的是检查软件单位之间的接口是否正确,集成测试的对象是已经经过单元测试的模块。(3)系统测试主要包括功能测试、界面测试、可靠性测试、易用性测试、性能测试。功能测试主要针对包括功能可用性、功能实现程度(功能流程和业务流程、数据处理和业务数据处理)方面的测试。(4)回归测试指在软件维护阶段,为了检测代码修改而引入的错误所进行的测试活动。回归测试是软件维护阶段的重要工作,有研究表明,回归测试带来的耗费占软件生命周期的1/3总费用以上。与普通的测试不同,在回归测试过程开始的时候,测试者有一个完整的测试用例集可供使用,因此,如何根据代码的修改情况对已有测试用例集进行有效的复用是回归测试研究的重要方向。此外,回归测试的研究方向还涉及自动化工具,面向对象回归测试,测试用例优先级,回归测试用例补充生成等。

三、主要测试工具

软件测试工具是通过一些工具能够使软件的一些简单问题直观地显示在读者的面前,这样能使测试人员更好地找出软件错误所在。软件测试工具分为自动化软件测试工具和测试管理工具。一个好的软件测试工具和测试管理工具結合起来使用将会使软件测试效率大大提高。这里主要介绍以下两种测试工具:

QTP是一个B/S系统的自动化功能测试的利器,是软件程序测试工具。Mercury的自动化功能测试软件QuickTest Professional,可以覆盖绝大多数的软件开发技术,简单高效,并具备测试用例可重用的特点。Mercury QuickTest Pro 是一款先进的自动化测试解决方案,用于创建功能和回归测试。它自动捕获、验证和重放用户的交互行为。Mercury QuickTest Pro为每一个重要软件应用和环境提供功能和回归测试自动化的行业最佳解决方案。

LoadRunner是一种预测系统行为和性能的工业标准级负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。通过使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。LoadRunner 是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助人们更快地查找和发现问题。此外,它还能支持广泛的协议和技术,为特殊环境提供特殊的解决方案。

四、总结

软件测试在软件质量保证活动中越来越发挥着重要的作用。然而,软件测试是一项费时、费力并且单调乏味的活动,测试人员需要设计、执行、分析大量的测试用例。将自动化引入软件测试领域能有效地减轻人员的劳动强度,提高测试的效率和质量,从而节省软件开发的成本,提高软件的质量。随着软件产业的发展,软件产品的质量控制与质量管理正逐渐成为软件企业生存与发展的核心。

参考文献:

[1]杜丽洁.基于QTP自动化测试框架的开发与应用[D].武汉:武汉理工大学,2012.

[2]郝炜.性能测试工具LoadRunner介绍[J].电脑知识与技术,2008(17):36-40.

作者:李转运 吴长中 唐桂林

第二篇:测试空间:北京软件测试培训领导品牌

2012年度中国

软件测试信息化

最具成长力企业奖

北京测试空间科技发展有限公司是注册于北京市海淀区高新技术园的软件企业,目前主要业务范围包括软件测试管理工具研发、软件测试项目外包和软件测试专业技术人才培养及派遣。

北京测试空间科技发展有限公司是注册于北京市海淀区高新技术园的软件企业,目前主要业务范围包括软件测试管理工具研发、软件测试项目外包和软件测试专业技术人才培养及派遣。

公司在软件测试管理工具研发领域已成功开发具有自主知识产权的STMP管理软件,在计算机专业技术人才培养领域与安博教育集团建立了牢固合作伙伴关系,5年来累计为社会培养了5000余名软件测试工程师。目前常年在校学生800余人,开设的主干课程方向包括国际化软件测试工程师、嵌入式软件工程师、微软MASP.net软件开发工程师、Java+3g开发工程师四大方向。课程体系均采用逆向开发,开发团队均来自IT企业核心项目团队。目前,测试空间的学子已经遍布首都中等以上规模的IT企业。

在人员派遣领域,公司与多家IT企业建立了长期、稳定的合作关系,利用软件测试培训的人才储备优势不断地向用人单位输送专业人才,专业软件测试工程师派遣能力在100人/月左右,并凭借专业、管理严谨、服务到位的工作作风,受到合作企业的信任与好评。在软件测试项目外包领域,公司已建立广泛的业务渠道,项目覆盖行业包括军工、航天、金融、通信等领域,同时公司按照CNAS-CL01、CNAS-CL20规定,建立了实验室质量管理体系,经中国合格评定国家认可委员会(CNAS)专家组现场评审,于2010年9月正式获得认可,获得CNAS检测实验室资质,2011年9月申请标准变更和扩项并已获取通过。公司经过六年发展,已成为软件测试领域的综合服务供应商,服务内容从前期的人才培养、人员派遣及项目外包又延伸到商业及技术咨询、行业解决方案提供、软件质量评测等高级领域。相信在不远的将来,测试空间将成为中国IT行业快速成长的企业代表。

公司在软件测试领域具备人才储备及项目实施优势,公司已形成5000人的专业软件测试人才储备库及500人/年的项目派遣能力,同时依靠自身技术能力建设了CNAS实验室并且独立承担军工、航天、能源和通信领域的大型项目,进一步提高了公司对大型复杂项目的接包能力。

公司目前是北京软件测试培训领域的领导者,获得学习者的广泛信任和喜爱;公司同时是多家知名IT企业的人才供应商,获得业内企业一致的良好评价和信任;公司更是软件测试行业中为数不多的通过中国合格评定国家认可委员会(CNAS)实验室认证的企业,表明公司具备按照国际标准建立软件质量控制体系的能力,有效改善了国内IT企业软件质量控制能力弱的落后局面。

我们服务的客户包括交通银行、中国农业银行、中石油东方地球物理公司、东软股份、海辉高科、用友软件、莱博智科技、电子部5所、电子部11所,航天704所、国安创想、清华同方、中软融鑫、长峰科技等100余家企业,项目覆盖行业包括军工、航天、金融、通信等领域。

第三篇:高职软件测试课程构建设想

软件测试是软件质量保证的关键步骤。测试贯穿整个软件开发的过程,是对软件需求分析、设计规范和编码的最终复审。软件测试已成为软件产业的新兴门类而迅速发展起来,其专业机构和组织迅速发展、人才需求旺盛、职业的价值日益提升,软件测试人才的培养也应该成为高职IT教育的重要内容。

1 高职软件测试课程构建背景

1.1 软件产业的技术发展和需求

随着软件技术的发展和应用的日益广泛,软件的功能越来越强,系统的规模越来越大,内部结构愈来愈复杂,软件的质量和软件的生产率难以适应发展需求的问题统一起来突出,已成为软件企业规范管理和软件产业快速发展的绊脚石。作为一种有别于实物产品的逻辑产品,软件产品有其特有的复杂性,如功能的多样性、实现方式的多样性、产品要求难以表达、进度能见度低、运行依赖于环境等。作为人脑高度智力化的体现,软件存在缺陷无可避免,而且软件系统规模扩大,其缺陷生成机率也会加大,发现的愈迟,故障造成的各类损失也愈大。

软件质量的提高,既依赖于软件过程工程的一些方法,也依赖于软件测试。我国软件开发长期以来存在“重开发,轻测试”的现象,中小企业往往研发测试混杂,没有专业的测试人员和体系;缺少测试概念和方法,没有测试方面的专业知识;缺少测试流程或不规范。用户验收由于缺乏专业人才而失之全面甚至流于形式。从行业发展来说,急需建立专业的测试队伍、流程和规范,提高产品研发质量。

随着软件技术的发展,软件测试的技术和内容也有了很大的发展。当前软件测试已不仅仅体现为测试的执行,而且贯穿软件生存周期全过程,内容包含理论与技术、标准与规范、环境与工具及测试管理等多方面。软件测试对于软件质量的保证作用正得到软件行业以及软件用户的重视,软件测试在软件工程中的地位得到空前地提高。近年来,一些大型企业以ISO9000或CMM为导向构建质量体系,在ISO9000中共有19个要素,其中一个就是“检验和试验”;CMU/SEI的CMM中共有18个过程关键域,其中有一个质量保证过程关键域。这其中都体现了软件测试是软件开发中必不可少的环节。

1.2软件测试人才紧缺

根据国外软件业发展的经验,软件测试工程师和软件开发工程师在企业的配置比例一般至少应该达到1∶1 的水平。但我国软件产业在这方面状况堪忧,很多软件企业的测试和开发人员之比为1∶6,甚至更低。随着近几年软件企业对软件测试重要性的不断认识,产生了对软件测试人才的大量需求。业界有关人士称,未来几年,国内软件行业对软件测试工程师的需求将超过20万人。

目前在软件测试人才供需方面存在矛盾。一方面,企业对软件测试人才有大量需求,但苦于招不到合适的人;另一方面国内的高等教育也忽视了这一领域,高校计算机专业专科、本科、硕士课程中普遍未开设专门的软件测试课程,测试仅仅是作为软件工程课中的一个章节被提到,因此行业内的软件测试人才严重短缺。目前企业在软件测试人员组成上还存在结构性矛盾。在企业执行软件测试的技术人员通常由具备本科以上学历的软件技术人员来承担,没有形成合理的金字塔形结构,这一方面加重了企业人力资源的成本,另一方面也加剧了软件测试技术人员的匮乏,而实际上通过恰当的培养渠道,高职毕业生完全可以成为合格的软件测试执行人员。

基于以上背景,软件测试技术将成为软件专业人才知识结构与技能培养的重要组成,企业对软件测试人员的需求也应当纳入高职教育视野之中。

2 高职软件测试课程目标分析

高职教育以职业能力培养为目标,通常在完成学历教育同时取得相应的国家职业资格证书,国家职业资格证书或行业技能证书也是高职教育内容的一个重要参照物。而针对软件测试人员,目前还没有相应的国家资格标准,也缺乏相应的行业证书,我们参照国家职业资格标准的等级划分原则,将满足相当于国家职业资格四级(中级)水准的人员称为软件测试员,而将满足相当于国家职业资格三级(高级)水准的人员称为高级软件测试员,并将这两者的技能要求根据具体情况纳入到高职教育培养目标之中。

软件测试员应了解软件测试的基本测试概念、测试理论,根据测试用例能够执行测试,具备基本的测试心理素质,能与开发人员进行有效沟通,掌握一门脚本语言。相当于国家职业资格四级(中级)水准。

高级软件测试员是软件测试工作最基本的力量。他们应掌握基本测试概念、测试理论、测试标准和测试技术方法,能独立设计测试用例,有效进行缺陷报告和跟踪,使用常用测试工具,掌握一门脚本语言。能够完成一般软件程序的测试任务。相当于国家职业资格三级(高级)水准。

据当前软件行业相关统计资料分析,具备测试执行能力高级软件测试员和具有更高技能水准的软件测试工程师都是企业的紧缺人员,从企业人力资源管理的合理结构来说,具备测试执行能力的高级软件测试员的人数需求更大,完全可以成为高职软件测试专业的技能培养目标。教育部的目录中尚无软件测试专业,对于众多的高职院校来说,这是一个空白。因此对于条件成熟的高职院校,可将高级软件测试员纳入到软件专业(测试方向)的培养目标中。也可将软件测试员调整为软件专业的培养目标之一,提高毕业生的专业沟通能力和就业适应面。

3 课程构建原则

3.1 以软件测试工作的逻辑顺序构建课程

目前的软件测试教材大都是近两三年出版的,体例基本上是按照测试理论、测试技术、测试工具、测试实践、测试管理的顺序依次展开。高职的教材如果局限于对相应内容作的筛选、简化,是难以适应高职学生的,也不符合职业技术教育的规律。

“职业教育的教学内容应置于由实践环境构成的,以过程逻辑为中心的行动体系框架之中”,“其内容编排应以典型职业活动顺序为参照系,故具有串行结构的特点。针对工作过程环节的顺序性与时序性传授的课程内容,既符合职业院校学生与生俱有的心理顺序和具象思维的指向,也符合动态变化的职业工作过程的实际需要”。

因此,软件测试课程构建首先要按照典型的测试活动顺序,分解测试职业能力技术要求,按照需求→概要设计→详细设计的V字型测试模型,由易到难,由表及里,由简单到复杂,由单一到综合,逐步展开课程。按照组成测试技能实践教学内容及相互间的内在联系,使数据库、操作系统、自动化测试工具、测试管理工具、配置管理工具等各部分实践内容有所侧重,互相衔接,彼此关联,具有连续性。

3.2 要高度重视过程性知识与经验的获得

“现代工业心理学研究表明,高新技术工作岗位的工作人员所需要的知识,约一半是介于经验性知识和学科理论知识之间的一种特殊的知识,即“劳动过程知识”。软件测试在规范的软件生产中属于软件过程工程的重要组成,软件测试课程构建必须使学生能在“完整工作过程”中学习。

课程开发难点在于提供一定规模的实际软件产品,发放多个包含bug的软件版本,且每个版本都模拟真实测试过程中的情况进行了定制调整,以保证为学生创造一个与日常测试工作环境类似的场景。学生通过这个项目实训,将本阶段学习过程中涉及的测试技能、测试方法等知识点灵活运用,从而保证将书本中的知识点真正消化掌握,进而达到软件测试综合能力的提升。因此缺陷报告库的规模是项目实训效果的重要保证之一。

注意引入在国际市场占有率高、有代表性的自动测试工具,如Mercury、IBM的有关产品,内容涵盖从安装到使用,并结合实际操作案例进行分析讲解,以此来加深概念与方法理解,达到技术运用举一反三,知识传授与技能培养并重的目的。

有了供实践训练的软件产品和测试工具,仅仅能够找出bug还是不够的。要在软件过程工程中,围绕测试工作的的基本程序,在一个“完整工作过程”中进行工作分析,进而构建测试课程,在项目教学中建立与测试过程的直接关系。但是,对于大多数企业而言,目前测试工作流程远未规范,甚至测试员的职责也不够明确。如何进行测试工作分析呢?从形式来看,测试报告是测试人员的工作成果,因此,测试人员的工作分析可以围绕着“测试报告”来进行,包括“测试报告”的前期工作:测试计划、测试案例、测试过程、信息收集;“测试报告”中的信息管理:通常使用测试管理工具,对测试中的问题进行收集、流转、分析与统计;不同类型的“测试报告”的撰写、“测试报告”的管理、测试评估等。这样的程序,体现了人类实践活动的“完整模式”。

3.3 在“完整工作过程”中培养方法能力与社会能力

实际上,测试技术人员的要求不低于开发人员,但是需要不同于开发人员的知识结构。在具体细节上,可能不必非常深入,但知识面要求更广,涉及开发、管理、行业等多方面。

由于目前国内软件企业专职测试人员基本上只承担系统测试,所以测试课程的重点在系统测试,在单元测试、集成测试方面侧重于掌握基本概念和对测试过程的了解,能在指导下完成单元测试、集成测试。与此同时,要注重从业务需求描述与评审到文档评审的一系列质量管理问题。因此要求课程开发在内容上作出取舍,体现整体优化。要注意引入有关质量与质量体系、测试标准等概念,有利于提高职业素养,甚至也有利于企业澄清一些对于测试岗位的模糊观念。针对软件测试岗位的特定心理素质要求,如与程序员的沟通困惑,加强沟通与职业素质培养。

3.4 按照职业技术能力发展阶段来设计典型工作任务

研究表明,“人的职业能力的发展是按照从门外汉到专家的过程进行的”,而不是传统心理学认为的“从不知道到知道”的过程。因此,按照职业技术能力发展阶段来设计典型工作任务是高职课程开发的重要课题。

高职软件专业的课程在开发上一般涉及单机桌面软件和基于网络的分布式应用系统,从运行环境来说有Windows平台和Linux平台。测试课程也可以相应地划分为两个阶段,分别确定Windows平台下单机桌面软件和Linux平台(或Windows平台)下的典型测试任务。根据教学对象的软件专业知识背景与接受能力,在其他课程中作必要的软件知识铺垫。如在第一阶段,通过C语言的简单开发应用、搭建Windows测试环境、从测试角度叙述Windows开发环境及应用程序编程接口、Windows内部对象及程序运行机制、Windows消息机制、内存泄漏和检测技术等,了解编码规范,理解Windows软件错误产生原因,为有效地设计Windows应用软件的测试用例和测试脚本做准备。在对Java开发、OOP、OOAD技术、UML设计工具和基本表示方法、配置和管理数据库系统等作必要铺垫后开始第二阶段的测试课程。因此,在课程开发时一方面注意知识衔接,内容涵盖全面,另一方面深度适宜,体现理论分析“必须、适度、够用”的原则。

“职业教育的系统性,首先是要保证专业劳动过程这一大系统的完整,而不是教学所涉及的各学科子系统的完整性,否则,就会混淆全面和局部的关系,本末倒置”。也只有通过对完整测试工作过程的把握,才能够突破对普通高教课程的精简、筛选,做到理论分析“必须、适度、够用”。

4结语

随着IT技术应用的发展,产品质量控制与质量管理正逐渐成为企业生存与发展的焦点。从软件、硬件到系统集成,几乎每个大中型IT企业的产品在发布前都需要大量的质量控制、测试和文档工作,而这些工作必须依靠拥有娴熟技术的专业人才,即测试技术人员来完成,在这里高职软件测试课程建设通过引进工作过程导向的课程开发方法可以发挥重要作用。

作者:沈海娟

上一篇:思政课教学论文范文下一篇:钢筋混凝土论文范文