软件测试与V模型(精)
- 格式:ppt
- 大小:252.00 KB
- 文档页数:16
第一章软件测试基础课后习题答案1.什么是软件测试?软件测试发现一个应用从开始到结束时的错误,测试是一个过程。
(Glenford J.Myers 提出对软件测试的定义)测试是发现错误而执行的一个程序或系统的过程测试以发现故障为目的,是为了发现故障而执行程序过程2.软件测试涉及哪几个关键问题?软件测试的经济性原则谁来测试(who)测试什么(what)什么时候测试(when)怎样进行测试(how)测试的停止标准是什么(which)3.为什么说软件需求说明是软件故障的最大来源?软件需求是描述了系统有哪些功能,功能操作,性能如何等问题,是开发阶段的重要文档,也是后期软件开发的重要依据。
如果软件需求一开始就错了,在后面处理过程则会把错误放大,这样使得修复起来成本就是提升。
4.简述软件测试的复杂性和经济性。
复杂性1.完全测试是不现实的2.软件测试是有风险的3.杀虫剂现象4.缺陷的不确定性经济性软件测试是软件生命期中费用消耗最大的环节。
测试费用除了测试的直接消耗外,还包括其他的相关费用5.分析最近发生的软件质量事故,并简要分析产生的原因。
具体案例具体分子6.启动Windows计算器,输入“6,000-6=”(逗号不能少),观察计算结果,这是软件故障吗?为什么?这是软件故障中的界面缺陷。
由于无法输入逗号,无法进行输入,当做一个界面缺陷,因为不符合需求,原本是小数点变成了逗号。
7.软件测试应遵循哪些重要的原则或方针?1.完全测试程序是不可能的2.软件测试是有风险的3.测试无法找到隐藏的软件故障4.存在的故障数量与发现的故障数量成正比5.杀虫剂现象6.并非所有软件故障都能修复7.一般不要丢弃测试用例8.应避免测试自己编写的程序9.软件测试是一项复杂且具有创造性的和需要高度智慧的挑战性任务8.假定无法完全测试某一程序,那么在决定是否应该停止测试时应考虑哪些问题?在工作中,常用的停止测试标准有五类:测试超过了预定时间,停止测试执行了所有测试用例但没有发现故障,停止测试使用特定的测试用例方法作为判断测试停止的基础正面指出测试完成要求,如发现并修改70个软件故障根据单位是见查出故障数量决定是否停止测试9 . 假如星期一测试软件的某一功能时,每小时能发现一个新的软件故障,那么星期二会以什么频率发现软件故障?第一感觉就是与第一天(星期一)的一样,既然前一天发现的频率以每小时都有新的故障,说明软件的缺陷很高,所以第二天也可能有同样的频率。
软件测试的各种过程模型1.V模型V模型是最具有代表意义的测试模型。
在传统的开发模型中,比如瀑布模型,人们通常把测试过程作为在需求分析、概要设计、详细设计和编码全部完成后的一个阶段,尽管有时测试工作会占用整个项目周期的一半的时间,但是有人仍然认为测试只是一个收尾工作,而不是主要过程。
V模型的推出就是对此种认识的改进。
V模型是软件开发瀑布模型的变种,它反映了测试活动与分析与分析和设计的关系,从左到右,描述了基本的开发过程和测试行为,非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系。
如模型图中所示,图中的箭头代表了时间方向,左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即各测试过程的各个阶段。
V模型的软件测试策略既包括低层测试又包括了高层测试,低层测试是为了源代码的正确性,高层测试是为了使整个系统满足用户的需求。
V模型指出,单元和集成测试是验证程序设计,开发人员和测试组应检测程序的执行是否满足软件设计的要求;系统测试应当验证系统设计,检测系统功能、性能的质量特性是否达到系统设计的指标;由测试人员和用户进行软件的确认测试和验收测试,追溯软件需求说明书进行测试,以确定软件的实现是否满足用户需求或合同的要求。
V模型存在一定的局限性,它仅仅把测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段。
容易使人理解为测试是软件开发的最后的一个阶段,主要是针对程序进行测试寻找错误,而需求分析阶段隐藏的问题一直到后期的验收测试才被发现。
2.W模型1、W模型建立V模型的局限性在于没有明确地说明早期的测试,不能体现“尽早地和不断地进行软件测试”的原则。
在V模型中增加软件各开发阶段应同步进行的测试,被演化为一种W模型,因为实际上开发是“V”,测试也是与此相并行的“V”。
基于“尽早地和不断地进行软件测试”的原则,在软件的需求和设计阶段的测试活动应遵循IEEEstd1012-1998《软件验证和确认(V&V)》的原则2、W模型应用相对于V模型,W模型更科学。
摘要随着社会的发展和计算机技术的提高,软件系统的规模在不断扩大,软件需求也日益复杂,对软件质量的要求也越来越高。
软件测试技术就是保证软件质量最主要的手段,它可以有效地提高软件的可靠性。
本文针对测试过程模型和测试方法对软件测试进行了研究。
在整个测试过程模型的发展历程中,先后出现了瀑布模型、V模型、W模型、前置测试模型等多个具有代表性的测试过程模型,它们都从不同的角度对测试进行了阐述。
在本文中,通过对这些模型进行分析和归纳,秉持着要把测试融入到整个软件开发生命周期的理念,对每一个测试阶段中间交付的产品和文档的变化都进行修改测试。
并且随着全球化发展的程度越来越高,要求软件的适用范围越来越广,对软件进行国际化测试,保证其符合相应的语言环境和文化习惯,使软件更适应全球市场经济的发展。
在软件测试的过程中,生成测试用例是软件测试的关键和难点。
好的测试用例可以有效地降低测试的复杂度,提高软件测试的质量和效率。
基于形式规格说明具有准确性和无二义性的特点,本文提出了一种基于Z规格说明生成测试用例的方法,使用分类树的方法和域测试策略技术有效地产生了正确测试用例、错误测试用例和边界测试用例,并且通过实例进行了进一步的说明。
关键字:测试过程模型,形式规格说明,分类树,域测试AbstractWith the development of the society, the improvement of the computer science and the scale of the software system continue to expand, the demand for the software quality requirements have become more and more sophisticated. The software testing, which can improve software reliability effectively, is the main means to ensure the software quality.In this paper, research on software testing focuses on testing process models and testing methods.In the developing of testing process models, waterfall model、V model、W model、pre-test model which are representative , have appeared in turns. They describe the testing from the different aspects. In this paper, through analyze and summarize those models, and uphold the concept what puts testing into the whole life cycle of software development, the model tests all the intermediate deliverables products and documents of every stage after modified. With increasingly globalize, the applicable scope of software is demanded more and more widely. International testing makes sure software conform the language environment and cultural practices, and makes software adapt to the global market economy.In the testing process, the important point is the generation of test cases. A good test case can reduce the complexity effectively and improve the quality of the software testing. Based on the formal specification characteristics of accuracy and unambiguous, this paper presents a method which is based on Z specification to generate test cases. Using the classification tree and domain testing strategies effectively generate the right test case, the wrong test case and the boundary test case. At last, an example is given to practice this method.Key words: testing process model, formal specification, classification tree, domain testing独 创 性 声 明本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。
第2章软件测试过程模型及标准第一节回顾1.软件过程模型:软件开发全部过程、活动和任务的结构框架也称软件开发模型或软件生存周期模型2.典型的软件过程模型:瀑布模型,演化模型,增量模型,原型模型,螺旋模型,喷泉模型,基于构件的开发模型,形式方法模型3.瀑布模型(包含计算机系统工程)(如图所示)将软件放在计算机系统工程中,考察软件在计算机系统扮演什么角色,软件做什么,区分哪些事情由硬件完成,哪些事情软件完成,哪些事情由人完成。
4.瀑布模型(不包含计算机系统工程)(如图所示)第二节软件测试过程模型1.模型:描述软件测试全部过程、活动和任务的结构框架2.典型的软件测试模型:2.1V模型2.2W模型2.3H模型2.4TMap模型第三节V模型1.V模型描述软件开发各阶段与软件测试类别的关系2.V模型的左分支展示了软件开发的活动(和传统瀑布模型的开发步骤相一致),右分支展示了软件测试的类别特点:3.可根据V模型确定各软件测试阶段的测试要求4.可针对开发活动的不同特点为不同的测试类别设计不同的测试用例5.体现测试人员参与开发的全过程6.V模型(含计算机系统工程)(如图所示)7.V模型(不含计算机系统工程)(如图所示)8.V模型右侧的测试级别随软件开发程度的加深而对应不同级别的测试阶段a)单元测试:主要针对详细设计和编码的测试b)集成测试:主要针对概要设计的测试c)系统测试:主要针对软件系统或计算机系统的测试d)验收测试:主要由用户进行的测试缺点:V模型把测试过程作为在需求定义、需求分析、系统概要设计、系统详细设计及编码之后的一个阶段。
容易使人理解为测试是软件开发的最后阶段,测试主要针对程序进行,而需求定义、需求分析、系统概要设计、详细设计阶段隐藏的问题一直到后期的系统测试和验收测试才被发现。
第四节W模型1.V模型中增加各开发阶段应同步进行的验证和确认活动,演化成W模型2.W模型由两个V组成,一个V代表开发过程,另一个V代表测试过程优点:3.体现了尽早地、不断地进行软件测试4.体现了测试对象不仅是程序代码,还包括需求分析、设计等阶段的工作产品,测试与开发同步进行。
软件开发与测试模型1.软件开发模型(1)基本概念软件开发⽣命周期模型是软件产品从最初构思到退役的过程。
(2)常见的开发模型⼤爆炸模型、边写边改模型、瀑布模型、螺旋模型、敏捷软件开发a.⼤爆炸模型直接冲过河去。
⼀⼤堆东西(⼈⼒和资⾦)放在⼀起,巨⼤的能量释放,要么产⽣了优秀的产品,要么是⼀堆废品。
特点⼤爆炸模式是最简单的软件开发模式,计划、进度安排和正规开发过程都⼏乎没有,所有精⼒都花在开发软件和编写代码上;⼀般,⼤爆炸模式⼏乎没有测试,即使有也要挤在产品发布前,通常都会避免在此模式下进⾏测试。
b.边写边改模型摸着⽯头过河。
项⽬⼩组在未刻意采⽤其他开发模式时默认的开发模式。
它在⼤爆炸模式基础上更进了⼀步,⾄少考虑到了产品需求。
开发⼩组通常最初只有粗略的想法,接着进⾏⼀些简单的设计,然后开始漫长的来回编写、测试和修改缺陷的过程,直到觉得⾜够才发布产品。
特点此种模式没有计划和⽂档编制,项⽬能够迅速展现成果,所以⽐较适合⽤完就扔的项⽬;与⼤爆炸模式类似,测试在边写边改模式中未特别强调,但是在编写代码和修复缺陷过程中举⾜轻重;软件测试会陷⼊⽆休⽌的循环往复,因为每天都可能在测试新版本;此种模式是测试期间最有可能碰到的模型。
c.瀑布模型制定周密计划。
1970年,温斯顿·罗伊斯(WinstonRoyce)提出,直到80年代早期,它⼀直是唯⼀被⼴泛采⽤的软件开发模型。
采⽤瀑布模式的项⽬从最初的构思到最终产品要经过⼀系列步骤。
每⼀个步骤结束时,项⽬⼩组组织审查,并决定是否进⼊下⼀步。
如果项⽬未准备好进⼊下⼀步,就停滞下来直到准备好。
特点从测试的⾓度看来,瀑布模式⽐截⾄到⽬前为⽌的其他模式更有优势。
瀑布模式所有⼀切都有完整细致的说明。
当软件提交到测试⼩组时,所有细节都已确定并有⽂档记录,⽽且实现在软件之中。
由此,测试⼩组得以制定精确的计划和进度。
测试对象⾮常明确,在分辨是功能还是缺陷上也没有⼀点问题。
在瀑布模型中,测试被认为是在软件开发过程的后期阶段进⾏的“⼀次性”活动,这带来⼀个巨⼤的缺点,因为测试仅在最后进⾏,所以⼀些根本性问题可能出现在早期,但是直到准备发布产品时才可能发现。
几种比较常见的测试模型汇总:V模型V模型最早是由Paul Rook在20世纪80年代后期提出的,旨在改进软件开发的效率和效果。
V模型反映出了测试活动与分析设计活动的关系。
从左到右描述了基本的开发过程和测试行为,非常明确的标注了测试过程中存在的不同类型的测试,并且清楚的描述了这些测试阶段和开发过程期间各阶段的对应关系。
V模型指出,单元和集成测试应检测程序的执行是否满足软件设计的要求;系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标;验收测试确定软件的实现是否满足用户需要或合同的要求。
但V模型存在一定的局限性,它仅仅把测试作为在编码之后的一个阶段,是针对程序进行的寻找错误的活动,而忽视了测试活动对需求分析、系统设计等活动的验证和确认的功能。
W模型(也叫双V模型)W模型由Evolutif公司公司提出,相对于V模型,W模型增加了软件各开发阶段中应同步进行的验证和确认活动。
W模型由两个V字型模型组成,分别代表测试与开发过程,图中明确表示出了测试与开发的并行关系。
W模型强调:测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等同样要测试,也就是说,测试与开发是同步进行的。
W模型有利于尽早地全面的发现问题。
例如,需求分析完成后,测试人员就应该参与到对需求的验证和确认活动中,以尽早地找出缺陷所在。
同时,对需求的测试也有利于及时了解项目难度和测试风险,及早制定应对措施,这将显著减少总体测试时间,加快项目进度。
但W模型也存在局限性。
在W模型中,需求、设计、编码等活动被视为串行的,同时,测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。
这样就无法支持迭代的开发模型。
对于当前软件开发复杂多变的情况,W模型并不能解除测试管理面临着困惑。
X模型X模型是由Marick提出的,他的目标是弥补V模型的一些缺陷,例如:交接、经常性的集成等问题。
X模型的左边描述的是针对单独程序片段所进行的相互分离的编码和测试,此后将进行频繁的交接,通过集成最终合成为可执行的程序。
V模型是软件测试过程中常见的一种模型,它反映了了开发过程和测试过程的关在测试系,软件的过程中起着重要的作用。
在这种模型的测试过程中,首先,进行可行性研究需求定义,然后以书面的形式对需求进行描述,产生需求规格说明书。
之后,开发人员根据需求规格说明书来对软件进行概要设计,测试人员根据需求规格说明书设计出系统测试用例。
概要设计之后,开发人员根据概要设计对软件进行详细设计,测试人员根据概要设计设计出集成测试用例。
详细设计之后,开发人员根据详细设计进行编码,测试人员根据详细设计设计出单元测试用例。
编码完成之后,测试人员根据单元测试用例对设定的软件的测试单元进行测试,单元测试完成之后,进行集成测试,然后进行系统测试,最后进行验收测试。
开发过程中每个阶段的目标及具体活动的描述:第一阶段:名称:需求分析目标:明确用户需求,并对需求进行分析具体活动的描述:通过和用户进行充分的沟通,了解用户的需求,然后对用户的需求进行分析,然后需要将整理好的需求分析转交给用户,以便用户对自己的需求进行确认。
需求分析做好以后,转交给概要设计人员和测试部门,概要设计人员以需求分析为依据对软件进行概要设计,测试部门也以需求分析为依据对软件做出系统测试的测试用例。
第二阶段:名称:概要设计目标:对软件进行整体的、概要的设计具体活动的描述:概要设计过程中,主要需要明确设计出如下三点,即系统架构、各个模块功能的设计和模块与模块之间的接口。
明确系统架构,即需要确定系统在实现过程中需要应用哪种应用服务模式;明确各个模块功能的设计,即需要明确说明各个模块及各个模块需要完成什么功能;明确模块与模块之间的接口,既需要明确模块和模块进行通信的规则。
第三阶段:名称:详细设计目标:对软件进行伪码的设计具体活动的描述:设计出实现模块所需要的类、方法等;第四阶段:名称:编码目标:具体实现详细设计说明书中的类、方法等具体活动的描述:根据详细设计说明书中指明的类、方法等实现设计编写出符合说明的代码测试过程中每个阶段的目标及具体活动的描述:第一阶段:名称:单元测试目标:验证和确认代码的开发是否符合详细设计的要求,记录测试结果具体活动的描述:( 1)设定最小的测试单元(2)对最小的测试单元进行测试第二阶段:名称:集成测试目标:验证和确认测试过的各模块是否能完好地结合到一起具体活动的描述:( 1)检测整个系统能否编译成功(2)检测系统架构和模块是否有问题(3)检测模块和模块之间的接口是否有问题,记录测试结果第三阶段:名称:系统测试目标:对最终软件系统进行全面的测试,从而验证和确认系统功能、性能的质量特性是否符合需求规格说明书的要求具体活动的描述:运行整个系统,根据系统测试用例执行测试,记录测试结果第四阶段:名称:验收测试目标:验证和确定软件的实现是否满足用户需要的要求具体活动的描述:系统安装就绪后按照期望见到的运行条件运行系统总结:V模型中的过程从左到右,描述了基本的开发过程和测试行为。