白盒测试和黑盒测试在动态软件测试中的应用毕业设计论文.docx
《白盒测试和黑盒测试在动态软件测试中的应用毕业设计论文.docx》由会员分享,可在线阅读,更多相关《白盒测试和黑盒测试在动态软件测试中的应用毕业设计论文.docx(48页珍藏版)》请在冰点文库上搜索。
![白盒测试和黑盒测试在动态软件测试中的应用毕业设计论文.docx](https://file1.bingdoc.com/fileroot1/2023-4/28/aaa11ba7-acc7-44d2-ac30-6835a15da6fb/aaa11ba7-acc7-44d2-ac30-6835a15da6fb1.gif)
白盒测试和黑盒测试在动态软件测试中的应用毕业设计论文
湖南人文科技学院
本科生毕业论文
论文题目:
白盒测试和黑盒测试在
动态软件测试中的应用
(英文):
TheApplicationofWhiteBoxTestingandBlackBox
TestinginDynamicSoftwareTesting
学生姓名:
学号
系部:
计算机科学技术系
专业年级:
网络工程2007级
指导教师:
职称:
湖南人文科技学院教务处制
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:
日期:
年月日
导师签名:
日期:
年月日
注意事项
1.设计(论文)的内容包括:
1)封面(按教务处制定的标准封面格式制作)
2)原创性声明
3)中文摘要(300字左右)、关键词
4)外文摘要、关键词
5)目次页(附件不统一编入)
6)论文主体部分:
引言(或绪论)、正文、结论
7)参考文献
8)致谢
9)附录(对论文支持必要时)
2.论文字数要求:
理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
3.附件包括:
任务书、开题报告、外文译文、译文原文(复印件)。
4.文字、图表要求:
1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写
2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。
图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画
3)毕业论文须用A4单面打印,论文50页以上的双面打印
4)图表应绘制于无格子的页面上
5)软件工程类课题应有程序清单,并提供电子文档
5.装订顺序
1)设计(论文)
2)附件:
按照任务书、开题报告、外文译文、译文原文(复印件)次序装订
指导教师评阅书
指导教师评价:
一、撰写(设计)过程
1、学生在论文(设计)过程中的治学态度、工作精神
□优□良□中□及格□不及格
2、学生掌握专业知识、技能的扎实程度
□优□良□中□及格□不及格
3、学生综合运用所学知识和专业技能分析和解决问题的能力
□优□良□中□及格□不及格
4、研究方法的科学性;技术线路的可行性;设计方案的合理性
□优□良□中□及格□不及格
5、完成毕业论文(设计)期间的出勤情况
□优□良□中□及格□不及格
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
建议成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
指导教师:
(签名)单位:
(盖章)
年月日
评阅教师评阅书
评阅教师评价:
一、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
二、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
建议成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
评阅教师:
(签名)单位:
(盖章)
年月日
教研室(或答辩小组)及教学系意见
教研室(或答辩小组)评价:
一、答辩过程
1、毕业论文(设计)的基本要点和见解的叙述情况
□优□良□中□及格□不及格
2、对答辩问题的反应、理解、表达情况
□优□良□中□及格□不及格
3、学生答辩过程中的精神状态
□优□良□中□及格□不及格
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
评定成绩:
□优□良□中□及格□不及格
教研室主任(或答辩小组组长):
(签名)
年月日
教学系意见:
系主任:
(签名)
年月日
湖南人文科技学院本科毕业论文诚信声明
本人郑重声明:
所呈交的本科毕业论文,是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议,除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。
对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。
本人完全意识到本声明的法律结果由本人承担。
作者签名:
二○年月日
白盒测试和黑盒测试在动态软件测试中的应用
摘要:
软件测试是高质量、高可靠性软件的重要保证。
在软件系统的开发中,软件测试不仅是软件生命周期中的一个独立的阶段,在需求分析、软件设计和编码阶段,都需要对这些阶段的软件产品,包括需求规格说明书、软件架构、概要设计和详细设计说明书进行测试。
软件测试已经形成了完整的、系统的测试方法,并且有众多的手工和自动化测试工具支持这些方法。
通过评审文档、阅读代码等方式测试软件称为静态测试,通过运行程序测试软件称为动态测试。
在动态测试中,通常使用白盒测试和黑盒测试从不同的角度设计测试用例,查找软件代码中的错误。
白盒测试和黑盒测试是软件测试中的常用方法。
文章首先介绍了白盒测试和黑盒测试以及两者的应用场合,然后通过一个实例说明在动态软件测试中如何使用这两种方法从不同的角度设计测试用例,确保以最少的测试用例发现尽可能多的错误和缺陷。
银行业务软件以其高复杂性、高安全性、高准确性、高效率性给软件测试带来了一系列难度。
银行业务软件通常由一系列功能相对独立的程序组成,每一个程序完成一个特定的功能(称之为交易)。
而这些特定功能实际由一个或者多个子功能组成,这些子功能彼此之间存在顺序执行或者嵌套执行的关系,这就为程序内部的次模块(次模块是单元测试的最小单元定义,是组成模块的部分,包含若干行源代码,不能被单独执行或者被其他模块调用,逻辑复杂度远低于模块)划分提供了可能。
本文就是以银行业务中处理较简单的活期储蓄存折取款交易为例来说明白盒测试和黑盒测试在动态软件测试中的应用。
先对取款模块的需求进行分析,划出取款模块的程序流程图以及相关的参数说明和数据关系图。
为了以最少的测试用例发现尽可能的错误和缺陷。
主要采用黑盒测试中的等价类划分法、因果图法和判定表法以及白盒测试中逻辑覆盖法,对次模块F(手续费的计算进行分析)。
关键词:
白盒测试;黑盒测试;测试用例
TheApplicationofWhiteBoxTestingandBlackBoxTestinginDynamicSoftwareTesting
Abstract:
Softwaretestingisofhighquality,reliability,thesoftwareto.insoftwaresystemsdevelopment,thesoftwaretestingisnotonlysoftwarelifecycleofanindependent,analysis,theneedsofsoftwaredesignandcoding,theneedforthestageofthesoftwarerequirements,specifications,includingthesoftwarearchitectureanddesignanddetaileddesignspecificationsasummaryoftest.softwaretestinghavedevelopedacomplete,systematictestmethod.Andtherearenumeroushandtoolsandautomatedteststosupportthesemethods.throughthedocuments,readthecodestatically,tosoftwaretestingisthetest,byrunningprogramstosoftwaretestingiscalledactivetest.inthedynamictestsusuallyusecartonoftestandwhiteblackboxfromtheperspectiveofthedifferentdesignfortestingforexample,thesoftwarecode.
Whiteboxtestingandblackboxtestingarefrequentlyusedinsoftwaretesting.Thispaperintroducesthetwomethods.Thenitdemonstrateshowtousethemtodesigntestingcasefromdifferentpointofviewindynamicsoftwaretesting,sothatmoreerrorsorbugscanbefoundwithlesstestingcase.
Bankingsoftwaretotheirhighercomplexityandhighsecurityandhigheraccuracy,efficienttosoftwaretestingofaseriesofdifficulty.theordinarysoftwaretestprocedureandmethodisverydifficulttoalltheclaim.bankingsoftwareusuallybyaseriesoffunctionalrelativelyindependentprogram,eachapplicationtoperformaspecificfunction(callthedeal.buttheseparticularfeatures)actualbyoneormorefunctional,andthesefunctionsarecarriedoutbetweentheorderoranestingrelationship,Forapplicationwithinthefirstmodules(moduleistheunittestingofthesmallestunitsofthemoduledefinition,ispartofthesourcecode,containingseverallines,notbyindividualexecutiveorothermodulescalledalogicalcomplexthan)intomodulesprovides.
Thisisthebankaddressedinasimplecurrentsavingspassbookorwithdrawmoneyforthattransactionasanexampleoftestandblackboxoftestinginthedynamicsoftwaretestapplicationforwithdrawal.thefirstmodulesdemand,andpulloutawithdrawalofthemodulesprogramflowchartandtherelatedparametersinstructionsanddatadiagram.inordertothetestusedasexamplesfoundanddefects.Mainlyusedblacktesttheclassdividedintotheequivalent,andthemethodanddeterminethemethodoftestingandwhiteoverthelogic,tofoftheservicemodules(analysis).
KeyWords:
whiteboxtesting;blackboxtesting;testingcase
第一章绪论
从计算机诞生至今,计算机无疑成为当代发展最为迅猛的科学技术。
今天,计算机己渗透到人们生活的各个方面。
纵观计算机技术的发展历程,特别是近20年来,由于微电子技术的进步,计算机硬件技术飞速发展,其性能价格比显著提高,质量稳步增长,为计算机的广泛应用创造了良好的条件。
作为计算机的灵魂,软件起着举足轻重的作用,但软件技术在产品质量、生产力、成本及性能等众多方面都滞后于硬件技术的发展。
随着软件系统规模和复杂性的增加,其开发成本以及由于软件故障而造成的经济损失也正在增加,软件质量问题已成为制约计算机发展的关键因素之一。
软件测试是对软件功能、设计和实现的最终审定,是发现软件故障,保证软件质量,提高软件可靠性的主要手段。
因此,软件测试在软件开发中起着不可替代的作用。
但是,软件测试费用相当昂贵,通常占到整个软件开发成本的50%左右。
近年来,虽然软件测试技术与实践有了很大的进展,但远未成熟,测试理论、测试方法都无法满足当前软件开发的实际需要。
为此,改进已有的软件测试方法,开发一些实用的测试数据自动生成工具,提高软件测试效率,是软件测试工程师目前乃至今后面临的紧迫而且意义重大的任务。
1.1软件测试概述
信息技术的飞速发展,使软件产品应用到社会的各个领域,且规模越来越庞大,软件产品的质量自然成为人们共同关注的焦点。
原先以手工作坊式方法开发出来的许多软件产品,由于缺乏科学的软件质量管理,因此几乎无法维护,造成大量人力、物力浪费。
如何提高软件质量,保证软件安全性是一个涉及面广、难度很大的课题。
软件测试作为软件质量保证中的关键技术,正受到人们越来越多的关注。
软件测试是伴随着软件的产生而产生的。
早期的软件开发过程中,测试的含义比较狭窄,将测试等同于“调试”,目的是纠正软件中己经知道的故障,常常由开发人员自己完成这部分的工作。
对测试的投入极少,测试介入也晚,常常是等到形成代码,产品己经基本完成时才进行测试。
直到1957年,软件测试才开始与调试区别开来,作为一种发现软件缺陷的活动。
但由于一直存在着“只有产品开始工作了,才能对其进行测试”的思想,测试仍然是后于开发的活动。
潜意识里,我们的目的就是使自己确信产品能够工作。
20世纪70年代,尽管对“软件工程”的真正含义还缺乏共识,但这一词条己经频繁出现。
1972年,在美国北卡罗来纳大学举行了首届软件测试正式会议。
1979年,GlenfordMyers的((软件测试艺术》(TheArtofsoftwareTesting)中做出了当时最好的软件测试定义:
“测试是为发现错误而执行的一个程序或者系统的过程。
”
直到20世纪80年代,美国等发达国家的软件业进入以过程为中心的工业化时代,软件的全面质量管理才开始被人们理解和重视。
软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且包含软件质量评价的内容。
软件开发人员和测试人员开始坐在一起探讨软件工程和测试问题。
制定了各类标准,包括IEEE(InstituteofElectricaland
ElectronicEngineers)标准、美国ANSI(AmericanNationalStandardInstitute)标准以及150(InternationalStandardOrganization)国际标准。
1983年,BillHetzel在《软件测试完全掼》(CompleteGuideofsoftwareTesting)一书中指出:
“测试是以评价一个程序或者系统属性为目标的任何一种活动。
测试是对软件质量的度量。
”MyerS和HetZel的定义至今仍被引用。
到了2002年,RickD.Craig和stefanP.Jaskiel在《系统的软作测试》(Systematic
SoftwareTesting)中对软件测试做了进一步定义:
“测试是为了度量和提高被测软件的质量,对测试件进行工程设计、实施和维护的整个生命周期过程。
”这些经典论著对软件测试研究的理论化和体系化产生了巨大的影。
近20年来,随着计算机和软件技术的飞速发展,软件测试技术研究也取得了很大的突破。
测试专家总结了很好的测试模型,比如著名的V模型、W模型等,在测试过程改进方面提出了TMM(TestingMaturityModel)的概念,在单元测试、系统测试、负载压力测试以及测试管理等方面涌现了大量优秀的软件测试工具。
1.2研究的目的与意义
软件测试是高质量、高可靠性软件的重要保证。
在软件系统的开发中,软件测试不仅是软件生命周期中的一个独立的阶段,在需求分析、软件设计和编码阶段,都需要对这些阶段的软件产品,包括需求规格说明书、软件架构、概要设计和详细设计说明书进行测试。
软件测试已经形成了完整的、系统的测试方法,并且有众多的手工和自动化测试工具支持这些方法。
通过评审文档、阅读代码等方式测试软件称为静态测试,通过运行程序测试软件称为动态测试。
在动态测试中,通常使用白盒测试和黑盒测试从不同的角度设计测试用例,查找软件代码中的错误。
因此要想软件高质量,用怎样的方法设计测试用例是关键。
其中白盒测试和黑盒测试是设计测试用例最常用的方法,尤其在动态软件测试中,通过这两种方法从不同的角度设计测试用例,确保以最少的测试用例发现尽可能多的缺陷和错误。
1.3国内外研究现状
软件测试相关的理论及方法从产生到现在己近四十年了,国内外对于软件测试的研究主要分为测试理论、测试技术、测试评价等方面。
测试理论的研究主要分为测试管理、测试模型等方面。
测试管理实际上属于软件工程的一部分,并被纳入软件质量体系中。
(l)质量体系
质量体系是软件管理工程的三个部分。
软件过程改善是当前软件管理工程的核心问题,50多年来计算机的发展使人们认识到要高效率、高质量和低成本地开发软件,必须改善软件生产过程。
基于模型的过程改进是指用能力模型来指导组织的过程改进,仗过程能力稳定的进行改善,该组织也能变得更加成熟。
美国卡丙基梅隆大学软件工程学院于1987年研究成功的SW/-CMM(CapabilityMaturityModelforsoftware)的目的就在于帮助软件组织改善软件生产流程,以探索一个保证软件质量、缩短开发周期、提高工作效率的软件工程模式与标准规范。
1997年10月SEI(SoftwareEngineeringInstitute)停止对CMM的研究,改而致力于CMMI(CapabilityMaturityModelIntegration),以解决使用多个过程改进模型的问题。
SEI同时宣布CMMI将取代CMM,与2000年8月11日颁布了CMMI-SE/SW1.0版本,2001年12月颁布了1.1版本,这次发布标志着CMMI的正式启用。
根据CMMI的软件生命周期,测试被分为三个阶段:
单元测试;集成测试;系统测试。
这三个阶段的测试在软件生命周期的其他主要阶段分别具有不同的活动性。
而且CMMI充分考虑这三个阶段的测试的不同之处,分别制定不同的操作规范。
CMMI主要从以下三个方面扩充传统的软件测试技术:
第一方面,从单纯的对软件的测试活动,扩展为软件的测试和开发过程的度量。
这一方面主要体现在过程度量对软件测试的依赖和应用。
对开发过程进行度量,需要利用软件及中间成果的测试结果,从而建立对软件缺陷和开发过程的跟踪。
从这一点来说,对开发过程的度量,实际上也就是对软件测试活动的扩展,与传统的软件测试的不同之处就在于关注对软件测试结果数据的分析和利用,将测试数据有效转换为能够标识过程缺陷的统计数据。
第二方