软件测试的重要性课件

软件测试的重要性课件
软件测试的重要性课件

软件测试的重要性

前言:软件迅猛发展凸现软件测试问题

随着软件业蓬勃发展,各种软件需求纷繁而来,在潮起潮落的IT洪流中,软件项目越来越凸现大型化、复杂化的发展趋势。几十人上百人的开发团队、成千上万的模块与接口、跨地域、跨系统的使用用户等情况早已屡见不鲜,所有这些,对项目质量管理提出了更高要求,如何满足各方需求,做出更好的软件系统?测试管理逐渐成了大家目光的焦点。

软件的质量靠什么,靠管理、靠各个软件过程的严密配合。但勿庸置疑,质量的守护是靠测试。它就象一只看门狗,认真守护着软件质量这个“家”。

软件测试的重要性

测试是什么?测试就是对项目开发过程的产品(编码、文档等)进行差错审查,保证其质量的一种过程。

软件业的迅猛发展也就是近几十年的过程,时间虽短,但许多误解似乎已根深蒂固,对测试的偏见也是如此。“软件的重点在于需求、在于分析、在于设计、在于开发,而测试,容易,没什么技术含量,找一些用户,对照需求尽力去测就行了;有时间多测点,没时间就少测点。”这种看法在许多项目经理、软件负责人的心中固守着,难以改变。

这种观念的结果有目共睹,是什么?很简单,是大量软件BUG、缺陷的“流失”,从测试人员手中悄然而过,流失到用户手中,流失进项目维护阶段。随之而来的,便是用户无休止的抱怨、维护人员无休止的“救火”、维护成本无休止的增加。这是软件人员的梦魇!

恶梦总有醒来时,经过无数教训的重击,在不堪回首而不得回首的经历中,软件业的管理者发现:是他们错了,软件测试是不可忽视的。

“所有这些问题,假如在项目中测试到的话,便不会有造成不可收拾的结果了。”――人们终于意识到测试简单而纯真的真谛。

软件测试

软件测试从直观上来讲是对测试对象进行检查、验证,似乎很简单,但实际不然,它是由许多处理环节构成的。根据测试目标、质量控制的要求,它被划分为以下各类环节(如下图),并被设置了不同的准入、准出标准。

测试的主要过程及活动如上图所示,内容一目了然,在此就不一一详述了,只希望通过对测试重点问题、关注热点的介绍,帮助大家对测试管理有一个总体的把握。

测试方式中普遍存在的问题与点评

谈到测试,我们无法回避的是当前软件过程普遍存在的测试问题:

1、手工过多,缺少测试工具,自动化测试方式缺失。

传统的项目测试还是以手工为主,测试人员根据需求规格说明书的要求,与测试对象进行“人机对话”。随着软件业的不断发展及软件规模的扩大,这种测试的弊端日益明显:

·大量的手工使项目人力成本、沟通成本居高不下;

·人工操作的低效率使项目耗时增加,带来进度风险;

·人员素质及其他不确定因素会影响手工测试的结果,导致差错率的增加。

·在测试过程中,需要对测试案例库进行统一配置管理,项目规模的激增使手工管理案例库的难度日益加大,尤其是在需求变更、回归测试频繁发生的时候。

从古到今,当生产率阻碍了生产力的发展的时候,必然会引入更高级的生产工具及方式。项目测试也是这个道理,引入工具,引入自动化测试及管理,是项目测试的一大趋势。

2、缺乏文档测试、检查。

文档是项目的重要产品之一,产品需求、功能分析、架构设计、详细设计、用户手册、维护手册等等,对于项目的测试、上线、维护等过程起到至关重要的参考、指导作用,所以它们的质量应该是项目重点关注点之一。令人遗憾的是,许多软件项目对于文档的重视只停留在口头上,“编码第一”的观念似乎根深蒂固。

随着需求不断变更、补充,业务、技术人员忙于应付,无法腾出精力来进行文档内容的修改及完善,往往是将包含需求变更内容的工作联系单往需求文档后一附了事,而不去更新需求与其他相关文档;另一方面,项目变更管理还不够完善,管理重点往往集中于开发,而轻视文档质量管理,未留出充分的文档更新时间,导致文档更新严重滞后于编码进度。为保证文档质量,必须定期进行文档测试,但测试要花成本,项目高层不愿意付此代价。

文档若可读性低,便会影响用户的理解;若与编码不一致,便起不到参考作用,编码测试就没有可靠的测试依据。路都看不清楚,怎么往前走呀?所以,强烈建议进行文档测试,并将其置于测试管理的首位。

当前文档测试的方法没有什么特别的形式,还缺乏测试工具支持,通常是通过静态审查方

式――“走查”来进行的,主要查看文档的可读性,内容真实性、可靠性、全面性。另外,在项目里程碑时期召集相关领域专家对重要文档进行集中审核,也是一种检查方式。

3、单元测试应引入交叉测试方法;

单元测试是对软件基本组成单元进行的测试,测试对象是软件模块。通常,单元测试是由开发人员来完成,而且往往是各人测各人的。这存在问题隐患。

为什么呢,技术人员是软件模块的制造者,自己来测自己的软件的话,角色便从制造者变成了审查者,而前一个角色的目的是为了保证软件正确,后一个角色的目的是为了发现更多的缺陷,让一个人同时来扮演两种目的不同的角色,好比让他既当裁判员又当运动员,怎么能做好呢?

解决方法通常有两种,一种是:由测试人员来进行单元测试,这种方式要求测试人员要有较高的软件技术知识;另一种是:将软件人员分组,在模块开发告一段落时进行交叉测试,这种方法只需要测试者了解被测方的软件需求,不需要另外的知识培训,而且测试出发点较为客观,所以被较普遍的推广使用。

4、测试在开发基本完成才启动;

在传统的瀑布型开发模式中,软件测试位于编码阶段之后,是作为一个独立阶段存在的,许多人便一刀切地认为应该将所有的测试工作在编码完成后再开始。这个观点要不得,原因有二:

首先,若将测试工作细分,有许多工作是可以提前先期执行的,如:需求书与设计书的学习、测试计划的制定、测试人员的培训、测试脚本的建立、测试资源的搭建、测试模板的创建、测试工具的选择等等,都是可以与其他阶段并行处理的,这将大大缩短项目开发时间,为测试提供充分的时间保障,提高测试质量。

其次,软件缺陷发现的越晚,修改、补救所耗费的成本越高。引用Boehm在《Software Engineering Economics》一书中的话――“平均而言,如果在需求阶段修证一个错误的代价是1,那么,在设计阶段就是它的3-6倍,在编程阶段是它的10倍,在内部测试阶段是它的20—40倍,在外部测试阶段是它的30-70倍,而到了产品发布出去时,这个数字就是40-1000倍。”由此可见,测试目标的最佳定位应该是:在错误第一次出现的时候就捕捉到它。所以,在尽可能的情况下,测试越早展开越好。

在项目的各个进行阶段,都有不同的项目产品产生,他们质量的好坏,对后续开发影响重大,所以,现在国际上比较流行的做法是:将测试融合到各个开发环节中去,尽早测试。

5、测试案例、测试方案的重用率低下。

传统的测试过程,测试管理不严密,测试人员未建立完整的测试库,未将测试案例、测试程序、测试方案进行有效保存,等到回归测试时,相关测试程序等往往已不知所终,无处可寻了;即使能找到这些程序、案例,可往往因为回归测试过于频繁、项目期限日益迫近,已经没有时间余量来修改、完善这些程序及案例,只能凭借经验、记忆及技术人员的口述对程序修改过的地方草草重测一遍而已,缺乏正规化的测试过程,造成测试的虎头蛇尾。

正常的测试案例使用方式如上图,测试设计阶段,相关测试设计人员会对测试对象进行了解、分析,为保证测试顺利进行,保证测试覆盖尽量多的测试对象,会设计测试案例、测试方案,在测试期间进行使用;测试发现错误时,软件技术人员会根据测试的缺陷反馈结果及技术人员的软件修改信息对测试程序进行修改,完毕后再进行回归测试。

6、测试人员素质低,缺乏相关知识培训。

项目管理人员对测试存有偏见,对于测试的重要性认识不足,导致其严重忽略测试

人员的选拔和知识培训。许多软件项目让软件用户或新招收的技术人员来完成测试工作,他们认为测试人员的工作很简单,就是技术人员让测什么就测什么,它基本是一个动手不动脑的工作。

这样做的后果进一步导致了测试工作的无序和混乱,测试过程缺乏计划性,测试人员缺乏技术能力,缺乏对架构的了解,相关素质的缺失使他们成为技术人员的附庸。测试对于他们来说,是一种枯燥的“手+眼”式的工作,他们唯一渴望的,是将无聊的测试尽快完成,从而远远的逃离。这样的测试结果可想而知。

其实,软件工程对测试人员的素质要求是很严格的,比如:要有相关计算机知识背景、具备软件工程基本知识、熟悉项目编程语言、熟悉项目技术架构及需求内容、工作有责任感、独立分析能力及团队精神等等。真正规范的软件项目对于测试人员的要求是不会低于技术人员的,而且会为测试人员提供进一步的知识培训机会,以应对各种项目的复杂情况。

7、测试进度的错误估算。

在项目开发中,领导为督促测试的进程,往往会让项目组汇报工作进度,了解已经

完成的工作占比,从而对工作进度做出判断。我对这种工作方式完全拥护,只是觉得这种方式还有不足。

测试进程不是简单的1+1过程,不能武断地认为“我用8天干完了80%的工作,那么,剩余工作便能在2天内干完”。著名的Pareto80/20规律告诉我们:测试发现的所有错误中的80%很可能集中在20%的程序模块中,另外20%很可能集中在80%的程序模块中。所以,没有对测试对象认真分析的基础,单凭工作完成数量而对工作进度做出的的判断往往是错误的。

我认为,“工作实际进度=工作完成量占比+测试对象的错误占比分析”才是一个较合理的测试进度估算方式。

测试新思路:

项目的开发风险来自于对需求的误解,来自于设计与开发过程及产品的缺陷,只有尽早发现这些缺陷,才能降低并控制项目风险。基于这种思想,软件业出现了一些新的测试思路,主要有二:

1、测试驱动开发(Test-Driven Development,简称TDD)。这种测试思想被最近流行的XP(Extreme Programming)极限编程方式所大力提倡。它的基本思想是,通过测试来为编程做指导,在某个要开发的需求对象明确之后,在编码之前,先进行相关测试代码(测试代码的内容和需求规格说明书描述是相同的,有人把它称为“可执行的需求规格说明书”)的编写工作,完成之后针对测试代码进行编程,然后再用测试程序对开发代码进行测试,验证其正确性,若程序通过了测试,就说明它是符合需求规格说明书要求的。周而复始,通过这样的过程,开发进程得以层层深入,直到开发完成。而这时单元测试也基本完成了。

这种测试方式的最大的好处是,尽早地发现设计、开发中存在的问题,避免传统开发模式中的“测试过程中发现代码不能满足需求而导致的大量返工”。降低项目风险;同时可以尽早地将“半成品”展示给客户,使客户对需求进行验证、补充及完善,另外测试代码的表达方式相对准确、无二义性,可以降低因需求理解错误而导致的项目风险。

2、迭代测试。这种测试是IBM所推崇测试方式之一,它从迭代式开发模式演变而来。在迭代开发模式中,每个迭代都包含需求、设计、编码、集成、测试等过程。在每一次迭代完成之后,便会开始新的迭代过程。通过一次次迭代的累进,系统会增量式集成一些新的功能,直至整个系统功能的完成。其中,每个迭代周期的测试工作由两方面内容构成:

·对当前迭代周期产品的增量测试。

·对前迭代周期已完成功能的回归测试。

随着迭代周期的累进,测试工作内容随之不断变化。早期迭代测试重点在于新功能的测试,后期迭代测试重点在于累积功能的回归测试。

有的人不喜欢XP编程的开发方式,认为其没有明确的阶段性划分,不利于计划管理,模式过于灵活,不好掌握。迭代式开发模式为这些人提供了新的选择。这种开发方式继承了瀑布式开发模式的优点――全面、严谨、有计划性、易管理,更重要的是,这种模式将测试工作分布到每个迭代周期中,使测试工作提前进行,从而使将发现软件缺陷的周期提前,大大降低软件风险及开发成本。

测试过程的衡量

测试过程在不断地改进,但效果如何,如何来衡量测试的效果呢?我们需要引入一把尺子,

一个度量标准,这样才能把握测试过程的改进方向。那么,怎样来收集数据,如何来度量?这是我们长久以来一直困惑的地方。

我们不妨借助“他山之石”来想想办法,CMMI是当今国际流行的软件过程衡量模型,它在这方面是有自己的独到之处的:

1、面向全局。CMMI的测试度量面向的不仅仅是测试过程的改进,测试效果的加

强,它面向的是整个开发过程,并始终将质量监督放在工作首位。比如,它度量工作产品规模(例如代码行数),度量工作量和成本(例如人工小时数)。我们从中搜集的数据对整个开发过程的改进都有指导作用。更高的起点可使我们避免项目管理改进过程中常见的“头痛医头、脚痛医脚”毛病。

2、建立度量数据库,从而对搜集的数据、分析的方式及结果进行完整、规范的

保存。这个数据库面向的是软件开发过程的持续改进,它的数据是可复用的,可供多个项目参考使用,不随当前项目的结束而消失,而是会作为历史信息持续保存,从而为测试及其他软件过程的改进提供更客观、更全面的度量数据。

3、关注度量、分析过程的改进。度量过程是为了对测试及其他软件过程的改进提

供参考依据,它自身运作方式的合理性直接会影响度量结果的准确性。CMMI避免了“灯下黑”现象的出现,它没有忽略测量分析度量过程的改进,它会定期召集受影响的受益者一起审查初始分析结果,总结本过程运作中遇到的经验教训,从而对度量过程方式进行改进,保证度量结果的正确性,可参考性。

CMMI度量方式的优点往往是我们所忽略的,我们应尽力学习它的这些长处,这对软件测试过程的改进会很有帮助。

结束语

测试很重要,它是检验开发结果是否接近预期目标的重要手段,但我们应清楚地认识到:它毕竟只是一种信息反馈过程,作为软件质量的守护者,它可以发现缺陷,但无法避免缺陷的发生,我们不能将软件质量的安危都押在测试这个砝码上。

曾看过一个比喻,还记忆犹新,它将软件开发比喻成制作一桌盛宴,项目经理比作大厨,测试人员比作品尝师,用户则比作就餐者。为保障饭菜质量,上菜之前,先由品尝师对满桌的半成品、准成品逐个品尝,发现不足的地方要及时通知大厨进行改进,完善质量,直至品尝师觉得:全部的饭菜已经色、香、味俱佳,满足用户要求了,才通过审查,允许饭菜上桌,供就餐者品尝。我想说的是:饭菜质量靠品尝师的监督,但主要靠的是大厨的技术,同理,软件的质量则是靠各个项目管理过程的互相配合及项目经理的整体控制和把握,测试只是其中的一份子。所以,请不要将软件的质量都交给测试过程来承担,那样将是“生命不能承受之重”。

软件测试名词解释、简答题以及综合题(含答案)

一、名词解释题 1、测试用例 测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。测试用例是执行的最小实体。 2、驱动模块 驱动模块是在进行单元测试时所设置的一种辅助测试模块,它用来模拟被测试模块的上一级模块,相当于被测模块的主程序。驱动模块在单元测试中接收数据,把相关的数据传送给被测试的模块,启动被测模块,并打印出相应的结果。 3、回归测试 在集成测试策略的环境中,回归测试是对某些已经进行过的测试的某些子集再重新测试一遍,以保证上述改变不会传播无法预料的副作用或引发新的问题。在更广的环境里,回归测试就是用来保证(由于测试或者其他原因的)改动不会带来不可预料的行为或者另外的错误。 4、静态测试 静态测试是指不利用计算机运行被测程序,也就是说,计算机并不真正运行被测试的程序,而是通过其他手段达到检测的目的。静态测试是对被测程序进行特性分析的一些方法的总称。 5、桩模块 桩模块是在进行单元测试时所设置的一种辅助测试模块,它用来模拟被测试模块工作过程中所调用的模块。桩模块由被测模块调用,它们一般只进行很少的数据处理,以便检验被测模块与其下级模块的接口。 6、强度测试 强度测试的目的是要检测非正常的情形,测试是想要破坏程序。强度测试需要在反常规数据量、频率或资源的方式下运行系统,以检验系统能力的最高实际限度。 7、软件测试 软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复查。它是软件质量保证的关键步骤。通常对软件测试的定义有两种描述: 定义1:软件测试是为了发现错误而执行程序的过程。 定义2:软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例运行程序,以及发现错误的过程。 8、自动化测试 自动化测试得一般定义为:各种测试活动的管理与实施,包括测试脚本的开发与执行,均使用一种自动化测试工具来验证测试的需求。 9、动态测试 动态测试的主要特征是计算机必须真正运行被测试的程序,通过输入测试用例对其运行情况(即输入与输出的对应关系)进行分析,达到检测的目的。 10、独立路径 某一程序的独立路径是指从程序入口到程序出口的多次执行中,每次至少有一个语句集(包括运算、赋值、输入/输出或判断)是新的和未被重复的。 二、问答题 1、软件测试涉及哪些关键问题? 软件测试涉及的关键问题包括以下四个方面: (1)测试由谁来执行。通常的做法是开发者(机构或组织)负责完成自己代码的单元测试,而系统测试则由一些独立的测试人员或专门的测试机构进行。 (2)测试什么。软件需求规格说明、概要设计规格说明、详细设计规格说明和源程序都是测试的对象。 (3)什么时候进行测试。测试可以是一个与开发并行的过程,还可以是在开发完成某个阶段任务之后进行,或者是在开发结束后再进行测试。 (4)怎样进行测试。根据软件的功能规范说明和程序实现,利用各种测试方法,生成有效的测试用例,对软件进行测试。 2、简述软件测试过程的流程。 软件测试过程按测试的先后次序可分为:单元测试、集成测试、确认(有效性)测试、系统测试和验收(用户)测试共5 项步骤。 (1)单元测试:针对每个单元的测试,以确保每个模块能正常工作为目标。

软件测试课后习题

百度文库- 让每个人平等地提升自我 目录 第1章软件测试概述 (1) 第2章软件测试方法与过程 (4) 第3章黑盒测试 (7) 第4章白盒测试方法 (13) 第5章软件测试管理及自动化测试基础 (18) 第6章WINRUNNER测试工具 (20) 第7章LOADRUNNER测试工具 (22) 第8章JUNIT (24)

第1章软件测试概述 1.简述软件测试的意义。 解:随着计算机技术的迅速发展和广泛深入的应用,软件质量问题已成为开发和使用软件人员关注的焦点。而由于软件本身的特性,软件中的错误是不开避免的。不断改进的开发技术和工具只能减少错误的发生,但是却不可能完全避免错误。因此为了保证软件质量,必须对软件进行测试。软件测试是软件开发中必不可少的环节,是最有效的排除和防治软件缺陷的手段,是保证软件质量、提高软件可靠性的最重要手段。 2.什么是软件缺陷?它的表现形式有哪些? 解:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需实现的某种功能的失效或违背。 它的表现形式主要有以下几种:(1)软件未达到产品说明书中已经标明的功能;(2)软件出现了产品说明书中指明不会出现的错误;(3)软件未达到产品说明书中虽未指出但应当达到的目标;(4)软件功能超出了产品说明书中指出的范围;(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。 3.简单分析软件缺陷产生的原因,其中那个阶段引入的缺陷最多,修复成本又 最低? 解:软件缺陷产生的主要原因有:需求规格说明错误;设计错误;程序代码有误;其他。其中在需求分析阶段引入的缺陷最多,修复的成本又最低。 4.当用户登录某网站购物完毕并退出后,忽然想查查购物时付账的总金额,于 是按了浏览器左上角的“退回”按钮,就又回到了退出前的网页,你认为该购物软件有缺陷吗?如果有,属于哪一类? 解:有缺陷。其所属类别与软件产品说明书的要求有关。 5.什么是软件测试?简述其目的与原则。 解:软件测试是为了尽快尽早地发现在软件产品中所存在的各种软件缺陷而展开的贯穿整个软件开发生命周期,对软件产品(包括阶段性产品)进行验证和确认的活动过程。 测试目的:(1)证明:获取系统在可接受风险范围内可用的信心;尝试在非正常情况和条件下的功能和特性;保证一个工作产品是完整的并且可用或可被集成。(2)检测:发现缺陷、错误和系统不足;定义系统的能力和局限性;提供组件、工作产品和系统的质量信息。(3)预防:澄清系统的规格和性能;提供预防或减少可能制造错误的信息;在过程中尽早检测错误;确认问题和风险,并

软件测试的意义

测试的基本概念 测试是软件生存周期中十分重要的一个过程,是产品发布、提交给最终用户前的稳定化阶段。 1、测试的分类: 从测试方法的角度可以分为手工测试和自动化测试。 手工测试:不使用任何测试工具,根据事先设计好的测试用例来运行系统,测试各功能模块。 自动化测试:利用测试工具,通过编写测试脚本和输入测试数据,自动运行测试程序。目前最常用的自动化测试工具是基于GUI的自动化测试工具,基本原理都是录制、回放技术。 从整体的角度可以分为单元测试、集成测试、系统测试、确认测试。 单元测试:是针对软件设计的最小单位—程序模块,进行正确性检验的测试工作。一般包括逻辑检查、结构检查、接口检查、出错处理、代码注释、输入校验、边界值检查。 单元测试的依据是系统的详细设计;一般由项目组开发人员自己完成。 集成测试:在单元测试的基础上,将所有模块按照设计要求组装进行测试。一般包括逻辑关系检查、数据关系检查、业务关系检查、模块间接口检查、外部接口检查。 系统测试:系统测试是在所有单元、集成测试后,对系统的功能及性能的总体测试。 确认测试:模拟用户运行的业务环境,运用黑盒测试方法,验证软件系统是否满足用户需求或软件需求说明书中指明的软件特性(功能、非功能)上的。 从测试原理上分为:白盒测试、黑盒测试和灰盒测试。 白盒测试:是通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。 黑盒测试:是通过使用整个软件或某种软件功能来严格地测试, 而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的。测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。在测试时,把程序看作一个不能打开的黑盆子, 在完全不考虑程序内部结构和内部 特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求 规格说明书的规定正常使用,程序是否能适当地接收和正确的输出。黑盒测试

软件测试技术基础教程习题解答

一、选择题 1. 软件测试的目的是 C 。 A.表明软件的正确性 B.评价软件质量 C.尽可能发现软件中的错误 D.判定软件是否合格 2. 下面关于软件测试的说法, A 是错误的。 A.软件测试是程序测试 B.软件测试贯穿于软件定义和开发的整个期间 C.需求规格说明、设计规格说明都是软件测试的对象 D.程序是软件测试的对象 3. 某软件公司在招聘软件评测师时,应聘者甲向公司做如下保证: ①经过自己测试的软件今后不会再出现问题; ②在工作中对所有程序员一视同仁,不会因为在某个程序员编写的程序中发现的问题多,就重点审查该程序,以免不利于团结; ③承诺不需要其他人员,自己就可以独立进行测试工作; ④发扬咬定青山不放松的精神,不把所有问题都找出来,决不罢休; 你认为应聘者甲的保证 B 。 A.①、④是正确的 B.②是正确的 C.都是正确的D.都不正确 4. 软件测试的对象包括 B 。 A.目标程序和相关文档 B.源程序、目标程序、数据及相关文档

C.目标程序、操作系统和平台软件D.源程序和目标程序 5. 导致软件缺陷的原因有很多,①-④是可能的原因,其中最主要的原因包括 D 。 ①软件需求说明书编写的不全面,不完整,不准确,而且经常更改②软件设计说明书③软件操作人员的水平④开发人员不能很好的理解需求说明书和沟通不足 A.①、②、③B.①、③C.②、③D.①、④ 二、简答题 1.简述软件测试发展的历史及软件测试的现状。 参考答案: 软件测试是伴随着软件的产生而产生的。在软件行业发展初期,没有系统意义上的软件测试,更多的是一种类似调试的测试,测试用例的设计和选取也都是根据测试人员的经验随机进行的,大多数测试的目的是为了证明系统可以正常运行。 到了20世纪70年代以后,很多测试理论和测试方法应运而生,逐渐形成了一套完整的体系。在产业界,从20世纪70年代后期到20世纪80年代中期,很多软件企业成立了QA或者SQA部门。后来QA的职能转变为流程监控(包括监控测试流程),而测试(Testing)则从QA中分离出来成为独立的组织职能。 到了20世纪80年代初期,一些软件测试的基础理论和实用技术开始形成,软件测试作为软件质量保证(SQA)的主要职能,包含软件质量评价的内容。软件测试已有了行业标准(IEEE/ANSI )。 在我国,软件测试目前还没有形成一个真正的产业,尚处于起步阶段。 但是,在国内,现在在软件测试行业中各种软件测试的方法、和标准都还在探索阶段。

软件测试的基本流程

一:软件测试的基本流程 1.熟悉需求 2.需求评审(测试人员,开发,需求参与) 剔除需求中不合理的部分和一些无法实现的部分,有异议的地方,描述不清楚的地方。 3.编写测试计划 4.测试计划评审 5.测试分析 6.测试分析评审(交叉评审) 7.设计测试用例 8.编写测试用例 9.测试用例评审 10.冒烟测试 11.运行测试用例 12.提交BUG 13.回归测试 14.编写测试报告 二:什么是冒烟测试 冒烟测试,英文是Smoke testing。 冒烟测试的名称可以理解为该种测试耗时短,仅用一袋烟功夫足够了。也有人认为是形象地类比新电路板功基本功能检查。任何新电路板焊好后,先通电检查,如果存在设计缺陷,电路板可能会短路,板子冒烟了。 冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。冒烟测试的执行者是版本编译人员。 三:什么是回归测试 回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。 回归测试包括两部分:函数本身的测试、其他代码的测试。在对被修改的函数重新测试。如果函数的设计功能没有变化,直接运行函数测试就可以了。如果修改了设计功能,则要根据增减的功能点,增加或删除测试用例。另外,还要完成白盒覆盖。 函数代码的修改可能导致调用该函数的代码产生错误,所以需要测试其他代码。如果函数是私有函数并且未涉及到全局变量,应运行类测试,否则应运行工程测试。在函数列表中选择类测试或工程测试,编译运行测试工程,即可执行对其他代码的回归测试。 四:测试报告包含的内容

软件测试的目的是尽可能多的找出软件的缺陷

判断题: 1、软件测试得目得就是尽可能多得找出软件得缺陷。(Y) 2.Beta 测试就是验收测试得一种。(Y) 3.验收测试就是由最终用户来实施得。(N) 4.项目立项前测试人员不需要提交任何工件。(Y) 5.单元测试能发现约80%得软件缺陷。(Y) 6.代码评审就是检查源代码就是否达到模块设计得要求。(N) 7.自底向上集成需要测试员编写驱动程序。(Y) 8.负载测试就是验证要检验得系统得能力最高能达到什么程度。(N) 9.测试人员要坚持原则,缺陷未修复完坚决不予通过。(N) 10.代码评审员一般由测试员担任。(N) 11.我们可以人为得使得软件不存在配置问题。(N) 12.集成测试计划在需求分析阶段末提交。(N) 二、选折 1.软件验收测试得合格通过准则就是:(ABCD) A. 软件需求分析说明书中定义得所有功能已全部实现,性能指标全部达到要求。 B.所有测试项没有残余一级、二级与三级错误。 C.立项审批表、需求分析文档、设计文档与编码实现一致。 D.验收测试工件齐全。 2.软件测试计划评审会需要哪些人员参加?(ABCD) A.项目经理 B.SQA 负责人C.配置负责人D.测试组 3.下列关于alpha测试得描述中正确得就是:(AD) A.alpha测试需要用户代表参加 B.alpha测试不需要用户代表参加 C.alpha测试就是系统测试得一种D.alpha 测试就是验收测试得一种 4.测试设计员得职责有:(BC) A.制定测试计划 B.设计测试用例C.设计测试过程、脚本D.评估测试活动 5.软件实施活动得进入准则就是:(ABC) A.需求工件已经被基线化 B.详细设计工件已经被基线化 C.构架工件已经被基线化 D.项目阶段成果已经被基线化 三、添空 1、软件验收测试包括:正式验收测试,alpha测试,beta测试。 2、系统测试得策略有:功能测试,性能测试,可靠性测试,负载测试,易用性测试,强度测试,安全测试,配置测试,安装测试,卸载测试,文挡测试,故障恢复测试,界面测试,容量测试,兼容性测试,分布测试,可用性测试,(有得可以合在一起,分开写只要写出15就满分哦) 3、设计系统测试计划需要参考得项目文挡有:软件测试计划,软件需求工件与迭代计划。 4、对面向过程得系统采用得集成策略有:自顶向下,自底向上两种。 5、(这题出得有问题哦,详细得5步骤为~~)通过画因果图来写测试用例得步骤为: (1)分析软件规格说明描述中,哪些就是原因(即输入条件或输入条件得等价类),哪些就是结果(即输出条件),并给每个原因与结果赋予一个标识符。 (2)分析软件规格说明描述中得语义,找出原因与结果之间,原因与原因之间对应得就是什么关系? 根据这些关系,画出因果图。 (3)由于语法或环境限制,有些原因与原因之间,原因与结果之间得组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。 (4)把因果图转换成判定表。(5)把判定表得每一列拿出来作为依据,设计测试用例。

软件测试笔试题目

测试人员考试试卷(考试时间90分钟,满分100分) 一、判断题(每题1分,12 分,正确的√,错误的╳) 1.软件测试的目的是尽可能多的找出软件的缺陷。(√) 软件测试的目的就是为了发现软件中的缺陷,从这个意义上面说上面的这个论断是正确的。不少人会认为软件测试可以保证软件的质量,其实这个观点是错误,测试只是软件质量控制中的一个角色,其活动并不能达成软件质量保证的效果。所以不要认为一个公司里面如果有了软件测试人员,产品的质量就会好起来。 2.Beta 测试是验收测试的一种。(╳) Beat测试和验收测试是两种不同的测试。验收测试的目的是为了以发现”未实现的需求”为目的,以评估”适合使用”为目标,该类测试的不是以发现缺陷为主要目的。beta测试是一模拟真实的使用环境从而发现缺陷的一种测试。所以两者之间的是非包容关系。 3.验收测试是由最终用户来实施的。(╳) 上面说到了验收测试的目的和目标,所以验收测试也可是是软件生产的企业内部人员来实施。例如产品经理。当软件以项目的形式出现,那么验收测试由最终用户来实施的情况是比较长见的。但是对于产品形式的软件,生产企业内部的验收测试会更多。 4.项目立项前测试人员不需要提交任何工件。() 应该说这道题目没有明确的答案,在项目立项前测试人员是不是要把一些准备工作以工件的形式给记录下来是完全取决于该企业的软件开发过程的要求。同时不同企业,立项前要达成的一些必要条件也是大相径庭的。应该说这一题目出的不是很好,如果你是出题人这家企业的测试工程师,那么就应该有一个明确的答案。 5.单元测试能发现约80%的软件缺陷。() 同样这一题目也没有标准答案。因为该数据的来源和其统计的方法,样本都没有一个工业标准。这样出来的数据同样不具有权威性。这里我可以说一个简单的例子,在用ASP,php这类脚本语言开发网页的时候是根本没有复杂的单元测试。那么这样的数字应用在网站开发上面是否有意义,还是值得商榷的。所以这道题目出的不好,没有明确的答案 6.代码评审是检查源代码是否达到模块设计的要求。() 代码审查是一种静态技术,从这个意义上说代码复查是需要和其他的一些动态测试技术配合才能检查代码是否符合设计的要求 7.自底向上集成需要测试员编写驱动程序。() 这道题目大家看下top-down 和 down-top的集成测试示意图就能得出明确的答案。这里需要了解的是什么是驱动测试程序,什么是桩程序。如果集成组件数量众多,多关系层次,那么不论是什么类型的集成测试。驱动程序和桩程序都是需要开发的。 8.负载测试是验证要检验的系统的能力最高能达到什么程度。() 9.测试人员要坚持原则,缺陷未修复完坚决不予通过。() 10.代码评审员一般由测试员担任。(x) 如果测试员有这个水平,那么当然是可以参加的。不过大多数的企业不会让普通的测试人员参与代码的评审。 11.我们可以认为的使得软件不存在配置问题。(x) 首先大家先搞清楚什么是配置管理什么是软件配置,从这道题目中看不出出题人想问的是关键工程中的配置管理还是单纯的软件配置。但是可以肯定的是不论是何种情况,答案均是否定的。

软件测试习题集及答案

第一章 什么是软件测试?软件测试的目的和作用是什么? 答: 软件测试是在受控制的条件下对系统或应用程序进行操作并评价操作的结果。 软件测试的目的是以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。测试是为了证明程序有错,而不是证明程序无错。一个成功的测试是发现了至今未发现的错误的测试。 软件测试的原则包括:所有的测试都应追溯到用户的需求;尽早地和不断地进行软件测试;不可能完全的测试,因为输入量太大,执行路径太多;注意测试中的群集现象;避免测试自己的程序;设计周密的测试用例。 软件缺陷产生的原因? 答:A.软件需求说明书编写的不全面,不完整,不准确,而且经常更改B.软件设计说明书C.软件操作人员的水平D.开发人员不能很好的理解需求明书和沟通不足 软件测试的意义? 意义: 对产品质量完成全面的评估,为软件产品发布(如验收测试)、软件系统部署(如性能规划测试)、软件产品鉴定(第三方独立测试)委托方和被委托方纠纷仲裁(第三方独立测试)和其它决策提供信息; 通过持续的测试(包括需求评审、设计评审、代码评审等)可以对产品质量提供持续的、快速的反馈,从而在整个开发过程中不断地、及时地改进产品的质量,并减少各种返工,降低软件开发的成本; 通过测试发现所要交付产品的缺陷,特别是尽可能地发现各种严重的缺陷,降低或消除产品质量风险,提高客户的满意度,扩大市场份额,提高客户的忠诚度。 通过对缺陷进行分析,找出缺陷发生的根本原因(软件过程中的问题,包括错误的行为方式)或总结出软件产品的缺陷模式,避免将来犯同样的错误或产生类似的产品问题,达到缺陷预防的目的 软件测试与软件开发的关系? 答:软件开发是一个系统的工程。包括需求分析,设计,编码,测试,维护等等几个环节。测试是整个软件开发流程中的一个环节。 简述软件测试过程v模型和w模型的主要区别: V模型是软件开发完了之后才开始测试活动。 而W模型则是软件测试活动伴随着软件开发活动。和软件开发同时开展。 W模型更加敏捷,对于软件的交付期和品质的保证能力更强。 第二章 测试计划的目的是什么? 答:软件测试计划是指导测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。 什么是黑盒测试?黑盒测试主要采用的技术有哪些? 答:黑盒测试又称为功能测试、数据驱动测试和基于规格说明的测试。它从用户观点出发的测试。用这种方法进行测试时,把被测试程序当作一个黑盒,在不考虑程序内部结构的内部

软件测试课后习题

第一章软件测试概述 1. 名词解释 软件缺陷: 即计算机系统或者程序中存在的任何一种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷、瑕疵。缺陷会导致软件产品在某种程度上不能满足用户的需要。 软件缺陷的准确定义,通常有以下5 条描述: (1)软件未实现产品说明书要求的功能。 (2)软件出现了产品说明书指明不会出现的错误。 (3)软件超出实现了产品说明书提到的功能。 (4)软件实现了产品说明书虽未明确指出但应该实现的目标。 (5)软件难以理解,不易使用,运行缓慢或者终端用户认为不好 软件测试: 软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。通常对软件测试的定义有如下描述:软件测试是为了发现错误而执行程序的过程。 静态测试:静态测试就是通过对被测程序的静态审查,发现代码中潜在的错误。 动态测试:动态测试的对象必须是能够由计算机真正运行的被测试的程序 黑盒测试: 黑盒测试是一种从用户观点出发的测试,又称为功能测试,数据驱动测试和基于规格说明的测试。 白盒测试: 白盒测试基于产品的内部结构来进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分利用。 单元测试: 单元测试是针对每个单元的测试,是软件测试的最小单位。 集成测试: 集成测试是对已测试过的模块进行组装,进行集成测试的目的主要在于检验与软件设计相关的程序结构问题。 确认测试: 是检验所开发的软件能否满足所有功能和性能需求的最后手段,通常采用黑盒测试方法。系统测试: 系统测试的主要任务是检测被测软件与系统的其他部分的协调性。 验收测试: 验收测试是软件产品质量的最后一关。这一环节,测试主要从用户的角度着手,其参与者 主要是用户和少量的程序开发人员。 2. 简述软件测试发展的历史及软件测试的现状

软件测试的目的是尽可能多的找出软件的缺陷

判断题: 1、软件测试的目的是尽可能多的找出软件的缺陷。(Y) 2.Beta 测试是验收测试的一种。(Y) 3.验收测试是由最终用户来实施的。(N) 4.项目立项前测试人员不需要提交任何工件。(Y) 5.单元测试能发现约80%的软件缺陷。(Y) 6.代码评审是检查源代码是否达到模块设计的要求。(N) 7.自底向上集成需要测试员编写驱动程序。(Y) 8.负载测试是验证要检验的系统的能力最高能达到什么程度。(N) 9.测试人员要坚持原则,缺陷未修复完坚决不予通过。(N) 10.代码评审员一般由测试员担任。(N) 11.我们可以人为的使得软件不存在配置问题。(N) 12.集成测试计划在需求分析阶段末提交。(N) 二、选折 1.软件验收测试的合格通过准则是:(ABCD) A.软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。 B.所有测试项没有残余一级、二级和三级错误。 C.立项审批表、需求分析文档、设计文档和编码实现一致。 D.验收测试工件齐全。 2.软件测试计划评审会需要哪些人员参加?(ABCD) A.项目经理B.SQA 负责人C.配置负责人D.测试组 3.下列关于alpha 测试的描述中正确的是:(AD) A.alpha 测试需要用户代表参加B.alpha 测试不需要用户代表参加 C.alpha 测试是系统测试的一种D.alpha 测试是验收测试的一种 4.测试设计员的职责有:(BC) A.制定测试计划B.设计测试用例C.设计测试过程、脚本D.评估测试活动 5.软件实施活动的进入准则是:(ABC) A.需求工件已经被基线化B.详细设计工件已经被基线化 C.构架工件已经被基线化D.项目阶段成果已经被基线化 三、添空 1.软件验收测试包括:正式验收测试,alpha测试,beta测试。 2.系统测试的策略有:功能测试,性能测试,可靠性测试,负载测试,易用性测试,强度测试,安全测试,配置测试,安装测试,卸载测试,文挡测试,故障恢复测试,界面测试,容量测试,兼容性测试,分布测试,可用性测试,(有的可以合在一起,分开写只要写出15就满分哦) 3.设计系统测试计划需要参考的项目文挡有:软件测试计划,软件需求工件和迭代计划。 4.对面向过程的系统采用的集成策略有:自顶向下,自底向上两种。 5.(这题出的有问题哦,详细的5步骤为~~)通过画因果图来写测试用例的步骤为: (1)分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。 (2)分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系? 根据这些关系,画出因果图。 (3)由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。

软件测试技术习题参考答案

第1章软件测试概述 1、简述软件缺陷的含义。 答:软件缺陷是软件开发过程中潜在的缺陷,这些缺陷可能在软件运行后出现,因而使软件的性能和可靠性等方面与系统的设计需求不符。 2、说明软件缺陷、软件错误和软件失败的关系。 答:缺陷、缺点、偏差统称为缺陷,是软件故障的根源;错误、谬误、问题、异常、矛盾等统称为错误,软件错误出现的原因是软件缺陷所致;失败、事故、灾难统称失败,失败的直接原因是软件系统存在软件错误。 14、“软件测试是有风险的工作”,试解释这种说法的含义。 答:软件不测试,就会有风险;软件测试,同样也会有风险。因为,软件是个复杂的系统,其复杂性体现在软件实现的内容复杂性、开发过程的复杂性和组织工作的复杂性等方面。而软件测试的目的是为了发现故障,并加以排除。对一个复杂的软件系统来说,故障的排除往往可能又带来新的软件缺陷。所以,软件测试又会带来一定的风险。 第2章软件测试基础 2、条件覆盖是否高于判断覆盖的逻辑覆盖程度如果不是,请给出反例加以说明。 答:条件覆盖是高于判断覆盖的逻辑覆盖程度。 a 、用条件覆盖所设计的测试用例可使得程序中的每一个判断的每一个条件的可能 取值至少执行一次。 b、用判断覆盖所设计的测试用例可使被测程序中的每个判断的真分支和假分支至少经历 一次。 每个判断语句可能包含多个条件(比如,if (A>3&&B<7……)。条件覆盖针对判断语句的每一个条件的所有可能取值编写测试用例;判断覆盖只针对每一个判断语句整体的所有可能取值编写测试用例。所以,条件覆盖的逻辑覆盖程度高于判断覆盖。 4、已知某种计算机程序设计语言的标识符语法规则规定“标示符是由非数字开头的,有效 字符数为32个,最大字符数为128个的任意符号串”。试用等价类划分法设计测试用例。

2014软件测试复习题(含答案)

学号: 姓名: 座位号: 班级: 第一考官:姚庚梅 开课系部: 装 订 线 内 请 不 要 答 题 一、判断题: 1、 软件测试的惟一目的就是为了发现软件的错误。 ( 错 ) 2、 在进行黑盒测试时,主要的测试依据是软件需求。( 对 ) 3、 功能测试的主要目的是测试软件防止非法入侵能力。( 错 ) 4、 软件测试人员可以对概要设计说明书进行白盒测试。( 错 ) 5、 验收测试只由开发公司的测试人员来实施的。( 错 ) 6、 自动化测试工具可以部分代替手工测试。 ( 对 ) 7、 软件错误是指软件产品中存在的导致期望的运行结果和实际运行结果间出现差异的一系列 问题。( 对 ) 8、 负载测试的目的是为了测试软件系统的最大负载。( 错 ) 9、 软件测试必须等到所有缺陷均修复才能结束。 ( 错 ) 10、 软件测试人员必须对需求规格说明书进行白盒测试。( 错 ) 11、 项目编码前,软件测试人员不需要介入项目测试。( 错 ) 12、 从是否关注软件内部结构与算法,可以将软件测试分为静态测试和动态测试。( 错 ) 13、 软件测试人员一旦发现软件缺陷,主要以口头方式通知软件开发人员。( 错 ) 14、 性能测试的目的是保证软件的功能符合软件需求。( 错 ) 15、 发现错误多的模块,残留在模块中的错误也多。( 对 ) 16、 软件测试就是为了验证软件功能实现的是否正确,是否完成既定目标的活动,所以软件测试在软件工程的后期才开始具体的工作。( 错 ) 17、 软件测试只能发现错误,但不能保证测试后的软件没有错误。( 对 ) 18、 测试只要做到语句覆盖和分支覆盖,就可以发现程序中的所有错误。( 错 ) 二、单选题: 1、 软件测试的目的( B ) A 、发现程序中的所有错误 B 、尽可能多地发现程序中的错误 C 、证明程序是正确的 D 、调试程序 2、 一个程序中所含有的路径数与 ( A )有着直接的关系 A 、程序的复杂程度 B 、程序语句行数 C 、程序模块数 D 、程序指令执行时间 3、 用户界面测试要遵循一些原则,下面哪一个是需要遵循的原则( A ) A 、易用性原则 B 、完整性原则 C 、创新性原则 D 、复杂性原则 4、 功能测试的目的是( B ) A 、保证用户方便使用 B 、保证软件的功能符合软件需求 C 、保证系统没有错误 D 、保证软件的性能符合设计的要求 5、 软件错误产生的原因有多种多样,以下哪个不属于其中 ( B ) A 、需求分析不完善 B 、没有测试计划 C 、软件设计错误 D 、程序员编码过程中引入错误 6、在软件测试V 模型中,概要设计对应的测试是(C ) A 系统测试 B 单元测试 C 集成测试 D 模块测试 7、在软件生命周期的哪一个阶段,软件缺陷修复费用最低(A ) A 需求分析 B 设计 C 编码 D 产品发布 8、单元测试中用来模拟被测模块调用者模块是(C ) A 父模块 B 子模块 C 驱动模块 D 桩模块 9、不属于单元测试的内容是(D ) A 模块接口测试 B 局部数据结构测试 C 路径测试 D 用户界面测试 10、下列项目中不属于测试文档的是(C ) A 测试计划 B 测试用例 C 程序流程图 D 测试报告 11、在自底向上测试中,要编写称为(B )的模块来测验正在测试的模块 A 测试存根 B 测试驱动模块 C 桩模块 D 底层模块 12、软件测试方法中的( D )属于静态测试方法 A 黑盒法 B 路径覆盖 C 错误推测 D 人工检测 13、软件测试方法中,黑盒、白盒测试法是常用的方法,其中白盒测试主要用于测试(D ) A 结构合理性 B 软件外部功能 C 程序正确性 D 程序内部逻辑 三、问答题: 名词解释:软件测试、测试用例、软件缺陷、自动化测试、黑盒测试、白盒测试、功能测试、性能测试、压力测试、单元测试、集成测试、系统测试、回归测试 1、 什么是测试需求?怎么确定测试需求?

软件测试基础习题及答案

1、软件测试的定义? 软件测试是一个过程或者一系列过程,用来确认计算和代码完成了其应该完成的功能,并且不执行其不应该有的操作。 2、软件测试的目标是什么? 是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,降低软件发布后由于潜在的软件错误和缺陷造成的隐患所带来的商业风险。 3、简单描述一下软件测试的原则? 所有的软件测试都应追溯到用户需求 应当把“尽早地和不断地进行软件测试”作为测试者的座右铭 Good Enough原则 质量第一 充分注意测试中的群集现象 程序员应避免检查自己的程序 有据可依 尽量避免软件测试的随意性,要有预期结果 重视回归测试 妥善保存一切测试过程文档 4、软件测试中验证和确认的区别? V erfication 验证: 是保证软件正确实现特定功能的一系列活动和过程。 目的是保证软件生命周期中的每一个阶段的成果满足上一个阶段设定的目标。 V alidation 确认: 是保证软件满足用户需求的一系列的活动和过程。 目的是在软件开发后保证与用户需求符合 5、软件测试按照测试的基本策略可分为哪两种并加以详细说明? 白盒测试: 白盒测试也称结构测试或逻辑驱动测试,是指基于一个应用代码的内部逻辑知识,即基于覆盖全部代码、分支、路径、条件的测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。

黑盒测试: 黑盒测试是指不基于内部设计和代码的任何知识,而基于需求和功能性的测试,黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推测等,主要用于软件确认测试。 6、整个软件生命周期中,需要进行哪几项测试? 单元测试、集成测试、系统测试、验收测试 单元测试 单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。因为单元测试需要知道内部程序设计和编码的细节知识,一般应由程序员而非测试员来完成,往往需要开发测试驱动模块和桩模块来辅助完成单元测试。因此应用系统有一个设计很好的体系结构就显得尤为重要。 一个软件单元的正确性是相对于该单元的规约而言的。因此,单元测试以被测试单位的规约为基准。单元测试的主要方法有控制流测试、数据流测试、排错测试、分域测试等等。 集成测试 集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。它根据集成测试计划,一边将模块或其他软件单位组合成越来越大的系统,一边运行该系统,以分析所组成的系统是否正确,各组成部分是否合拍。集成测试的策略主要有自顶向下和自底向上两种。 系统测试 系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”。因此,系统测试应该按照测试计划进行,其输入、输出和其他动态运行行为应该与软件规约进行对比。软件系统测试方法很多,主要有功能测试、性能测试、随机测试等等。 验收测试 验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集。所不同的是,验收测试常常有软件系统的购买者代表在现场,甚至是在软件安装使用的现场。这是软件在投入使用之前的最后测试。

软件测试试题及答案

太原理工大学软件测试技术 适用专业:软件工程2011级考试日期:2014.1 时间:120 分钟 一、判断题 1. 测试是调试的一个部分(╳) 2. 软件测试的目的是尽可能多的找出软件的缺陷。(√ ) 3. 程序中隐藏错误的概率与其已发现的错误数成正比(√ ) 4. Beta 测试是验收测试的一种。(√ ) 5. 测试人员要坚持原则,缺陷未修复完坚决不予通过。(√ ) 6. 项目立项前测试人员不需要提交任何工件。(╳) 7. 单元测试能发现约80%的软件缺陷。(√ ) 8. 测试的目的是发现软件中的错误。(√ ) 9. 代码评审是检查源代码是否达到模块设计的要求。(√ ) 10. 自底向上集成需要测试员编写驱动程序。(√ ) 11. 测试是证明软件正确的方法。(╳) 12. 负载测试是验证要检验的系统的能力最高能达到什么程度。(√ ) 13. 测试中应该对有效和无效、期望和不期望的输入都要测试。(√ )验收测试是由最终用户来实施的。(√ ) 14. 测试人员要坚持原则,缺陷未修复完坚决不予通过。(√ )黑盒测试也称为结构测试。(╳)集成测试计划在需求分析阶段末提交。(╳) 15. 软件测试的目的是尽可能多的找出软件的缺陷。(√) 16. 自底向上集成需要测试员编写驱动程序。(√) 17. 负载测试是验证要检验的系统的能力最高能达到什么程度。(╳) 18. 测试程序仅仅按预期方式运行就行了。(╳) 19. 不存在质量很高但可靠性很差的产品。(╳) 20. 软件测试员可以对产品说明书进行白盒测试。(╳) 21. 静态白盒测试可以找出遗漏之处和问题。(√) 22. 总是首先设计白盒测试用例。(╳) 23. 可以发布具有配置缺陷的软件产品。(√) 24. 所有软件必须进行某种程度的兼容性测试。(√) 25. 所有软件都有一个用户界面,因此必须测试易用性。(╳) 26. 测试组负责软件质量。(╳) 27. 按照测试实施组织划分,可将软件测试分为开发方测试、用户测试和第三方测试。(√) 28. 好的测试员不懈追求完美。(×) 29. 测试程序仅仅按预期方式运行就行了。( ×) 30. 在没有产品说明书和需求文档的条件下可以进行动态黑盒测试。( √) 31. 静态白盒测试可以找出遗漏之处和问题。( √) 32. 测试错误提示信息不属于文档测试范围。( ×)

软件测试工作流程()

软件开发与测试配合 工作流程 XXX软件股份有限公司质量部 目录 1.简介 本流程文件旨在规定一个简单的可使开发人员和测试人员在软件开发的编码阶段相互配合工作的工作流程,其中包括测试与开发的配合、送测单和BUG单的填写、测试循环的结束等部分。开发阶段与测试循环的关系、测试模块的组合与测试原则、BUG的分类评级原则等也在本流程文件中有相关的描述。 鉴于公司的技术要求,目前质量部的测试人员不仅要完成黑盒测试工作,而且还要进行白盒测试中的“代码走查”工作。其它的白盒测试工作,目前还不在测试人员的工作职责之内。 由于公司已经为质量管理部开发完成“辅助测试系统1.0”,因此本测试流程的制定就建立在辅助测试系统之上,如果辅助测试系统有了新的版本,质量部将根据其变化适当调整测试流程。 2.适用范围 本流程文件适用于公司开发软件并需要测试服务的任何软件开发项目组、软件开发人员,以及任何测试人员。

当项目组在辅助测试系统中注册以后,公司领导可以使用本系统查询了解所有在本系统中注册的项目的测试信息,项目的质量管理员可以使用本系统查询了解项目的当前测试进展情况。程序员和测试员都可以使用本系统查询到自己产生的送测单和BUG单。 3.术语、名词定义 3.1 送测软件 送测软件包括一切软件执行必须的文件、数据、数据库配置等。开发人员必须提供所有的详细的资料以保证测试人员可以像客户一样的运行被测软件。 3.2 开发文档 开发人员提供给测试人员的开发文档至少包括以下几种:用户需求,概要设计,详细设计,用户手册等。开发人员应当在开发每阶段完成后三天内就向测试人员传送本阶段完成的开发文档,以利于测试人员的工作。 3.3 测试文档 测试文档包括测试计划、测试用例说明、BUG报告及分析、测试总结,以及测试工作全部完成后的测试报告等。测试文档由测试人员编写并维护,也属于开发文档的一部分。

软件测试习题集及答案(详细版)解答

1.什么是软件测试?软件测试的目的和作用是什么? 答: 软件测试是在受控制的条件下对系统或应用程序进行操作并评价操作的结果。 软件测试的目的是以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。测试是为了证明程序有错,而不是证明程序无错。一个成功的测试是发现了至今未发现的错误的测试。 软件测试的原则包括:所有的测试都应追溯到用户的需求;尽早地和不断地进行软件测试;不可能完全的测试,因为输入量太大,执行路径太多;注意测试中的群集现象;避免测试自己的程序;设计周密的测试用例。 2.软件缺陷产生的原因? 答: A.软件需求说明书编写的不全面,不完整,不准确,而且经常更改 B.软件设计说明书 C.软件操作人员的水平 D.开发人员不能很好的理解需求明书和沟通不足 3.软件测试的意义? 意义: 1.对产品质量完成全面的评估,为软件产品发布(如验收测试)、软件系统部 署(如性能规划测试)、软件产品鉴定(第三方独立测试)委托方和被委托 方纠纷仲裁(第三方独立测试)和其它决策提供信息; 2.通过持续的测试(包括需求评审、设计评审、代码评审等)可以对产品质量 提供持续的、快速的反馈,从而在整个开发过程中不断地、及时地改进产品 的质量,并减少各种返工,降低软件开发的成本; 3.通过测试发现所要交付产品的缺陷,特别是尽可能地发现各种严重的缺陷, 降低或消除产品质量风险,提高客户的满意度,扩大市场份额,提高客户的 忠诚度。 4.通过对缺陷进行分析,找出缺陷发生的根本原因(软件过程中的问题,包括 错误的行为方式)或总结出软件产品的缺陷模式,避免将来犯同样的错误或 产生类似的产品问题,达到缺陷预防的目的 4.软件测试与软件开发的关系? 答:软件开发是一个系统的工程。包括需求分析,设计,编码,测试,维护等等几个环节。测试是整个软件开发流程中的一个环节。 5.简述软件测试过程v模型和w模型的主要区别: V模型是软件开发完了之后才开始测试活动。 而W模型则是软件测试活动伴随着软件开发活动。和软件开发同时开展。 W模型更加敏捷,对于软件的交付期和品质的保证能力更强。

软件测试技术基础教程习题解答

软件测试技术基础教程习 题解答 Last updated on the afternoon of January 3, 2021

一、选择题 1.软件测试的目的是C。 A.表明软件的正确性B.评价软件质量 C.尽可能发现软件中的错误D.判定软件是否合格 2.下面关于软件测试的说法,A是错误的。 A.软件测试是程序测试 B.软件测试贯穿于软件定义和开发的整个期间 C.需求规格说明、设计规格说明都是软件测试的对象 D.程序是软件测试的对象 3.某软件公司在招聘软件评测师时,应聘者甲向公司做如下保证: ①经过自己测试的软件今后不会再出现问题; ②在工作中对所有程序员一视同仁,不会因为在某个程序员编写的程序中发现的问题多,就重点审查该程序,以免不利于团结; ③承诺不需要其他人员,自己就可以独立进行测试工作; ④发扬咬定青山不放松的精神,不把所有问题都找出来,决不罢休; 你认为应聘者甲的保证B。 A.①、④是正确的B.②是正确的 C.都是正确的D.都不正确 4.软件测试的对象包括B。 A.目标程序和相关文档B.源程序、目标程序、数据及相关文档 C.目标程序、操作系统和平台软件D.源程序和目标程序

5.导致软件缺陷的原因有很多,①-④是可能的原因,其中最主要的原因包括D。 ①软件需求说明书编写的不全面,不完整,不准确,而且经常更改②软件设计说明书③软件操作人员的水平④开发人员不能很好的理解需求说明书和沟通不足 A.①、②、③B.①、③C.②、③D.①、④ 二、简答题 1.简述软件测试发展的历史及软件测试的现状。 参考答案: 软件测试是伴随着软件的产生而产生的。在软件行业发展初期,没有系统意义上的软件测试,更多的是一种类似调试的测试,测试用例的设计和选取也都是根据测试人员的经验随机进行的,大多数测试的目的是为了证明系统可以正常运行。 到了20世纪70年代以后,很多测试理论和测试方法应运而生,逐渐形成了一套完整的体系。在产业界,从20世纪70年代后期到20世纪80年代中期,很多软件企业成立了QA或者SQA 部门。后来QA的职能转变为流程监控(包括监控测试流程),而测试(Testing)则从QA中分离出来成为独立的组织职能。 到了20世纪80年代初期,一些软件测试的基础理论和实用技术开始形成,软件测试作为软件质量保证(SQA)的主要职能,包含软件质量评价的内容。软件测试已有了行业标准(IEEE/ANSI)。 在我国,软件测试目前还没有形成一个真正的产业,尚处于起步阶段。 但是,在国内,现在在软件测试行业中各种软件测试的方法、和标准都还在探索阶段。 总之,国内软件测试行业与一些发达国家相比还存在一定的差距。 2.简述软件缺陷在不同阶段发现错误修复的费用。 参考答案: 软件缺陷造成的修复费用随着时间的推移呈指数级地增长,如下图所示。 3.简述软件测试的复杂性。 参考答案: 软件测试的复杂性体现在: ?不可能对程序实现完全测试。 ?杀虫剂现象,即为了克服被测试软件的免疫力,软件测试员必须不断编写新的测试程序,对程序的各个部分进行不断测试,以避免被测试软件对单一的测试程序具有免疫力而使软件缺陷不被发现。 ?软件测试的代价不容易掌握,因为随着测试量的增加,测试成本将呈几何数级上升,而软件缺陷数量降低到某一数值之后将没有明显的变化,寻求最优测试点,掌握好测试工作量是至关重要的。 ?在实际操作过程中,测试人员要进行正确的判断,合理的取舍,根据风险分析来决定哪些故障需要修复,哪些故障可以不修复,即并不是所有的软件缺陷都需要被修复。 4.对软件测试的经济性进行总结和分析 参考答案: 软件测试是软件生命期中费用消耗最大的环节。测试费用除了测试的直接消耗外,还包括其

相关文档
最新文档