一、多重选择题(下面的选择题可能有一个或多个正确答案,每题5分,共25分)
1、 在软件测试中,下列说法中错误的是( B )
A. 测试是为了发现程序中的错误而执行程序的过程
B. 测试是为了表明程序是正确的
C. 好的测试方案是极可能发现迄今为止尚未发现的错误的方案
D. 成功的测试是发现了至今为止尚未发现的错误的测试
2、测试设计员的职责有( BC )
A. 制定测试计划
B. 设计测试用例
C. 设计测试过程、脚本
D. 评估测试活动
3、下列关于alpha 测试的描述中正确的是:( AB )
A. alpha 测试需要用户代表参加
B. alpha 测试是验收测试的一种
C. alpha 测试不需要用户代表参加
D. alpha 测试是系统测试的一种
4、软件测试计划评审会需要哪些人员参加?( ABCD )
A. 项目经理
B. 配置负责人
C. 测试组
D. SQA 负责人
5、下面关于软件测试,哪些说法是正确的( ACD )
A. Beta 测试是验收测试的一种
B. 验收测试是由最终用户来实施的
C. 单元测试能发现约80%的软件缺陷
D. 软件测试的目的是尽可能多的找出软件的缺陷
二、判断题(每题5分,共25分)
1、测试是为了验证软件已正确地实现了用户的要求( X )
2、在软件开发过程中,若能推迟暴露其中的错误,则为修复和改正错误所花费的代价就会 降低( X )
3、黑盒测试的测试用例是根据程序内部逻辑设计的( X )
4、白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求( X )
5、为了快速完成集成测试, 采用一次性集成方式是适宜的( X )
三、简答及论述题(每题10分,共50分)
1、什么是软件测试?软件测试与调试有什么区别?
软件测试就是为了保证软件质量,为了发现程序的错误而执行程序的过程 ;
测试是发现程序错误;调试是发现并修改错误。
2、请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。
黑盒测试:把测试对象当成一个黑盒子,测试人员完全不考虑逻辑结构和内部特性,只依据程式的需求说明书来检查程式的功能是否满足它的功能说明。
白盒测试:把测试对象当成一个透明的盒子,允许测试人员利用程序内部逻辑结构及相关信息,设计或选择测试用例,对程式所有逻辑路径进行测试。
单元测试:白盒测试的一种,对软件设计中的单元模块进行测试。
集成测试:在单元测试的基础上,对单元模块之间的连接和组装进行测试。
系统测试:在所有都考虑的情况下,对系统进行测试。
验收测试:第三方进行的确认软件满足需求的测试。
3、您以往所从事的软件测试工作中,是否使用了一些工具来进行软件缺陷(Bug)的管理?如果有,请结合该工具描述软件缺陷(Bug)跟踪管理的流程。
jira。bugzilla。提交-》确认-》分配-》修改-》验证-》关闭。
4、测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的?
软件测试计划是指导测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。 测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方 单元测试完成之后,接下来的工作就是集成测试.软件集成测试主要依据软件结构设计(概要设计)文档,测试主要内容有功能性、可靠性、易用性、效率、维护性和可移植性中相关的部分,根据软件需求和设计的要求而选定。 验证各软件单元集成后形成的模块能否达到概要设计规格说明中各模块的设计目标;这里,模块可能是指某个软件部件,也可能是指某个或某几个子系统。通常在做集成测试时先是从子系统内部的集成测试开始做起,做完以后再测试各子系统是否能集成为最终要实现的整体系统。也有其他做法(如自顶向下集成测试方法、核心系统先做集成测试或每日集成测试等等)。总之,万变不离其宗,集成测试要保证模块的内部正确性以及保证模块能最终集成为完整的系统。集成测试有时也被称为组装测试或灰盒测试(有观点认为集成测试介于白盒与黑盒之间)。 软件集成测试具体内容包括: 1.功能性测试 (1)程序的功能测试。检查各个子功能组合起来能否满足设计所要求的功能。 (2)一个程序单元或模块的功能是否会对另一个程序单元或模块的功能产生不利影响。 (3)根据计算精度的要求,单个程序模块的误差积累起来,是否仍能够达到要求的技术指标。 (4)程序单元或模块之间的接口测试。把各个程序单元或模块连接起来时,数据在通过其接口时是否会出现不一致情况,是否会出现数据丢失。 (5)全局数据结构的测试。检查各个程序单元或模块所用到的全局变量是否一致、合理。 (6)对程序中可能有的特殊安全性要求进行测试。 2.可靠性测试 根据软件需求和设计中提出的要求,对软件的容错性、易恢复性、错误处理能力进行测试。 3.易用性测试 根据软件设计中提出的要求,对软件的易理解性、易学性和易操作性进行检查和测试。 4.性能测试根据软件需求和设计中提出的要求,进行软件的时间特性、资源特性测试。 5.维护性测试 根据软件需求和设计中提出的要求,对软件的易修改性进行测试。 6.可移植性测试 根据软件需求和设计中提出的要求,对软件在不同操作系统环境下被使用的正确性进行测试。
5、WinRunner的工作流程大致可以分为哪几个步骤,并简要描述各步骤的主要工作。
大体分为6个步骤:
1).识别应用程序的GUI
在WinRunner中,我们可以使用GUI Spy来识别各种GUI对象,识别后,WinRunner会将其存储到GUI Map File中。它提供两种GUI Map File模式: Global GUI Map File和GUI Map File per Test。其最大区别是后者对每个测试脚本产生一个GUI文件,它能自动建立、存储、加载,推荐初学者选用这种模式。但是,这种模式不易于描述对象的改变,其效率比较低,因此对于一个有经验的测试人员来说前者不失为一种更好的选择,它只产生一个共享的GUI文件,这使得测试脚本更容易维护,且效率更高。
2).建立测试脚本
在建立测试脚本时,一般先进行录制,然后在录制形成的脚本中手工加入需要的TSL(与C语言类似的测试脚本语言)。录制脚本有两种模式: Context Sensitive和Analog,选择依据主要在于是否对鼠标轨迹进行模拟,在需要回放时一般选用Analog。在录制过程中这两种模式可以通过F2键相互切换。
只要看看现代软件的规模和功能点数就可以明白,功能测试早已跨越了单靠手工敲敲键盘、点点鼠标就可以完成的阶段。而性能测试则是控制系统性能的有效手段,在软件的能力验证、能力规划、性能调优、缺陷修复等方面都发挥着重要作用。
3).对测试脚本除错(debug)
在WinRunner中有专门一个Debug TOOlbar用于测试脚本除错。可以使用step、pause、breakpoint等来控制和跟踪测试脚本和查看各种变量值。
4).在新版应用程序执行测试脚本
当应用程序有新版本发布时,我们会对应用程序的各种功能包括新增功能进行测试,这时当然不可能再来重新录制和编写所有的测试脚本。我们可以使用已有的脚本,批量运行这些测试脚本测试旧的功能点是否正常工作。可以使用一个call命令来加载各测试脚本。还可在call命令中加各种TSL脚本来增加批量能力。
5).分析测试结果
分析测试结果在整个测试过程中最重要,通过分析可以发现应用程序的各种功能性缺陷。当运行完某个测试脚本后,会产生一个测试报告,从这个测试报告中我们能发现应用程序的功能性缺陷,能看到实际结果和期望结果之间的差异,以及在测试过程中产生的各类对话框等。
6).回报缺陷(defect)
在分析完测试报告后,按照测试流程要回报应用程序的各种缺陷,然后将这些缺陷发给指定人,以便进行修改和维护。
————————————————
7、在测试生命周期,测试过程分为几个阶段,以及各个阶段的含义?
软件测试生命周期一般包括6个阶段:1)计划 2)分析,3)设计,4)构建,5)测试周期,6)最后测试和实施,
1) 计划:产品定义阶段
2) 分析: 外部文档阶段
3) 设计 文档架构阶段
4). 构建:单元测试阶段
5) 测试周期:错误修正,重复系统测试阶段
6). 最后的测试和实施:代码冻结阶段。
8、区别阶段评审与同行评审
9、 如果能够执行完美的黑盒测试,还需要进行白盒测试吗?为什么?
需要。经验表明,通常在进行单元测试时采用白盒测试方法,集成测试采用灰盒测试方法,系统测试采用黑盒测试方法。
10、 测试结束的标准是什么?
用例全部测试。覆盖率达到标准。缺陷率达到标准。其他指标达到质量标准。
11、软件测试与软件质量保证的区别。
12、 测试用例都包括那些内容?
项目名称,软件版本,测试环境,设计人,最新更新日期、序号,模块,子模块,用例分类,用例标题,前提条件,操作步骤(输入值),期望结果,实际结果,备注,更新日期,用例级别,评审人
13、 一个缺陷测试报告的组成
1、缺陷编号(Defect ID)、2、缺陷标题(summary)、3、缺陷的发现者(Detected By)、4、发现缺陷的日期(Detected on date)、5、缺陷所属的模块(subject)、6、发现缺陷版本(Detected in release)、7、指派给谁处理(Assigned to)、8、缺陷的状态(status)、9、缺陷的严重程度(severity)、10、缺陷的优先级(priority)、11、缺陷描述(description)、
14、 一个测试工程师应具备那些素质和技能?
必备素质:正确高效的沟通能力;超强责任心;坚持原则;团队合作精神;耐心,细心,信心;
必备技能:测试专业技能;软件编程技能;网络、操作系统、数据库、中间件等
15、 简述一下缺陷的生命周期
新建--提交--确认--分配--修复--验证--关闭