考查知识点:软件测试概述(软件概述)
1、软件是程序和( )的集合。 难易度:1
A、文档 B、代码 C、测试用例 D、测试
答案:A
2、软件工程中描述生存周期的瀑布模型一般包括计划、( )、设计、编码、测试、维护等几个阶段。 难易度:2
A、 需求分析 B、 需求调查 C、 可行性分析 D、 问题定义
答案:A
考查知识点:软件测试概述(软件缺陷)
3、严重的软件缺陷的产生主要源自( )。 难易度:3
A、需求 B、设计 C、编码 D、测试
答案:A
4、以下不属于应用系统中的缺陷类型的是:( ) 难易度:3
A、不恰当的需求解释 B、用户指定的错误需求
C、设计人员的习惯不好 D、不正确的程序规格说明
答案:B
5、降低缺陷费用最有效的方法是( )。 难易度:2
A、测试尽可能全面
B、尽可能早的开始测试
C、测试尽可能深入
D、让用户进行测试
答案:B
考查知识点:软件测试基础(软件测试)
6、测试环境中不包括的内容是( ) 难易度:2
A、测试所需文档资料 B、测试所需硬件环境
C、测试所需软件环境 D、测试所需网络环境
答案:A
7、软件调试的目的是( ) 难易度:2
A、发现软件中隐藏的错误
B、解决测试中发现的错误
C、尽量不发现错误以便早日提交软件
D、证明软件的正确性
答案:B
8、软件测试的目的是( ) 难易度:2
A、发现软件中隐藏的错误
B、解决软件中隐藏的错误
C、尽量不发现错误以便早日提交软件
D、证明软件的正确性
答案:A
9、下列关于测试和调试的说法中正确的是( ) 难易度:3
A、测试和调试没有本质区别。目的都是为了发现软件系统中的错误。
B、测试是测试人员的职责,在整个测试活动中可以不需要开发人员的参与。
C、调试主要在软件的开发阶段进行。
D、调试一般不能确定程序中潜在错误发生的原因
答案:B
10、从测试的要求来讲,如果想让测试完成的效果更好,测试部门与开发部门的关系最好是下面四种中的( )。 难易度:3
A、测试组织与开发组织为同一公司同一部门同一小组,并且测试人员与开发人员为同一组人员,即开发人员测试自己的程序。
B、测试组织与开发组织为同一公司同一部门同一小组,但测试人员与开发人员为不同人员。
C、测试组织与开发组织为同一公司,但不在同一部门。
D、测试组织与开发组织为不同公司。
答案:D
11、某软件公司在招聘软件测试工程师时,应聘者甲向公司做如下保证:
(1) 经过自己测试的软件今后不会再出现问题
(2) 在工作中对所有程序员一视同仁,不会因为某个程序编写的程序发现的问题多, 就重点审查该程序,以免不利于团结
(3) 承诺不需要其他人员,自己就可以进行测试工作
(4) 发扬咬定青山不放松的精神,不把所有问题都找出来,绝不罢休 根据自己所学的软件测试知识,应聘者甲的保证( ) 难易度:3
A、(1)(4)是正确的
B、(2)是正确的
C、都是正确的
D、都是错误的
答案:D
考查知识点:软件测试基础(软件测试分类)
12、用不同的方法可将软件测试分为白盒法和黑盒法,或者( )和静态测试。 难易度:1
A、白盒法 B、黑盒法 C、动态测试 D、灰盒法
答案:C
13、黑盒测试法是根据程序的( )来设计测试用例的。难易度:2
A、应用范围 B、内部逻辑 C、功能 D、输入数据
答案:C
14、验收测试的测试用例主要根据( )的结果来设计。难易度:2
A、需求分析 B、源程序 C、概要设计 D、详细设计
答案:A
15、软件测试中白盒测试法是通过分析程序的( )来设计测试用例的。难易度:2
A、应用范围 B、内部逻辑 C、功能 D、输入数据
答案:B
16、下列关于白盒测试与黑盒测试的说法中错误的是( )。难易度:3
A、用白盒测试来验证单元的基本功能时,经常要用黑盒测试的思考方法来设计测试用例
B、仅仅通过白盒测试,或仅仅通过黑盒测试都不能全面系统地测试一个软件
C、白盒测试适用于软件测试的各个阶段
D、在黑盒测试中使用白盒测试的手段,常被称为“灰盒测试”
答案:C
17、关于黑盒测试与白盒测试的区别,下列说法正确的是( )。 难易度:3
A、白盒测试侧重于程序结构,黑盒测试侧重于功能
B、白盒测试可以使用自动测试工具,黑盒测试不能使用工具
C、白盒测试需要开发人员参与,黑盒测试不需要。
D、黑盒测试比白盒测试应用更广泛
答案:A
18、下列关于alpha 测试的描述中正确的是:() 难易度:2
A、alpha 测试不需要用户代表参加
B、alpha 测试不要开发人员参加
C、alpha 测试是集成测试的一种
D、alpha 测试是验收测试的一种
答案:D
考查知识点:软件测试过程与方法(集成测试)
19、集成测试分为渐增组装测试和( ) 难易度:2
A、 非渐增组装测试
B、确认测试
C、单元测试
D、 测试计划
答案:A
20、集成测试中使用的辅助模块分为驱动模块和( ) 难易度:2
A、传入模块
B、主模块
C、桩模块
D、传出模块
答案:C
21、驱动模块模拟的是( ) 难易度:2
A、子模块
B、第一模块
C、底层模块
D、主程序
答案:D
考查知识点:软件测试过程与方法(单元测试)
22、单元测试的测试用例主要根据( )的结果来设计。难易度:2
A、需求分析 B、源程序 C、概要设计 D、详细设计
答案:B
23、单元测试的测试目的是( ) 难易度:2
A、保证每个模块或件能正常工作
B、保证每个程序能正常工作
C、确保缺陷得到解决
D、使程序正常运行
答案:A
考查知识点:软件测试过程与方法(验收测试)
24、以用户为主导的测试成为( ) 难易度:1
A、验收测试
B、白盒测试
C、黑盒测试
D、系统测试
答案:A
考查知识点:软件测试策略
25、按照测试策略和过程,测试可以分为:( ) 难易度:1
A、单元、白盒、确认、系统、验收
B、单元、集成、确认、系统、验收
C、白盒、黑盒、确认、系统、验收
D、白盒、集成、确认、系统、验收
答案:B
考查知识点:白盒测试技术
26、若一个通讯簿最多可以输入100条记录,则下列选项中设计的测试用例最优的是( )。难易度:2
A、分别输入1、50、100条记录
B、分别输入0、1、50、99、100条记录
C、分别输入0、1、99、100、101条记录
D、分别输入0、1、50、99、100、101条记录
答案:D
27、下列逻辑覆盖测试方法中,覆盖能力最强的是( ) 难易度:2
A、语句覆盖 B、判定覆盖 C、条件覆盖 D、条件组合覆盖
答案:D
28、选出属于白盒测试方法( ) 难易度:1
A、测试用例覆盖
B、输入覆盖
C、输出覆盖
D、条件覆盖
答案:D
考查知识点:黑盒测试技术
29、( )是一种黑盒测试方法,它是把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据当作测试用例。 难易度:2
A、等价类划分法
B、边界值分析法
C、因果图法
D、场景法
答案:A
30、黑盒测试用例设计方法包括( )等 难易度:1
A.等价类划分法、因果图法、正交试验设计法、功能图法、路径覆盖法、语句覆盖法
B.等价类划分法、边界值分析法、判定表驱动法、场景法、错误推测法、因果图法、正交试验设计法、功能图法
C.因果图法、边界值分析法、判定表驱动法、场景法、Z路径覆盖法
D.场景法、错误推测法、因果图法、正交试验设计法、功能图法、域测试法
答案:B
31、错误推测法的基本想法是:( ) 难易度:1
A.划分有效等价类和无效等价类
B.划分原因和结果
C.列出所有的可能情况
D.列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例
答案:D
考查知识点:软件测试文档
32、用户文档测试中不包括的是() 难易度:2
A、用户需求说明 B、操作指南 C、用户手册 D、随机帮助
答案:A
33、与设计测试用例无关的文档是( ) 难易度:2
A、项目开发计划
B、需求规格说明书
C、设计说明书
D、源程序
答案:A
34、测试过程实施所必备的核心文档不包括( ) 难易度:3
A、测试计划
B、测试缺陷报告
C、测试用例(大纲)
D、软件测试报告
答案:B
35、( )是为了高效率地发现软件缺陷而精心设计的少量测试数据。 难易度:2
A、测试用例 B、测试计划 C、测试报告 D、测试分析报告
答案:A
考查知识点:软件自动化测试
36、下列( )情况需要考虑引入自动化测试。 难易度:1
A、需要重复执行很多次的测试
B、只执行一次的测试
C、不重要的测试
D、很快有回报的测试
答案:A
考查知识点:Web网站测试的测试技术
37、WEB应用中一般采用架构的是( ) 难易度:2
A、C/S结构 B、B/S结构 C、集群结构 D、服务器互备份
答案:B
38、下列哪个不是WEB测试的测试内容?( ) 难易度:2
A、功能测试 B、兼容性测试 C、界面测试 D、用户测试
答案:D
39、导航测试属于( ) 难易度:2
A、功能测试
B、性能测试
C、可用性/可靠性测试
D、压力测试
答案:C
40、Web测试的一个重要特征是( ) 难易度:2
A、图片
B、文字
C、链接
D、视频
答案:C
考查知识点:软件测试技术前沿
41、测试驱动开发的简称是( ) 难易度:2
A、ADD B、TTD C、TDD D、TDT
答案:C
考查知识点:单元测试工具JUnit
42、确保测试与( )无关,不要依赖使用过期的数据进行测试。 难易度:2
A、时间
B、地点
C、软硬件资源
D、测试人员
答案:A
43、Junit是( )语言的单元测试框架。 难易度:2
A、C
B、.Net
C、Java
D、C++
答案:C
考查知识点:面向对象的软件测试
44、( ) 中认定的对象是对问题空间中的结构、其他系统、设备、被记忆的事件、系统涉及的人员等实际实例的抽象。难易度:3
A、OOP
B、OOD
C、OOU
D、OOA
答案:D
45、对OOD的测试,针对功能的实现和重用以及对OOA结果的拓展,以下不属于考虑内容的是( )难易度:3
A、对构造的类层次结构的测试
B、对对象库的结构测试
C、对类库的支持的测试
D、对认定的类的测试
答案:B
判断题 10×1分
考查知识点:
软件测试的概念
1.软件测试就是为了验证软件功能实现的是否正确,是否完成既定目标的活动,所以软件测试在软件工程的后期才开始具体的工作。 (F) 难易度:1
2.广义的软件测试由“确认”、“验证”、“测试”3个方面组成。T 难易度:1
3.软件测试等于程序测试。F 难易度:2
缺陷跟踪管理
4.测试人员在测试过程中发现一处问题,如果问题影响不大,而自己又可以修改,应立即将此问题正确修改,以加快、提高开发的进程。(F) 难易度:2
软件测试的目的
5.软件测试的目的是尽可能多的找出软件的缺陷。(T ) 难易度:1
软件测试的原则
6.要充分注意软件测试中的群集现象。(T ) 难易度:1
7.好的测试方案是极可能发现迄今为止尚未发现的错误。(T) 难易度:2
8.测试人员要坚持原则,缺陷未修复完坚决不予通过。(F )难易度:1
9.发现错误多的模块,残留在模块中的错误也多。( T ) 难易度:1
10.测试人员说:“没有可运行的程序,我无法进行测试工作”。 F 难易度:2
软件测试的分类
11.负载测试是验证要检验的系统的能力最高能达到什么程度。(F) 难易度:2
12.白盒测试方法比黑盒测试方法好。 F 难易度:2
13.在软件开发过程中,若能尽早暴露其中的错误,则为修复和改进错误所花费的代价就会降低。T 难易度:2
软件测试的质量
14.产品质量检验阶段是质量管理的发展阶段之一。难易度:1
软件测试的模型
15.V模型不能适应较大的需求变化。T 难易度:2
16.W模型能够较早地发现缺陷。T 难易度:1
软件测试过程
17.验收测试是由最终用户来实施的。(F ) 难易度:2
18.单元测试能发现约80% 的软件缺陷。(T ) 难易度:2
19.我们可以人为的使得软件不存在配置问题。(F ) 难易度:3
20.集成测试计划在需求分析阶段末提交。(F ) 难易度:1
21.Beta 测试是验收测试的一种。(T) 难易度:1
22.自底向上集成需要测试员编写驱动程序。T 难易度:2
23.为了快速完成集成测试,采用一次性集成方式是适宜的。 F 难易度:2
24.alpha 测试不是验收测试的一种。F 难易度:1
25.必须要求用户参与的测试阶段是单元测试。F 难易度:2
软件测试策略
26.项目立项前测试人员不需要提交任何工件。(T) 难易度:3
27.测试需求一定要写得很细很细。 F 难易度:1
28.测试需求就是软件需求。 F 难易度:1
29.测试组负责软件质量。F 难易度:2
白盒测试技术
30.代码评审是检查源代码是否达到模块设计的要求。(F) 难易度:2
31.代码评审员一般由测试员担任。(F ) 难易度:2
32.一个程序中所含有的路径数与程序的复杂程度有着直接的关系。T 难易度:3
33.静态检查就是看代码。F 难易度:3
黑盒测试技术
34.等价类法和边界值着重考虑输入条件,而不考虑输入条件的各种组合,也不考虑输入条件之间的相互制约关系。T 难易度:2
35.在实际测试中,边界值分析法和等价类划分法经常结合使用。T 难易度:1
36.因果图法是建立在决策表法基础上的一种白盒测试方法。F 难易度:2
37.黑盒测试法又叫功能测试或数据驱动测试。T 难易度:1
软件测试用例
38.测试用例是在测试执行后写的。 F 难易度:2
39.测试用例一般是由测试设计人员写的。T 难易度:2
40.在设计测试用例时,应包括合理的输入条件和不合理的输入条件。 T 难易度:1
软件自动化测试
41.QTP是一种自动化测试工具。T 难易度:1
42.测试自动化是万能的。F 难易度:2
43.LoadRunner是性能测试工具。 T 难易度:2
44.采用自动化测试有可能延误项目进度。T 难易度:3
面向对象的软件测试
45.面向对象的软件测试是采用面向对象的概念和原则,用结构化的方法构建。F 难易度:1
Web网站测试
46.Web网站测试需要考虑数据库测试。 T 难易度:2
47.Web网站测试不需要考虑功能测试。F 难易度:2
敏捷测试
48.敏捷测试不需要写测试计划。 F 难易度:4
单元测试工具Junit
49.Junit是一个开源的Java单元测试框架。T 难易度:2
Web应用负载测试工具WAS
50.WAS是单元测试工具。 F 难易度:4
名词解释5×4分
考查知识点:软件测试概述 难易度:1
1、软件测试:使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别
2、软件缺陷:存在于软件之中的那些不希望或不可接受的偏差,如少一个逗点、多一个语句等
考查知识点:软件测试基础 难易度:1
1、软件测试的目的:通过有线的资源找出对用户影响最深的bug
2、白盒测试:白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能
3、黑盒测试:黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性
难易度:2
4、回归测试:软件或环境的修复或更正后的“再测试”,自动测试工具对这类测试尤其有用
5、性能测试:测试软件的运行性能。这种测试常与压力测试结合进行,如传输连接的最长时限、传输的错误率、计算的精度、记录的精度、响应的时限和恢复时限等
6、质量保证:是为了提供足够的信任证据,证明组织有关的各类实体有能力满足质量要求
所实施并在必要时进行证实的有计划、有系统的活动。
7、α测试:在公司内部系统开发接近完成时对软件的测试,测试后仍然会有少量的设计变更。α测试时,开发者坐在用户旁边,随时记录用户发现的问题
8、β测试:当开发和测试根本完成时所做的测试,而最终的错误和问题需要在最终发行前找到。β测试时开发者不在测试现场,故是在开发者无法控制的环境下进行的测试,通常是由软件开发者向用户散发β版软件,然后收集用户的意见
9、压力测试:测试系统在某一条件达到最高限度时各项功能是否能依旧运行
考查知识点:软件测试过程 难易度:2
10、单元测试:单元测试又称模块测试,是针对软件设计的最小单位-程序模块进行正确性检验的测试工作,其目的在于检查每个程序单元能否正确实现详细设计说明中的模块功能、性能、接口和设计约束等要求,发现各模块内部可能存在的各种错误
11、集成测试:集成测试也叫组装测试。通常在单元测试的基础上将所有的程序模块进行有序的、递增的测试。它分成一次性集成和增殖式集成,增殖式集成又分成自顶向下的增殖方式和自底向上的增值方式
12、系统测试:将软件作为基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行(使用)环境下,对计算机系统进行一系列的组装测试和确认测试
13、驱动模块(driver):相当于被测模块的主程序。它接收测试数据,把这些数据传送给被测模块,最后输出实测结果。
14、桩模块(stub):用以代替被测模块调用的子模块。桩模块可以做少量的数据操作,不需要把子模块所有功能都带进来,但不允许什么事情也不做。
15、确认测试:确认测试最简明、最严格的解释是检验所开发的软件是否能按用户提出的要求运行。若能达到这一要求,则认为开发的软件是合格的。因而有的软件开发部门把确认测试称为合格性测试(Qualification Testing)。
考查知识点:软件测试策略 难易度:3
16、软件测试策略:软件测试策略,在一定的软件测试标准、测试规范的指导下,依据测试项目的特定环境约束而规定的软件测试的原则、方式、方法的集合。
考查知识点:软件测试文档 难易度:2
17、测试计划的目的:是明确测试活动的意图。它规范了软件测试内容、方法和过程,为有组织地完成测试任务提供保障
18、测试用例(Test Case):是为了高效率地发现软件缺陷而精心设计的少量测试数据
考查知识点:软件自动化测试 难易度:3
19、软件自动化测试:使用一种自动化测试工具来验证各种软件测试的需求,它包括测试活动的管理与实施。
20、面向对象的软件测试:面向对象程序的结构不再是传统的功能模块结构,作为一个整体,原有集成测试所要求的逐步将开发的模块搭建在一起进行测试的方法已成为不可能。而且,面向对象软件抛弃了传统的开发模式,对每个开发阶段都有不同以往的要求和结果,已经不可能用功能细化的观点来检测面向对象分析和设计的结果,面向对象的软件测试是为了适应面向对象开发模式的一种新的测试模型。
21、敏捷测试:应该是适应敏捷方法而采用的新的测试流程、方法和实践,对传统的测试流程有所剪裁,有不同的侧重,例如减少测试计划、测试用例设计等工作的比重,增加与产品设计人员、开发人员的交流和协作。敏捷测试就是持续地对软件质量问题进行及时地反馈。
简述题 2*10分
一、请简述软件测试模型中W模型的图及W模型的优点。(难易度:4)
考点:测试模型中的W模型。
答:
相比于V模型,W模型更科学。W模型可以说是前者自然而然的发展,它强调:测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。
测试与开发是同步进行的,从而有利于尽早地发现问题。以需求为例,需求分析一完成,我们就可以对需求进行测试,而不是等到最后才进行针对需求的验收测试。 测试不仅仅是评定软件的质量,测试还可以尽可能早地找出缺陷所在,从而帮助改进项目内部的质量。
二、说明测试技术的基本分类 (难易度:3)
考点:测试技术的分类明细
答:(1)从是否需要执行被测软件的角度分类
从是否需要执行被测软件的角度,可分为静态测试(Static Testing)和动态测试(Dynamic Testing)。
(2)从软件测试用例设计方法的角度分类
从软件测试用例设计方法的角度,可分为黑盒测试(Black-Box Testing)和白盒测试(White-Box Testing)
(3)从软件测试的策略和过程的角度分类。
按照软件测试的策略和过程分类,软件测试可分为单元测试(Unit Testing),集成测试(Integration Testing),确认测试(Validation Testing),系统测试(System Testing)和验收测试(Verification Testing)
三、说明软件测试和调试的目的有何区别?(难易度:2)
考点:软件测试和调试的区别
答:(1)软件测试是找出软件已经存在的错误,而调试是定位错误,修改程序以修正错误.
(2)测试是为了发现软件中存在的错误;调试是为了证明软件开发的正确性。
(3)测试的目的是显示存在错误,而调试的目的是发现错误或导致程序失效的错误原因,并修改程序以修正错误。调试是测试之后的活动。
四、列举自动化测试工具?(难易度:2)
考点:自动化测试工具的分类
答:测试工具可以从两个不同的方面去分类:
根据测试方法不同,自动化测试工具可以分为:白盒测试工具和黑盒测试工具。
根据测试的对象和目的,自动化测试工具可以分为:单元测试工具、功能测试工具、负载测试工具、性能测试工具、Web测试工具、数据库测试工具、回归测试工具、嵌入式测试工具、页面链接测试工具、测试设计与开发工具、测试执行和评估工具、测试管理工具等。
五、Alpha测试与Beta测试的区别?(难易度:2)
考点:Alpha测试与Beta测试
答:alpha测试是在用户组织模拟软件系统的运行环境下的一种验收测试,由用户或第三方测试公司进行的测试,模拟各类用户行为对即将面市的软件产品进行测试,试图发现并修改错误。
Beta测试是用户公司组织各方面的典型终端用户在日常工作中实际使用beta版本,并要求用户报告异常情况,提出批评意见。
区别:两者的主要区别是测试的场所不同。Alpha测试是指把用户请到开发方的场所来测试,beta测试是指在一个或多个用户的场所进行的测试。Alpha测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中。而beta测试的环境是不受开发方控制的,谁也不知道用户如何折磨软件,用户数量相对比较多,时间不集中。一般地,alpha测试先于beta测试执行。通用的软件产品需要较大规模的beta测试,测试周期比较长。如果产品通过了beta测试,那么就可以正式发行了。
六、测试360网站首页应该考虑的因素?(难易度:3)
考点:网站测试
答、360网站首页测试应该考虑的因素有:
(1)页面检查。主要是检查页面的布局是否合理,页面弹出窗口是否正确及页面的内容是否正确。
(2)控件检查。主要是检查控件是否能正常使用,如下拉框、单选框、多选框、日历控件等。
(3)滚动条检查。
(4)按钮检查。单击按钮检查是否正确操作,显示正常。
(5)文本框检查。
七、简述黑盒测试中决策表法的定义及其方法适应的程序?(难易度:3)
考点:黑盒测试中的决策表法
决策表是分析和表达多个逻辑条件下执行不同操作情况的工具。由于决策表可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确,在程序设计发展的初期,决策表就已被当作编写程序的辅助工具了。基于决策表(也称判定表)的测试是最为严格、最具有逻辑性的测试方法。
决策表技术适用于具有以下特征的应用程序:
(1)If-then-else逻辑很突出
(2)条件和规则的顺序不影响执行哪些操作。
(3)输入变量之间存在逻辑关系。
(4)涉及输入变量子集的计算。
(5)输入与输出之间存在因果关系。
(6)很高的圈复杂度。
八、简述测试模型中V模型的优缺点?(难易度:2)
考点:V模型
答:V模型是软件开发瀑布模型的变种,它反映了测试活动与分析和设计的关系 。从左到右,描述了基本的开发过程和测试行为,非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系 。
箭头代表了时间方向,左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即各测试过程的各个阶段。
V模型存在一定的局限性,它仅仅把测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段。容易使人理解为测试是软件开发的最后的一个阶段,主要是针对程序进行测试寻找错误,而需求分析阶段的隐藏的问题一直到后期的验收测试才被发现。
九、面向对象测试与传统测试的区别?(难易度:3)
考点:面向对象的测试
答:传统测试模式与面向对象的测试模式的最主要的区别在于,面向对象的测试更关注对象而不是完成输入/输出的单一功能,这样的话测试可以在分析与设计阶段就先行介入,便得测试更好的配合软件生产过程并为之服务。与传统测试模式相比,面向对象测试的优点在于:更早地定义出测试用例;早期介入可以降低成本;尽早的编写系统测试用例以便于开发人员与测试人员对系统需求的理解保持一致;面向对象的测试模式更注重于软件的实质。具体有如下不同:
(1)测试的对象不同:传统软件测试的对象是面向过程的软件,一般用结构化方法构
建;面向对象测试的对象是面向对象软件,采用面向对象的概念和原则,用面向对象的方法构建。
(2)、测试的基本单位不同:前者是模块;面向对象测试的基本单元是类和对象。
(3)、测试的方法和策略不同:传统软件测试采用白盒测试,黑盒测试,路径覆盖等方法;面向对象测试不仅吸纳了传统测试方法,也采用各种类测试等方法,而且集成测试和系统测试的方法和策略也很不相同。
十、简述测试工具Junit的特点?(难易度:2)
考点:测试工具Junit
答:JUnit是一个开源的java单元测试框架。JUnit设计的非常小巧,但是功能却非常强大。
下面是JUnit一些特性的总结;
(1)、提供的API可以让你写出测试结果明确的可重用单元测试用例;
(2)、提供了三种方式来显示你的测试结果,而且还可以扩展;
(3)、提供了单元测试用例成批运行的功能;
(4)、超轻量级而且使用简单,没有商业性的欺骗和无用的向导;
(5)、整个框架设计良好,易扩展。
对不同性质的被测对象,如Class,Jsp,Servlet,Ejb等,Junit有不同的使用技巧。
十一、请画出敏捷测试流程简要图?(难易度:3)
考点:敏捷测试
答:
十二、请列举你所知的测试原则?(难易度:2)
考点:测试原则
答:基于软件测试是为了寻找软件的错误与缺陷,评估与提高软件质量,我们提出一组如下测试原则:
(1)所有的软件测试都应追溯到用户需求
(2)应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭
(3)完全测试是不可能的,测试需要终止
(4)完全测试是不可能的,测试需要终止
(5)充分注意测试汇总的群集现象
(6)程序员应避免检查自己的程序
(7)尽量避免测试的随意性
案例分析题 1*20分 (难易度:3)
一、某保险公司的人寿保险的保费计算方式为:投保额×保险费率
其中,保险费率依点数不同而有别,10点及10点以上保险费率为0.6%,10点以下保险费率为0.1%;而点数又是由投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如表1所示。
表1 保险公司计算保费费率的规则
年龄 | 性别 | 婚姻 | 抚养人数 | ||||
20~39 | 40~59 | 其它 | M | F | 已婚 | 未婚 | 1人扣0.5点 最多扣3点 (四舍五入取整) |
6点 | 4点 | 2点 | 5点 | 3点 | 3点 | 5点 |
考点:等价类测试方法
输入条件 | 有效等价类 | 编号 | 无效等价类 | 编号 |
年龄 | 20<=x<=39 | (1) | 非正整数 | (12) |
40<=x<=59 | (2) | |||
0<=x<=19 | (3) | |||
60<=x<=150 | (16) | |||
性别 | ‘M’ | (4) | 非‘M’and非‘F’ | (13) |
‘F’ | (5) | |||
婚姻 | ‘已婚’ | (6) | 非‘已婚’and 非‘未婚’ | (14) |
‘未婚’ | (7) | |||
抚养人数 | null | (8) | 非 null and 非正整数 | (15) |
1<=x<=2 | (9) | |||
3<=x<=4 | (10) | |||
x>=5 | (11) |
序号 | 输入参数 | 覆盖等价类 | 输出参数 |
1 | (25,‘M’,‘已婚’,null) | (1)(4)(6)(8) | 保险率为0.6% |
2 | (44,‘F’,‘未婚’,2) | (2)(5)(7)(9) | 保险率为0.6% |
3 | (5,‘F’,‘已婚’,4) | (3)(5)(6)(10) | 保险率为0.1% |
4 | (88‘F’,‘已婚’,9) | (16(5)(6)(11) | 保险率为0.1% |
5 | (AA,‘M’,‘已婚’,null) | (12) | 输入错误 |
6 | (65,‘H’,‘未婚’,5) | (13) | 输入错误 |
7 | (78,‘F’,‘假婚’,null) | (14) | 输入错误 |
8 | (88,‘M’,‘已婚’,齐全) | (15) | 输入错误 |
1、写出文字说明(5分)
2、画出因果图(5)
3、写出相应的决策表(5分)
4、写出测试用例(5分)
考点:因果图测试方法
1、分析程序的规格说明,列出原因和结果。
原因:C1----第一个字符是A
C2----第一个字符是B
C3----第二个字符是一个数字
11为中间节点是导出结果的进一步原因。
结果:e1----给出信息L
e2----修改文件
e3----给出信息M
规则
选项 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |||||
条件 | C1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | ||||
C2 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | |||||
C3 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | |||||
11 | 1 | 1 | 1 | 1 | 0 | 0 | |||||||
动作 | e1 | 0 | 0 | 0 | 0 | 1 | 1 | ||||||
e2 | 1 | 0 | 1 | 0 | 0 | 0 | |||||||
e3 | 0 | 1 | 0 | 1 | 0 | 1 | |||||||
不可能 | 1 | 1 | |||||||||||
测试用例 | A5 | A# | B9 | B? | X2 | Y% |
中国去欧美的航线所有座位都有食物供应。每个座位都可以播放电影。
中国去非欧美的国外航线都有食物供应,只有商务舱可以播放电影。
中国国内的航班的商务舱有食物供应,但是不可以播放电影 。
中国国内的航班的经济舱除非飞行时间大于2小时就有食物供应,但是不可以播放电影。
使用决策表法设计测试用例。
考点:决策表测试方法
解:
1 | 2 | 3 | 4 | 5 | 6 | 7 | ||
航 线 | 中国去欧美? | 1 | 0 | 0 | 0 | 0 | 0 | |
中国去非欧美? | 0 | 1 | 1 | 0 | 0 | 0 | ||
中国国内的航班? | 0 | 0 | 0 | 1 | 1 | 1 | ||
经济舱? | --- | 0 | 1 | 0 | 1 | 1 | ||
商务舱? | --- | 1 | 0 | 1 | 0 | 0 | ||
飞行时间>2小时? | --- | --- | --- | --- | 1 | 0 | ||
服 务 | 食物供应 | 1 | 1 | 1 | 1 | 1 | 0 | |
播放电影 | 1 | 1 | 0 | 0 | 0 | 0 |
序号 | 输入数据 | 预期输出 |
1 | 美国 | 有食物和电影 |
2 | 日本的商务舱 | 有食物有电影 |
3 | 去韩国的经济舱 | 有食物无电影 |
4 | 去北京的商务舱 | 有食物无电影 |
5 | 去上海的经济舱 | 无食物无电影 |
6 |
地区码—— 空白或三位数字;
前缀—— 非‘0’或‘1’开头的三位数字;
后缀—— 4位数字。
假定被测程序能接受一切符合上述规定的电话号码, 拒绝所有不符合规定的电话号码。要求:
(1)请选择适当的黑盒测试方法,写出选择该方法的原因,并使用该方法的步骤,给出测试用例表。
(2)如果所生成的测试用例不够全面,请考虑用别的测试 方法生成一些补充的测试用例。
等价类表
输入条件 | 有效等价类 | 无效等价类 |
地区码 | 1.空白; 2.三位数; | 5.有非数字字符; 6.少于三位数字; 7.多于三位数字。 |
前 缀 | 3.从200到999之间的三位 | 8.有非数字字符; 9.起始位为‘0’; 10.起始位为‘1’; 11.少于三位数字; 12.多于三位数字。 |
后 缀 | 4.四位数字。 | 13.有非数字字符; 14.少于四位数字; 15.多于四位数字。 |
方案 | 内容 | 输 入 | 预期 输出 | ||
地区码 | 前缀 | 后缀 | |||
1 | 空白(1) | 200~999之间的三位数字(3) | 四位数字(4) | 有效 | |
2 | 三位数字(2) | 四位数字(4) | (635)805-9321 | 有效 | |
3 | 有非数字字符(5) | (20A)723-4567 | 无效 | ||
4 | 少于三位数字(6) | (33 )234-5678 | 无效 | ||
5 | 多于三位数(7) | (5555)345-67 | 无效 | ||
6 | 有非数字字符(8) | (345)5A2-3456 | 无效 | ||
7 | 起始位为‘0’(9) | (345)012-3456 | 无效 | ||
8 | 起始位为‘1’(10) | (345)132-3456 | 无效 | ||
9 | 少于三位数字(11) | (345) 92-3456 | 无效 | ||
10 | 多于三位数字(12) | (345)4562-3456 | 无效 | ||
11 | 有非数字字符(13) | (345)342-3A56 | 无效 | ||
12 | 少于四位数字(14) | 345)342- 356 | 无效 | ||
13 | 多于四位数字(15) | (345)562-34567 | 无效 |
一、分析以下程序代码,设计测试用例。
Int x=1;
Int y=1;
1.While( MaxNum >0)
2.{
3. if(10==Type)
4. x=y*2;
5.else
6. if(100==Type)
7. x=y+10;
8. else
9. x=y-20;
10.MaxNum--;
11.}
12.Ptintf(“%d”,x);
答案:
画出程序控制流图
节点数:8,判定节点书:3
边数:10
圈复杂度:10-8+2=4;3+1=4。
基本路径: 1——11
1——3——4——10——1——11
1——3——6——7——10——1——11
1——3——6——9——10——1——11
测试数据:MaxNum =-3, 预期结果: x=7;
预期结果: x=2;
MaxNum=1,Type=100, 预期结果: x=11;
MaxNum=1,Type=5, 预期结果: x=-19;
二、分析以下程序代码,设计测试用例。
1 main ()
2 {
3 int num1=0, num2=0, score=100;
4 int i;
5 char str;
6 scanf (“%d, %c\\n”, &i, &str);
7 while (i<5)
8 {
9 if (str=’T’)
10 num1++;
11 else if (str=’F’)
12 {
13 score=score-10;
14 num2 ++;
15 }
16 i++;
17 }
18 printf (“num1=%d, num2=%d, score=%d\\n”, num1, num2, score);
19 }
答案:
画出程序控制流图
圈复杂度: 3+1=4。
基本路径: 7—18
7—9—10-16-7-18
7—9—11—15—16—7—18
7—9—11—13、14-15—16—7—18
测试数据:i=7, 预期结果: num1=0, num2=0, score=100;
,str=T, 预期结果: num1=1, num2=0, score=100;
i=4,str=F,预期结果: num1=0, num2=1, score=90;
i=4,str=N,预期结果: num1=0, num2=0, score=100;
三、分析以下程序代码,设计测试用例。
1.Void sort(int i,int j)
2.{
3. int m,n,k;
4. m=n=k=0;
5. while(i++<11)
6. {
7. if (j<5)
8. m++;break;
9.else
10. if(j<8)
11. n++;
12. else
13. k++;
14. }
15.Printf(“%d,%d,%d”,m,n,k);
16.}
答案:
画出程序控制流图
节点数:8,判定节点书:3
边数:10
圈复杂度:10-8+2=4;3+1=4。
基本路径: 5——15
5——7——8——15
5——7——10——11——14——5——15
5——7——10——13——14——5——15
测试数据:i=20, 预期结果: 0,0,0,
预期结果: m=1
i=10,j=7, 预期结果: n=1
i=10,j=9, 预期结果: k=1
四、分析以下程序代码,使用语句覆盖和判定覆盖设计测试用例。
1.void DoWork(int x,int y,int z)
2.{
3. int k=0,j=0;
4. if((x>3)&&(z<10))
5. {
6. k=x*y-1; //语句块1
7. j=sqrt(k);
8. }
9. if((x= =4)||(y>5))
10. {
11. j=x*y+10; //语句块2
12. }
13. 语句块3
14.}
画出程序流程图
由这个流程图可以看出,该程序模块有4条不同的路径:
将里面的判定条件和过程记录如下:
判定条件M={x>3 and z<10}
判定条件N={x=4 or y>5}
测试数据:
1、语句覆盖
测试用例输入 | 输出 | 判定M的取值 | 判定N的取值 | 覆盖路径 |
x=4,z=5,y=8 | k=31,j=0 | T | T | P1(a-c-e) |
p1和p4可以作为测试用例,其中p1作为取真的路径,p4作为取反的路径。
测试用例输入 | 输出 | 判定M的取值 | 判定N的取值 | 覆盖路径 |
x=4,z=5,y=8 | k=31,j=0 | T | T | P1(a-c-e) |
x=2,z=11,y=5 | k=0,j=0 | F | F | P4(a-b-d) |
测试用例输入 | 输出 | 判定M的取值 | 判定N的取值 | 覆盖路径 |
x=5,z=5,y=4 | k=19,j=sqrt(19)%3 | T | F | P2(a-c-d) |
x=4,z=11,y=6 | k=0,j=1 | F | T | P3(a-b-e) |
对于M:x>3取真时T1,取假时F1;
取真时T2,取假时F2;
对于N:x=4取真时T3,取假时F3;
取真时T4,取假时F4。
条件:x>3,z<10,x=4,y>5
条件:x<=3,z>=10,x!=4,y<=5
根据条件覆盖的基本思路,和这8个条件取值,组合测试用例如表所示:
测试用例输入 | 输出 | 取值条件 | 具体取值条件 | 覆盖路径 |
x=4,z=5,y=8 | k=31, j=0 | T1,T2,T3,T4 | x>3,z<10,x=4,y>5 | P1(a-c-e) |
x=3,z=11,y=5 | k=0, j=0 | F1,F2,F3,F4 | x<=3,z>=10,x!=4,y<=5 | P4(a-b-d) |
测试用例输入 | 输出 | 取值条件 | 具体取值条件 | 覆盖路径 |
x=4,z=5,y=8 | k=31, j=0 | T1,T2,T3,T4 | x>3,z<10,x=4,y>5 | P1(a-c-e) |
x=3,z=11,y=5 | k=0, j=0 | F1,F2,F3,F4 | x<=3,z>=10,x!=4,y<=5 | P4(a-b-d) |
条件组合
3) x<=3,z<10 4)x<=3,z>=10
测试用例输入 | 输出 | 覆盖条件取值 | 覆盖条件组合 | 覆盖路径 |
x=4,z=5,y=6 | k=23, j=1 | T1,T2,T3,T4 | 1,5 | P1(a-c-e) |
x=4,z=10,y=5 | k=0, j=0 | T1,F2,T3,F4 | 2,6 | P2(a-c-d) |
x=3,z=5,y=6 | k=14 j=1 | F1,T2,F3,T4 | 3,7 | P3(a-b-e) |
z=3,z=10,y=5 | k=0, j=2 | F1,F2,F3,F4 | 4,8 | P4(a-b-d) |
测试用例输入 | 输出 | 覆盖条件取值 | 覆盖条件组合 | 覆盖路径 |
x=4,z=5,y=8 | k=31,j=0 | T1,T2,T3,T4 | P1(a-c-e) | |
x=5,z=5,y=4 | k=19,j=sqrt(19)%3 | T1,T2,F3,F4 | P2(a-c-d) | |
x=4,z=11,y=6 | k=0,j=1 | T1,F2,T3,T4 | P3(a-b-e) | |
x=2,z=11,y=5 | k=0,j=0 | F1,F2,F3,F4 | P4(a-b-d) |