北京联合大学信息学院软件测试复习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
名词解释题
软件生命周期:简单定义:从软件项目的提出,到软件不再使用的整个过程。
以需求为触发点,提出软件开发计划的那一刻开始直到软件在实际使用中完全报废为止的一个完整的周期。
软件质量:软件质量是指软件系统或系统中的软件部分的质量,即满足用户需求,包括功能需求和性能需求的程度。
是软件产品的一组固有特性满足用户使用要求的程度。
(软件质量就是“软件和明确的和隐含的定义的需求相一致的程度”。
具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。
)
软件测试:
2、软件测试是一种作为主体的人通过各种手段对客体软件的某种固有属性进行的一种以认知和改造为目的的活动。
软件错误:程序和规格说明之间的不匹配,当程序没有实现其最终用户合理预期的功能要求时或程序在缺陷程度是有程序无法实现有用功能的程度来测量的,或程序已被破坏
软件缺陷:IEEE国际标准729给出了软件缺陷的定义——软件缺陷就是软件产品中所存在的问题,最终表现为用户所需要的功能没有完全实现,不能满足或不能全部满足用户的需求。
根据软件缺陷的定义
Bug:缺陷– Bug, 缺点(defect)偏差(variance)谬误(fault)失败(failure)问题(problem)矛盾(inconsistency)错误(error )毛病(incident )异常(anomy)
动态测试:在抽样测试数据上执行程序并分析输出以及发现错误的过程
●包括白盒测试技术和黑盒测试技术
静态测试:不执行程序代码而寻找文档、程序代码中可能存在的错误的过程。
静态测试可以人工进行,也可以借助软件工具自动进行。
●包括代码审查、文档审查以及由软件工具自动进行的静态分析
黑盒测试:黑盒测试也称功能测试或数据驱动测试,前提是已知产品所具有的功能,通过测试来检测每个功能是否都正常使用。
●功能分解法、等价类划分法、边界值分析法、因果图方法、随机测试方法、猜错法
白盒测试:白盒测试也称为结构测试或逻辑驱动测试,前提是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都能够按预定要求正确工作,而不管产品的功能,主要用于软件验证。
单元测试:
●单元测试的对象是软件设计的最小单位——模块。
单元测试的依据是详细设描述,单元
测试应对模块内所有重要的控制路径设计测试用例,以便发现模块内部的错误。
单元测试多采用白盒测试技术,对系统内多个模块可以进行并行测试。
集成测试:集成测试,也称组装测试、联合测试、子系统测试,在单元测试的基础上,将模块按照设计要求组装起来同时进行测试,主要目标是发现和接口有关的模块之间问题
两种集成方式:一次性集成方式和增殖式集成方式。
系统测试:系统测试是将软件放在整个计算机环境下,包括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系列的测试,包括恢复测试、安全测试、强度测试和性能测试等
验收测试:
验收测试是为了向用户表明系统能够按照用户需求正常运行。
经过集成测试后,已经把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除,接着要进一步验证系统在功能和性能方面的有效性,这就是验收测试。
桩模块:桩模块(Stub)是指模拟被测试的模块所调用的模块,而不是软件产品的组成的部分。
用于代替所测模块调用的子模块。
主模块作为驱动模块,和之直接相连的模块用桩模块代替。
在集成测试前要为被测模块编制一些模拟其下级模块功能的“替身”模块,以代替被测模块的接口,接受或传递被测模块的数据,这些专供测试用的“假”模块称为被测模块的桩模块。
驱动模块:驱动单元用以仿真被测试单元的上级单元,驱动单元在单元测试中接受测试数据,把相关的数据传给被测试单元,启动被测试单元,并输出相应的结果。
而桩单元用以仿真被测试单元工作过程中所调用的单元,由被测试单元调用,它们一般只进行很少的数据处理。
简答题
1、简述软件生命周期有哪些阶段。
划分为孕育、诞生、成长、成熟、衰亡等阶段。
软件生存周期包括可行性分析和开发项计划、需求分析、设计(概要设计和详细设计)、编码、测试、维护等活动
2、简述按照测试目标划分的软件测试分类
验收测试、功能测试、性能测试、强度测试、安全性测试、确认测试
3、简述按照测试对象划分的软件测试分类
单元测试、部件测试、系统测试、代码审查、文档审查
4、简述软件测试的阶段划分
单元集成系统验收
5、简述软件缺陷的等级划分
关键缺陷、重要缺陷、一般缺陷
6、简述测试用例的要素及其含义。
测试目标→测试用例的输入数据→预期结果(和实际结果对照)
7、简述黑盒测试技术方法种类
黑盒测试方法主要有等价类划分、边界值分析、因果图、错误推测、功能图法等,主要用于软件确认测试。
8、简述代码走查和代码审查的区别
PPT:
代码审查主要检查代码和设计的一致性,代码对标准的遵循,代码的可读性,代码的逻辑表达的正确性,代码结构的合理性等方面。
包括:变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构检查等。
代码审查是由若干程序员和测试员组成一个审查小组,通过阅读、讨论和争议,对程序进行静态分析的过程。
走查不是简单地读程序和对照错误检查表进行检查,而是让和会者“充当”计算机,即
首先由测试组成员为被测程序准备一批有代表性的测试用例,提交给走查小组。
走查小组开
会,集体扮演计算机角色,让测试用例沿程序的逻辑运行一遍,随时记录程序的踪迹,供分
析和讨论用。
9、简述单元测试的步骤
单元测试的计划→设计→执行→结果分析
10、简述软件集成策略。
基于分解的集成策略
1.基于分解的集成(大爆炸集成、自顶向下、自底向上集成,三明治集成
2.基于调用同的集成
3.基于路径的集成
4.分层集成
5.基于功能的集成
11、简述集成测试和系统测试的区别
集成测试和系统测试的区别
1、测试对象集成测试的测试对象是由通过了单元测试的各个模块所集成起来的组件。
而系统
测试的测试对象,除了软件之外,还有计算机硬件及相关的外围设备、数据采集
和传输机构、计算机系统操作人员等的整个系统。
2、测试时间集成测试是介于单元测试和系统测试之间的测试。
在测试时间上,先于系统测试。
3、测试方法集成测试通常会采用灰盒测试。
而系统测试通常使用黑盒测试。
4、测试内容集成测试的主要内容就是各个单元模块之间的接口,以及各个模块集成后所实现
的功能。
而系统测试的主要内容就是整个系统的功能和性能。
5、测试目的集成测试的主要目的就是发现单元之间接口的错误,以及发现集成后的软件同软
件概要设计说明不一致的地方。
而系统测试的主要目的就是,通过和系统需求定
义相比较之后发现软件和系统定义不符合或矛盾的地方。
6、测试角度集成测试工作的开展更多的是站在测试工作人员的角度上。
系统测试工作的开展
更多的是站在用户的角度来进行。
1.功能测试(Functional Test):功能测试属于黑盒测试技术范畴,是系统测试中要进行的
最基本的测试,它不用考虑软件内部的具体实现过程。
主要是根据产品的需求规格说明书和测试需求列表,验证产品是否符合产品的需求规格。
2.协议一致性测试(Protocol Conformance Testing):分布式系统中,很多计算功能的完成需
要由分布式系统内的多台计算机相互进行通信、交换信息、协调合作来完成的,必须遵循一定的规则(协议)。
所以要进行协议测试。
3.性能测试(Performance Test):使用在网络方面和客户端方面的测试
4.压力测试:压力测试又称强度测试,是在各种资源超负荷情况下观察系统的运行情况。
在压力测试过程中,测试人员主要关注的是非正常资源占用的情况下系统的处理时间。
注意:区分压力测试和容量测试
5.容量测试:容量测试是面向数据的,在系统正常运行的范围内测试并确定系统能够处理
的数据容量。
也就是观察系统承受超额的数据容量的能力。
6.安全性测试:要验证系统内的保护机制能否抵御入侵者的攻击。
7.恢复性测试:恢复性测试的目标就是验证系统从软件或者硬件失败中恢复的能力。
在测
试过程中会采取各种人工干预方式使软件出错,而不能正常工作,进而检验系统的恢复能力。
8.备份测试:备份测试为了验证系统在软件或者硬件失败的事件中备份其数据的能力,它
属于恢复性测试的一个部分。
9.GUI测试:GUI(Graphic User Interface)即图形化用户接口,GUI测试只是软件产品界面测试的一部分,GUI测试分为两个部分,一方面要能使得界面实现和最初设计的情况相符合;另一方面是要确认界面能够正确处理事件。
10.健壮性测试:健壮性测试又被称为容错性测试。
主要是测试系统在出现故障时。
11.兼容性测试:目的就是检验被测使用对其他使用或者系统的兼容性,比如在对一个共享资源(数据、数据文件或者内存)进行操作时,检测两个或多个系统需求能否正常工作以及相互交互使用。
12.可用性测试:可用性测试是面向用户的系统测试。
13.可安装性测试:可安装性测试的目的就是要验证成功安装系统的能力。
安装系统处在一个开发项目的结束也是被测系统的开始。
14.文档测试:文档测试是对系统提交给用户的文档进行验证,并不是一般性的审查活动。
通过文档测试保证用户文档的正确性并使得操作手册能够准确无误。
15.在线帮助测试:在线帮助测试给用户提供一种实时的咨询服务。
16.数据转换测试:主要是为了验证已存在的数据转换并载入一个新的数据库是否有效。
17.验收测试:验收测试是将程序和其最初的需求及最终用户当前的需要进行比较的过程。
13、简述测试项目管理的三维模型
时间维——全过程管理:对软件测试项目的全过程进行控制。
空间维——全方位管理:对于软件测试质量有关的关键因素事实全方位管理。
组织维——人员管理:构建从测试人员、设施小组到测试机构的多层次的管理模式。
论述题
1、什么是软件测试,请谈谈为什么要进行软件测试?
软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。
执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。
为什么要进行软件测试?就是因为软件缺陷的存在。
因为只有通过测试,才可以发现软件缺陷。
也只有发现了缺陷,才可以将软件缺陷从软件产品或软件系统中清理出去。
软件中存在的缺陷给我们带来的损失是巨大的,这也说明了软件测试的必要性和重要性
2、请谈谈什么是自动化测试及其好处并举例说明。
自动化测试(automated test)是相对手工测试(manual test)而存在的一个概念,由手工逐个地运行测试用例的操作过程被测试工具自动执行的过程所代替。
测试工具的使用是自动化测试的主要特征
好处:测试周期缩短、更高质量的产品、软件过程更规范、高昂的团队士气、节省人力资源,降低企业成本、充分利用硬件资源,降低企业成本。
举例:手工测试VS自动测试
3、试述软件测试的概念模型,并解释。
在开发过程中,从需求阶段到编码阶段,主要是采用验证手段进行测试,如需求评审、设计评审、代码走查以及代码审查等,从而完成对开发的中间结果的正确性的评估。
编码完成并经过代码审查等测试之后,此时的测试主要在软件的可执行模式下进行,即利用确认手段进行测试,确认测试包括单元测试、集成测试、系统测试以及用户验收测试等,其相应的关系。
4、试述软件测试的V 型模型,并说明优缺点 测试目标
测试依据 缺陷定义 测试对象 解决方案
测试结果 测试工具 测试方法
测试策略 测试组织 测试过程
5、请谈谈你认为一个优秀的测试工程师应该具备哪些素质
作为一名优秀的测试工程师,首先要对测试工作有兴趣:测试工作很多时候都是显得有些枯燥的,因此热爱测试工作,才更容易做好测试工作。
因此,除了具有前面的专业技能和行业知识外,测试人员应该具有一些基本的个人素养,即下面的“五心”。
专心:主要指测试人员在执行测试任务的时候要专心,不可一心二用。
经验表明,高度集中精神不但能够提高效率,还能发现更多的软件缺陷,业绩最棒的往往是团队中做事精力最集中的那些成员。
细心:主要指执行测试工作时候要细心,认真执行测试,不可以忽略一些细节。
某些缺陷如果不细心很难发现,例如一些界面的样式、文字等。
耐心:很多测试工作有时候显得非常枯燥,需要很大的耐心才可以做好。
如果比较浮躁,就不会做到“专心”和“细心”,这将让很多软件缺陷从你眼前逃过。
责任心:责任心是做好工作必备的素质之一,测试工程师更应该将其发扬光大。
如果测试中没有尽到责任,甚至敷衍了事,这将会把测试工作交给用户来完成,很可能引起非常严重的后果。
自信心:自信心是现在多数测试工程师都缺少的一项素质,尤其在面对需要编写测试代码等工作的时候,往往认为自己做不到。
要想获得更好的职业发展,测试工程师们应该努力学习,建立能“解决一切测试问题”的信心
“五心”只是做好测试工作的基本要求,测试人员应该具有的素质还很多。
例如测试人员不但要具有团队合作精神,而且应该学会宽容待人,学会去理解“开发人员”,同时要尊重开发人员的劳动成果——开发出来的产品。
综合题
1、输入三个正整数,这三个值分别表示三角形三条边的长度,请判断这个三角形是等边三角形、等腰三角形还是一般的三角形并打印相应的结果。
2、某一8位微机,其八进制常数定义为:以零开头的数是八进制数,其值的范围是-177~177,如05,0127,-065。
下列步骤是使用等价类划分法设计上述案例测试用例的过程。
请根据题意,在划分等价类表中的编号⑩和编号○11处填入相应内容,并在合理等价类测试用例表和不合理等价类测试用例表中的“期望结果”和“覆盖范围”二列中填入相应的内容。
(1)划分等价类并编号
输入数据合理等价类不合理等价类
八进制整数①2~4位以0开头的数字串④以非0非一开头的串
②3~5位以-0开头的数字串⑤0开头含有非数字字符串
⑥-0开头含有非数字字符串
X>0 AND Y>0
AND Z>0
输出“这不是一个三角形”N
Y
X<Y+Z AND Y<X+Z
AND Z<X+Y
这是一个等边
三角形
N
X=Y AND Y=Z
Y
Y
这不是一个等边
三角形
N
X=Y or Y=Z
Y
这是一个等腰三
角形
N
⑦0开头多于4个字符
⑧-后非0的多位串
⑨-0开头多于5个数字
八进制数范围③在-177~177之间⑩小于-177
⑾大于177
测试数据期望结果覆盖范围023 有效①③-0156 有效②③
(3)
测试数据期望结果覆盖范围
102 有效 4
0f23 有效 5
-03x3 有效 6
01765 有效7
-124 有效8
-01246 有效9
-0200 有效10
0223 有效11
地区码:空白或者3位数字;
前缀:非0或者1开头的3位数字:
后缀:4位数字。
某程序接受符合以上条件的电话号码,拒绝所有不符合规定的号码。
对该程序使用等价类划分法设计测试用例。
4、为以下流程图所示的程序段设计一组测试用例,要求分别满足语句覆盖、分支覆盖、条件覆盖、分支-条件覆盖。
5、为以下流程图所示的程序段设计一组测试用例,要求分别满足语句覆盖、分支覆盖、条件覆盖、分支-条件覆盖。
(A<5) and (B=5) AND Y>5 T F
x=x/5
X>8 AND Y>5 X>0 OR Y>0 引用语句1 引用语句2 N Y
N
Y X>16 OR Y>10 引用语句3 N Y (A=2) or (x>2) AND Y>5 T F
x=x+1。