软件测试方法技术的研究静态测试.docx
- 文档编号:23549862
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:31
- 大小:349.19KB
软件测试方法技术的研究静态测试.docx
《软件测试方法技术的研究静态测试.docx》由会员分享,可在线阅读,更多相关《软件测试方法技术的研究静态测试.docx(31页珍藏版)》请在冰豆网上搜索。
软件测试方法技术的研究静态测试
常州信息职业技术学院
学生毕业设计(论文)报告
系别:
软件学院
专业:
软件技术(对日外包)
班号:
软件117
学生姓名:
居富山
学生学号:
1108203719
设计(论文)题目:
软件测试方法技术的研究
__----静态测试
指导教师:
简勇
设计地点:
常州信息职业技术学院
起迄日期:
2013.6.25-2013.11.20
毕业设计(论文)任务书
专业软件技术(对日外包)班级软件117姓名居富山
实践单位名称:
科大讯飞科技有限公司实践岗位名称:
测试员
岗位职责:
保证产品质量符合客户需求,尽可能多的发现软件bug的存在,达到客户的期望目标
岗位能力要求:
有较强的逻辑思维能力和分析判断能力,能够与他人沟通,有团队协作的精神,具有良好的文档编写能力;熟悉相关开发语言熟练编写测试脚本和使用测试工具;
一、课题名称:
软件测试技术方法的研究——静态测试
二、主要技术指标(或基本要求):
1.对Windows、Linux、Unix等大型主流操作系统的使用和应用熟练掌握
2.对比较流行的语言,如C、C++、JAVA、VB等掌握一种或多种,具备简单应用开发能力
3.熟练掌握SQLServer、Oracle、DB2等一种或多种数据库系统,熟悉使用SQL语言
4.熟悉常用的软件测试工具,如QTP、TD、Runner等,掌握一种或多种工具
三、主要工作内容:
1.编写测试计划:
阅读项目说明书,掌握软件性能、特点、使用方法等制定测试计划
2.编写测试用例:
按照测试计划,确认测试的范围重点、要求,编写测试用例
3.执行测试,根据测试用例进行测试,发现软件缺陷
4.编写测试报告,对测试结果进行分析
四、主要参考文献:
[1]、RexBlack.郑丹丹,王华.软件测试基础[M].1.北京:
人民邮电出版社,2013.5
[2]、Patton,R.张小松.软件测试[M].1-3.北京:
机械工业出版社,2006.4
[3]、(美)James,Whittaker,JasonArbon,JeffCarollo.黄利,李中杰,薛明.Google软件测试之道[M].1.北京:
人民邮电出版社,2013.10
[4]、李龙.软件测试实用技术与常用模版[M].2.北京:
机械工业出版社,2010.10
[5]、马瑟.王峰.软件测试基础教程[M].1.北京:
机械工业出版社,2011.8
[6]、惠特克.方敏,张胜,钟颂东.探索式软件测试[M].1.北京:
清华大学出版社,2010.04
[7]、利马耶.黄晓磊,曾琼..软件测试原理、技术及工具[M].1.北京:
清华大学出版社,2011.3
[8]、(美)凯纳.韩柯.软件测试经验与教训[M].1.北京:
机械工业出版社,2004.1
[9]、古乐、史九林.软件测试技术概论[M].1.北京:
清华大学出版社,2004
[10]、刘纯录、黄子河、陈渌萍.软件评测师教程[M].1-3.北京:
清华大学出版社,2011.9
学生(签名)年月日
指导教师(签名)年月日
教研室主任(签名)年月日
系主任(签名)年月日
毕业设计(论文)开题报告
设计(论文)题目
软件测试方法技术的研究——静态测试
一、选题的背景和意义:
随着社会现代化的发展,软件越来越成为了人们生活中必不可少的工具。
人们对于软件的依赖性也是越来越大,而软件的也是越来越丰富从而来满足人们的需求。
但是软件的丰富性与复杂程度的提高,大大地增加了软件测试的难度,对于测试者来说这无疑是一件很痛苦的事情。
因为软件测试是软件质量的重要保证,其地位在软件开发过程中也更加重要。
如何去提高软件的生命质量,深入研究软件的测试方法,提高软件的可靠性,满足的需求,成为了当今的软件设计的重要组成部分。
二、课题研究的主要内容:
本文主要是对软件测试方法技术的研究——静态测试的研究。
通过对软件测试基础知识的了解,以及静态测试的详细介绍,是大家对静态测试有了一个详细的认知。
静态测试包括代码检查、静态结构分析、代码质量度量等。
它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。
代码检查包括代码走查、桌面检查、代码审查等,主要检查代码和设计的一致性,代码对标准的遵循、可读性,代码的逻辑表达的正确性,代码结构的合理性等方面;可以发现违背程序编写标准的问题,程序中不安全、不明确和模糊的部分,找出程序中不可移植部分、违背程序编程风格的问题,包括变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构检查等内容。
三、主要研究(设计)方法论述:
首先,对软件测试方法技术的研究——静态测试简述,说明研究静态测试的意义。
其次,对静态测试的内容、方法、工具、要点进行分析研究,如何去进行静态测试,需要注意什么。
随后,对静态测试进行结论与展望,总结静态测试,描述静态测试的前景及未来。
最后,对此次论文老师和同学进行感谢。
四、设计(论文)进度安排:
时间(迄止日期)
工作内容
2013.6.25-2013.6.30
确定毕业设计内容及题目
2012.7.1-2012.7.15
理清思路,确定总方案,进行前期资料搜集,撰写开题报告
2012.7.16-2012.7.25
对系统进行系统分析,论证设计可行性,讨论数据库,创建数据库
2012.7.26-2013.8.10
熟悉业务知识,掌握项目流程,学习语言技术
2013.8.11-2013.8.20
系统详细设计,数据库设计
2013.8.21-2013.8.31
系统管理模块页面设计、编写代码
2013.9.1-2013.9.10
系统整合
2013.9.11-2013.9.15
系统模块测试
2013.9.16-2013.9.30
编写项目设计报告并修改
2013.10.1-2013.11.1
毕业论文撰写
2013.11.2-2013.11.20
修改与完善,准备答辩
五、指导教师意见:
指导教师签名:
年月日
六、系部意见:
系主任签名:
年月日
目录
摘要1
Abstract2
第一章绪论3
1.1课题的研究背景及意义3
1.2国内软件测试的现状及前景3
第二章软件测试概述5
2.1软件测试的定义和实质5
2.1.1软件测试的定义5
2.1.2软件测试的实质5
2.2软件测试的目的与原则6
2.2.1软件测试的目的6
2.2.2软件测试的原则7
2.3软件测试的工具8
第三章静态测试10
3.1静态测试简介10
3.2静态测试学术解释10
3.3静态测试编码规范11
3.4静态测试质量度量11
3.5静态测试错误检测12
3.6静态测试分析工具13
3.7静态测试测试要点14
3.7.1挑选合适的复审员14
3.7.2管理部门的参与14
3.7.3注意事项15
3.7.4技术复审与项目管理15
3.7.5复审领导15
3.7.6记录员16
3.7.7规则和惯例17
3.7.8规则17
3.7.9用户与复审17
3.8静态测试与动态测试的区别17
第四章结论与展望19
4.1结论19
4.2展望19
致谢20
参考文献21
摘要
随着社会现代化的发展,软件越来越成为了人们生活中必不可少的工具。
人们对于软件的依赖性也是越来越大,而软件的也是越来越丰富从而来满足人们的需求。
但是软件的丰富性与复杂程度的提高,大大地增加了软件测试的难度,对于测试者来说这无疑是一件很痛苦的事情。
因为软件测试是软件质量的重要保证,其地位在软件开发过程中也更加重要。
如何去提高软件的生命质量,深入研究软件的测试方法,提高软件的可靠性,满足的需求,成为了当今的软件设计的重要组成部分。
回想一下数十年来软件测试技术在中国的发展,我们不难发现,软件测试技术在不断地发展,不断地细分,以满足当今社会的需求。
从最初人们粗浅的认识软件测试,到如今系统化的发展,当真是日新月异。
本文主要介绍了静态测试方法,包括代码检查、静态结构分析、代码质量度量等。
它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。
在实际使用中,代码检查比动态测试更有效率,能快速找到缺陷,发现30%~70%的逻辑设计和编码缺陷,可以有效及时地挽回成本损失。
例如:
航天飞机搭乘项目在设计或代码评审时消除一个缺陷的成本为一美元,在系统测试时为13美元,交付使用后92美元;电信公司审查时发现和纠正一个缺陷的平均费用为200美元,客户验收测试时发现的缺陷平均花费4200美元等等。
这些事例都说明了静态测试在软件测试中的重要性。
【关键词】:
软件测试;软件质量;静态测试;测试要点;测试简介
Abstract
Withthedevelopmentofthesocietymodernization,softwareincreasinglybecomeanessentialtoolinpeople'slife.Peoplearemoredependentonsoftwareisalsoincreasing,whilethesoftwareisbecomingmoreandmorerichinordertomeettheneedsofthepeople.Buttherichnessandcomplexityofsoftwareincrease,greatlyincreasedthedifficultyofsoftwaretesting,thisisaverypainfulthingfortesters.Becausethesoftwaretestingisanimportantsoftwarequalityassurance,itsstatusismoreimportantinthesoftwaredevelopmentprocess.Howtoimprovethequalityoflifeofsoftwaretestingmethods,in-depthstudyofthesoftware,improvesoftwarereliability,tomeetthedemand,hasbecomeanimportantpartoftoday'ssoftwaredesign.
Recallthatinthepastdozensofyears,thedevelopmentofChinasoftwaretestingtechnology,wediscovernothard,thedevelopmentofsoftwaretestingtechnologyisconstantly,constantlysubdivision,inordertomeettheneedsoftoday'ssociety.Fromthefirstpeopleshallowunderstandingofsoftwaretesting,uptonowthedevelopmentofsystematicchangerapidly,itis.
Thispapermainlyintroducesthestatictestmethod,includingthecodeinspection,staticstructuralanalysis,codequalitymetrics.Itcanbecarriedoutbytheartificial,givefullplaytotheadvantagesoflogicthinking,canalsoautomaticallywiththehelpofsoftwaretools.Inactualuse,thecodechecksthandynamictestsaremoreefficient,canquicklyfindthedefectsfoundin30%~70%,thelogicaldesignandcodingdefects,caneffectivelysavethecostloss.Forexample:
theshuttleonaprojecttoeliminatethedefectsinthedesignorcodereviewforthecostofonedollar,inthetestingsystemfor$13to$92,afterdelivery;Telecomreviewfoundandcorrectedaflawoftheaveragecostof$200,defectsfoundcustomeracceptancetestoftheaveragecostof4200thedollarandsoon.Theseexamplesillustratetheimportanceofstatictestinsoftwaretesting.
[keywords]:
SoftwareTesting;SoftwareQuality;StaticTest;Test;Test.
第一章绪论
1.1课题的研究背景及意义
本课题主要是软件测试方法的研究—静态测试的研究。
随着软件技术的日益发展,软件系统的复杂性和规模性也在不断的扩大,软件的安全性和质量的保证成为了所有公司和个人关注的地方,软件中存在的各种问题也逐渐成为了我国制约软件产业发展的主要因素。
一些小的软件开发公司,甚至连一个专门的软件测试人员都没有。
可想而知,我国当今的软件产业是多么的薄弱,严重的制约了我国软件产业的发展。
没有很好地软件测试工作为产品的开发把关,怎么会有完美的、符合客户要求的产品呈现。
所以软件测试在软件开发中的地位日渐提高,软件测试影响也越来越大。
软件测试(softwaretesting),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。
或者用他的经典定义来说,在规定的条件下对程序进行操作,以发现错误,衡量软件质量,并对其是否能满足设计要求进行的过程。
软件系统,作为一种人类开发出来的工具,存在缺陷是必然的结果。
毕竟,人类不是上帝,不是神,不可能做出一种完美无缺的软件系统出来。
而软件测试存在的必要就是将这种存在的缺陷降到最低点,或者说降到符合客户的需求的阶段。
你可能会认为软件中存在一个小错误没什么大不了的,只要软件能运行就不需要管它了。
如果你真的这样认为,就是大错特错了,往往一个小错误造成上百万、千万的损失的不在少数。
所以,软件的缺陷要尽早在前期发现,发现的越早越能挽回巨大的损失,修改也越容易。
所以,软件测试在软件开发过程中无疑是至关重要的。
1.2国内软件测试的现状及前景
✧现状:
随着软件产业的发展,竞争变得越来也激烈,市场对于软件产品的质量要求逐渐增强。
所以,软件测试在软件项目实施过程中的重要性日益突出。
国家信息
产业部发布的最新报告显示,我国目前软件人才缺口高达40万。
即使按照软件开发工程师与测试工程师1:
1的岗位比例计算,我国对于软件测试工程师的需求有数十万之众,而目前,我国软件开发工程师与测试工程师岗位比例为6:
1,远远低于国际水平。
很多小规模的软件企业,都是开发人员兼职做测试。
而且,最主要的是软件公司的对于软件测试的重视程度不够,认为一个软件只有开发是最重要的,测试并不一定需要专业的人员去做。
结果,后期需要软件修补花费的费用太高,以至于远远超过所能够允许的范围,发展前景惨淡。
从总体上说,我国的软件行业发展还很不成熟,软件测试更是处于弱势地位。
✧前景:
随着人们对软件需求的提高,软件产品的质量控制与质量管理正逐渐成为软件企业生存与发展的核心。
软件产品在发布前所需要的质量控制、测试和文档等工作,必须依靠拥有熟练技术的专业软件人才来完成。
软件测试工程师就是这样的一个企业重头角色。
软件产业的发展,市场对软件质量的不断提高,软件测试不断被重视。
业内人士分析,该职位的需求主要集中在沿海发达城市,其中北京和上海的需求分量分别占去33%和29%。
民企需求量最大,占19%,外商独资欧美类企业需求排列第二,占15%。
软件测试的必要性已经完全为业内决策人士所接受。
因为软件工业已经发展到与其他主要工业相当的规模。
软件测试具有“地位高”,“待遇高”的双高地位称号,前景光明;而且就业门槛低,人才需求量大,可以经过短期职业培训而进入这个行业。
可以说,软件测试人员的就业竞争压力明显小于其他职业。
而且,刚入行的软件测试人员,起步的月薪就在3000-5000左右,远高于同龄人2000元的薪资水品,随着工作经验的丰富以及能力的提升,薪水将一路上涨。
与其他IT职位相比,软件测试人员最大的优势就是发展方向太多了。
由于工作的特殊性,测试人员不但需要对软件的质量进行检测,而且对于软件项目的立项、管理、售前、售后等领域都要涉及。
在此过程中,测试人员不仅提升了专业的软件测试技能,还能接触到各行各业,从而为自己的多元化发展奠定了基础。
如果把软件开发领域比作“男子单打”,那么,软件测试领域就是“混合双打”。
由于工作的特殊性,软件测试人员更要具有认真、耐心、细致、敏感等个性元素,而这在一定程度上与女性的个性气质相吻合。
据了解,很多IT企业中软件测试人员的比例更趋向男女平衡,甚至出现女性员工成主流的情况。
可以说,软件测试这一职业将会成为近年来最火热的职业。
第二章软件测试概述
2.1软件测试的定义和实质
2.1.1软件测试的定义
GrenfordJ.Myers曾对软件测试的目的提出过以下观点:
(1)测试是为了发现程序中的错误而执行程序的过程;
(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;
(3)成功的测试是发现了至今为止尚未发现的错误的测试。
然而,这种观点指出测试是以查找错误为中心,而不是为了演示软件的正确功能.但是只从字面意思理解,可能会产生误导,认为发现错误是软件测试的唯一目的,查找不出错误的测试就是没有价值的测试,实际上并非如此!
(1)测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进;
(2)这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性;
(3)没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法
图2.1.1软件测试的类型图
2.1.2软件测试的实质
软件测试主要工作内容是验证(verification)和确认(validation),下面分别给出其概念:
验证(verification)是保证软件正确地实现了一些特定功能的一系列活动,即保证软件做了你所期望的事情。
(Dotherightthing)
1.确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程;
2.程序正确性的形式证明,即采用形式理论证明程序符号设一计规约规定的过程;
3.评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。
确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。
即保证软件以正确的方式来做了这个事件(Doitright)
软件测试是软件开发过程的重要组成部分,是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求。
软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。
软件测试是为了发现错误而执行程序的过程。
软件测试在软件生存期中横跨两个阶段:
通常在编写出每一个模块之后就对它做必要的测试(称为单元测试)。
编码和单元测试属于软件生存期中的同一个阶段。
在结束这个阶段后对软件系统还要进行各种综合测试,这是软件生存期的另一个独立阶段,即测试阶段。
图2.1.2软件测试生命周期图
2.2软件测试的目的与原则
2.2.1软件测试的目的
(1)确认软件的质量,其一方面是确认软件做了你所期望的事情,另一方面是确认软件以正确的方式来做了这个事件。
(2)提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。
(3)软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。
如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。
因此软件测试的第三个目的是保证整个软件开发过程是高质量的。
软件质量是由几个方面来衡量的:
一、在正确的时间用正确的的方法把一个工作做正确。
二、符合一些应用标准的要求,比如不同国家的用户不同的操作习惯和要求,项目工程中的可维护性、可测试性等要求。
三、质量本身就是软件达到了最开始所设定的要求,而代码的优美或精巧的技巧并不代表软件的高质量。
四、质量也代表着它符合客户的需要。
作为软件测试这个行业,最重要的一件事就是从客户的需求出发,从客户的角度去看产品,客户会怎么去使用这个产品,使用过程中会遇到什么样的问题。
只有这些问题都解决了,软件产品的质量才可以说是上去了。
图2.2.1软件测试过程W模型图
2.2.2软件测试的原则
软件测试从不同的角度出发会派生出两种不同的测试原则,从用户的角度出发,就是希望通过软件测试能充分暴露软件中存在的问题和缺陷,从而考虑是否可以接受该产品,从开发者的角度出发,就是希望测试能表明软件产品不存在错误,已经正确地实现了用户的需求,确立人们对软件质量的信心。
为了达到上述的原则,那么需要注意以下几点:
(1)应当把“尽早和不断的测试”作为开发者的座右铭
(2)程序员应该避免检查自己的程序,测试工作应该由独立的专业的软件测试机构来完。
(3)设计测试用例时应该考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况要制造极端状态和意外状态,比如网络异常中断、电源断电等情况。
(4)一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系。
(5)对测试错误结果一定要有一个确认的过程,一般有A测试出来的错误,一定要有一个B来确认,严重的错误可以召开评审会进行讨论和分析。
(6)制定严格的测试计划,并把测试时间安排的尽量宽松,不要希望在极短的时间内完成一个高水平的测试。
(7)回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多的错误出现的现象并不少见。
(8)妥善保存一切测试过程文档,意义是不言而喻的,测试的重现性往往要靠测试文档。
2.3软件测试的工具
TestPlatform软件测试平台,简称TP,是业界唯一的对软件测试全过程进行支撑的软
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 方法 技术 研究 静态