软件测试面试题大集合(精品)

原文链接:http://www.365testing.com/bbs/forum.php?mod=viewthread&tid=36042&extra=page%3D1%26filter%3Dtypeid%26typeid%3D22%26typeid%3D22
一、判断题(每题 2 分,正确的“√”,错误的“╳”) 
1.软件测试的目的是尽可能多的找出软件的缺陷。(√ ) 
2.Beta 测试是验收测试的一种。(√ ) 
3.验收测试是由最终用户来实施的。(╳) 
4.项目立项前测试人员不需要提交任何工件。(√ ) 
5.单元测试能发现约 80%的软件缺陷。(√ ) 
6.代码评审是检查源代码是否达到模块设计的要求。(╳) 
7.自底向上集成需要测试员编写驱动程序。(√ ) 
8.负载测试是验证要检验的系统的能力最高能达到什么程度。(╳) 
9.测试人员要坚持原则,缺陷未修复完坚决不予通过。(╳) 
10.代码评审员一般由测试员担任。(╳) 
11.我们可以人为的使得软件不存在配置问题。(╳) 
12.集成测试计划在需求分析阶段末提交。(╳) 
13 、好的测试员不懈追求完美。(√ ) 
14、测试程序仅仅按预期方式运行就行了。(╳) 
15、不存在质量很高但可靠性很差的产品。(╳) 
16、软件测试员可以对产品说明书进行白盒测试。(╳) 
17、静态白盒测试可以找出遗漏之处和问题。(√) 
18、总是首先设计白盒测试用例。(╳ ) 
19、可以发布具有配置缺陷的软件产品。(√) 
20、所有软件必须进行某种程度的兼容性测试。(√ ) 
21、所有软件都有一个用户界面,因此必须测试易用性。(╳) 
22、测试组负责软件质量。(╳ ) 

二、不定项选择题(每题 2 分,10 分) 
1.软件验收测试的合格通过准则是:  (A C D)

A. 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。 
B. 所有测试项没有残余一级、二级和三级错误。 
C. 立项审批表、需求分析文档、设计文档和编码实现一致。 
D. 验收测试工件齐全。 

2.软件测试计划评审会需要哪些人员参加?(A B C D) 
A.项目经理 B.SQA 负责人 C.配置负责人 D.测试组 

3.下列关于 alpha 测试的描述中正确的是: (AD) 
A.alpha 测试需要用户代表参加 
B.alpha 测试不需要用户代表参加 
C.alpha 测试是系统测试的一种 
D.alpha 测试是验收测试的一种

4.测试设计员的职责有: (BC) 
A.制定测试计划 项目组长 B.设计测试用例 C.设计测试过程、脚本 D.评估测试活动 QA 

5.软件实施活动的进入准则是: (ABC) 
A.需求工件已经被基线化 
B.详细设计工件已经被基线化 
C.构架工件已经被基线化 
D.项目阶段成果已经被基线化 

6. 下面那些属于静态分析(A) 
A、 编码规则检查 B、 程序结构分析 C、 程序复杂度分析 D、 内存泄漏 

7. 下面那些属于动态分析(c) 
A、 代码覆盖率 B、 模块功能检查 C、 系统压力测试 D、 程序数据流分析 

8. 从测试技术角度,正确的选择是(b d) ,给出各自的含义? 
A、 静态测试 B、 黑盒测试 C、 动态测试 D、 白盒测试 

9. 从测试阶段角度,测试正确的顺序是(a b c d) ,同时给出所选择的正确策略含义和被 测对象是什么? 
A、 单元测试 B、 集成测试 C、 系统测试 D、 确认测试 

二、填空题: (每一空格 2 分,共 60 分) 
1.软件验收测试包括: 正式验收测试,alpha 测试,beta 测试。 
2.系统测试的策略有:功能测试,性能测试,可靠性测试,负载测试,易用性测试,强度测 试,安全测试,配置测试,安装测试,卸载测试,文挡测试,故障恢复测试,界面测试,容 量测试,兼容性测试,分布测试,可用性测试, (有的可以合在一起,分开写只要写出 15 就满分哦)
3.设计系统测试计划需要参考的项目文挡有:软件测试计划,软件需求工件和迭代计划。 
4.对面向过程的系统采用的集成策略有:自顶向下,自底向上两种。 
5.通过画因果图来写测试用例的步骤为: 
1) 分析软件规格说明中那些原因 那些结果 
2 )分析软件规格说明语义 找出原因与结果之间, 原因与原因之间对应的关系. 
3 )在因果图上用 一些记号表明约束或限制条件. 
4 )把因果图转换为判定表以及把因果图转换为状态图共五 个步骤。 

6、 软件实施活动的输出工件是:基本上设计工件模型等都是先勾画出一个轮廓,然后慢慢 的添加,或者把独立的工件设计好再组合到一起。 
7、 代码评审主要做一类是正式技术评审,也称同行评审,另一类是非正式技术评审工作 代码评审做的工作主要有: 1)保证代码和详细设计的一致。详细设计文档每一项都用代码 实现,没有遗漏和增 2)保证在编码阶段没有引入新的错误,代码在逻辑上是没有问题的。 
8、 软件测试主要分为: 单元测试 集成测试 系统测试 回归测试 四类测试。 
9、 软件测试活动有制定测试计划、 、 、 、 、 、测 试评估、测试结束八个步骤。 

10、软件测试角色有: 计划者 设计者 实施者 执行者 报告者。 

三、问答题: 
1、什么是软件测试? 
答:软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段 的规格说明和程序的内部结构而精心设计一批测试用例 (即输入数据及其预期的输出结果) , 并利用这些测试用例去运行程序,以发现程序错误的过程。 
2、软件测试的目的? 
答:测试的目的是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修 正种错误和缺陷提高软件质量, 回避软件发布后由于潜在的软件缺陷和错误造成的隐患带来 的商业风险。 
3、白盒测试有哪几种方法? 
答:白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检 测产品内部动作是否按照规格说明书的规定正常进行, 按照程序内部的结构测试程序, 检验 程序中的每条通路是否都有能按预定要求正确工作, 而不顾它的功能, 白盒测试的主要方法 有逻辑驱动、基路测试等,主要用于软件验证。“白盒”法全面了解程序内部逻辑结构、对所 有逻辑路径进行测试。“白盒”法是穷举路径测试。 

5、如果能够执行完美的黑盒测试,还需要进行白盒测试吗?(白盒与黑盒的区别) 任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试。 黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。 白盒测试: 已知产品的内部工作过程, 可以通过测试证明每种内部操作是否符合设计规格要
求,所有内部成分是否以经过检查。 软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒 子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书, 检查程序的功能是否符合它的功能说明。 因此黑盒测试又叫功能测试或数据驱动测试。 黑盒 测试主要是为了发现以下几类错误: 
1) 、是否有不正确或遗漏的功能?
2) 、在接口上,输入是否能正确的接受?能否输出正确的结果? 
3) 、是否有数据结构错误或外部信息(例如数据文件)访问错误? 
4) 、性能上是否能够满足要求? 
5) 、是否有初始化或终止性错误? 软件的白盒测试是对软件的过程性细节做细致的检查。 这种方法是把测试对象看做一个打开 的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程 序所有逻辑路径进行测试。 通过在不同点检查程序状态, 确定实际状态是否与预期的状态一 致。 因此白盒测试又称为结构测试或逻辑驱动测试。 白盒测试主要是想对程序模块进行如下 检查: 
1) 、对程序模块的所有独立的执行路径至少测试一遍。 
2) 、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。 
3) 、在循环的边界和运行的界限内执行循环体。 
4) 、测试内部数据结构的有效性,等等。 

以上事实说明,软件测试有一个致命的缺陷,即测试的不完全、不彻底性。由于任何程序只 能进行少量(相对于穷举的巨大数量而言)的有限的测试,在未发现错误时,不能说明程序 中没有错误。 

6、软件测试应该划分几个阶段?简述各个阶段应重点测试的点?各个阶段的含义? 
答:大体上来说可分为单元测试,集成测试,系统测试,验收测试,每个阶段又分为以下五个步 骤: 测试计划,测试设计,用例设计,执行结果,测试报告 初始测试集中在每个模块上,保证源代码的正确性,该阶段成为单元测试,主要用白盒测试 方法。 接下来是模块集成和集成以便组成完整的软件包。集成测试集中在证实和程序构成问题上。 主要采用黑盒测试方法,辅之以白盒测试方法。 软件集成后,需要完成确认和系统测试。确认测试提供软件满足所有功能、性能需求的最后 保证。确认测试仅仅应用黑盒测试方法。
单元测试 单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动 态测试的最基本的部分, 也是最重要的部分之一, 其目的是检验软件基本组成单位的正确性。 集成测试 集成测试是在软件系统集成过程中所进行的测试, 其主要目的是检查软件单位之间的接口是 否正确。 系统测试 系统测试是对已经集成好的软件系统进行彻底的测试, 以验证软件系统的正确性和性能等满 足其规约所指定的要求, 检查软件的行为和输出是否正确并非一项简单的任务, 它被称为测 试的“先知者问题”。 验收测试 验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。 它的测试数据通常是系统 测试的测试数据的子集. 回归测试 回归测试是在软件维护阶段, 对软件进行修改之后进行的测试。 其目的是检验对软件进行的 修改是否正确。 

7、针对缺陷采取怎样的管理措施? 
1). 要更好的管理缺陷,必须引入缺陷管理工具,商用的或者开源的都可。 
2). 根据缺陷的生命周期,考虑缺陷提交的管理、缺陷状态的管理和缺陷分析的管理。 
3). 所有发现的缺陷(不管是测试发现的还是走读代码发现的)都必须全部即时的、准确 的提交到缺陷管理工具中,这是缺陷提交的管理。 
4). 缺陷提交后,需要即时的指派给相应的开发人员,提交缺陷的人需要密切注意缺陷的 状态, 帮助缺陷的尽快解决。缺陷解决后需要即时对缺陷的修复进行验证。这样的目的有 两个:一个是让缺陷 尽快解决;二是方便后面缺陷的分析(保证缺陷相关的信息准确,如龄期等) ,这是缺陷状 态的管理。 
5). 为了更好的改进开发过程和测试过程,需要对缺陷进行分析,总结如缺陷的类别、缺 陷的龄期分布等信息,这是缺陷分析的管理。 

8、单元测试、集成测试、系统测试的侧重点是什么? 
答:单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件 的独立单元将在与程序的其他部分相隔离的情况下进行测试, 测试重点是系统的模块, 包括 子程序的正确性验证等。 集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求,组 装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能 保证连接起来也能正常的工作。 程序在某些局部反映不出来的问题, 在全局上很可能暴露出 来,影响功能的实现。测试重点是模块间的衔接以及参数的传递等。 系统测试是将经过测试的子系统装配成一个完整系统来测试。 它是检验系统是否确实能提供 系统方案说明书中指定功能的有效方法。 测试重点是整个系统的运行以及与其他软件的兼容 性。

9、设计用例的方法、依据有那些? 答:白盒测试用例设计有如下方法:基本路径测试\等价类划分\边界值分析\覆盖测试\循环测 试\数据流测试\程序插桩测试\变异测试.这时候依据就是详细设计说明书及其代码结构 黑盒测试用例设计方法:基于用户需求的测试\功能图分析方法\等价类划分方法\边界值分析 方法\错误推测方法\因果图方法\判定表驱动分析方法\正交实验设计方法.依据是用户需求规 格说明书,详细设计说明书。 

10、 测试用例通常包括那些内容?着重阐述编制测试用例的具体做法不同结构的用例包括的 不一样(版本、编号、项目、设计人员、设计日期、输入、预期输出……) 答:软件测试用例的基本要素包括测试用例编号、测试标题、重要级别、测试输入、操作步 骤、预期结果。 用例编号:测试用例的编号有一定的规则,比如系统测试用例的编号这样定义规则: PROJECT1-ST-001 ,命名规则是项目名称+测试阶段类型(系统测试阶段)+编号。定义 测试用例编号,便于查找测试用例,便于测试用例的跟踪。 测试标题:对测试用例的描述,测试用例标题应该清楚表达测试用例的用途。比如 “ 测试 用户登录时输入错误密码时,软件的响应情况 ” .重要级别:定义测试用例的优先级别,可 以笼统的分为 “ 高 ” 和 “ 低 ” 两个级别。 一般来说, 如果软件需求的优先级为 “ 高 ” , 那么针对该需求的测试用例优先级也为 “ 高 ” ;反之亦然,测试输入:提供测试执行中的 各种输入条件。根据需求中的输入条件,确定测试用例的输入。测试用例的输入对软件需求 当中的输入有很大的依赖性, 如果软件需求中没有很好的定义需求的输入, 那么测试用例设 计中会遇到很大的障碍。 操作步骤:提供测试执行过程的步骤。对于复杂的测试用例,测试用例的输入需要分为几个 步骤完成,这部分内容在操作步骤中详细列出。 预期结果:提供测试执行的预期结果,预期结果应该根据软件需求中的输出得出。如果在实 际测试过程中,得到的实际测试结果与预期结果不符,那么测试不通过;反之则测试通过。 

11、描述使用 bugzilla 缺陷管理工具对软件缺陷(BUG)跟踪的管理的流程 
1) 测试人员或开发人员发现 bug 后,判断属于哪个模块的问题,填写 bug 报告后,系统会 自动通过 Email 通知项目组长或直接通知开发者。 
2) 经验证无误后,修改状态为 VERIFIED.待整个产品发布后,修改为 CLOSED. 
3) 还有问题,REOPENED,状态重新变为“New",并发邮件通知。 
4) 项目组长根据具体情况,重新 reassigned 分配给 bug 所属的开发者。 
5) 若是,进行处理,resolved 并给出解决方法。 (可创建补丁附件及补充说明) 
6) 开发者收到 Email 信息后,判断是否为自己的修改范围。
7) 若不是,重新 reassigned 分配给项目组长或应该分配的开发者。 
8) 测试人员查询开发者已修改的 bug,进行重新测试。 (可创建 test case 附件) 

12、你认为一个优秀的测试工程师应该具备哪些素质? 
答:  1、具有良好的计算机编程基础 2、 具有创新精神和超前意识 3、 不懈努力, 追求完美 4、 具有整体观念,对细节敏感 5、团队合作精神 6、责任心、耐心、细心、信心 7、沟通能 力 8、时时保持怀疑态度,并且有缺陷预防的意识 

13、黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别 

答:黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要 求。
白盒测试: 已知产品的内部工作过程, 可以通过测试证明每种内部操作是否符合设计规 格要求,所有内部成分是否以经过检查。 软件的黑盒测试意味着测试要在软件的接口处进行。 这种方法是把测试对象看做一个黑 盒子, 测试人员完全不考虑程序内部的逻辑结构和内部特性, 只依据程序的需求规格说明书, 检查程序的功能是否符合它的功能说明。 因此黑盒测试又叫功能测试或数据驱动测试。 
黑盒 测试主要是为了发现以下几类错误: 
1、是否有不正确或遗漏的功能? 
2、在接口上,输入是否能正确的接受?能否输出正确的结果? 
3、是否有数据结构错误或外部信息(例如数据文件)访问错误? 
4、性能上是否能够满足要求? 
5、是否有初始化或终止性错误? 
软件的白盒测试是对软件的过程性细节做细致的检查。 这种方法是把测试对象看做一个 打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例, 对程序所有逻辑路径进行测试。 通过在不同点检查程序状态, 确定实际状态是否与预期的状 态一致。 因此白盒测试又称为结构测试或逻辑驱动测试。 
白盒测试主要是想对程序模块进行 如下检查:
1、对程序模块的所有独立的执行路径至少测试一遍。 
2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。 
3、在循环的边界和运行的界限内执行循环体。 
4、测试内部数据结构的有效性,等等。 

单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、 很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下 某个特定函数的行为。 

单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有 责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了 证明这段代码的行为和我们期望的一致。

集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是: 两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组 件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程 序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起 测试。最后,将构成进程的所有模块一起测试。 

系统测试是将经过测试的子系统装配成一个完整系统来测试。 它是检验系统是否确实能 提供系统方案说明书中指定功能的有效方法。 (常见的联调测试) 

系统测试的目的是对最终软件系统进行全面的测试, 确保最终软件系统满足产品需求并 且遵循系统设计。 验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪, 并且可以让最终用户将其用于执行软件的既定功能和任务。 

验收测试是向未来的用户表明系统能够像预定要求那样工作。 经集成测试后, 已经按照设计 把所有的模块组装成一个完整的软件系统, 接口错误也已经基本排除了, 接着就应该进一步 验证软件的有效性, 这就是验收测试的任务, 即软件的功能和性能如同用户所合理期待的那 样。 
1.单元测试的主要目的是针对编码过程中可能存在的各种错误, 例如用户输入验证过程中的 边界值的错误。 
2.集成测试主要目的是针对详细设计中可能存在的问题,尤其是检查各单元与其它程序部分 之间的接口上可能存在的错误。 
3.系统测试主要针对概要设计,检查了系统作为一个整体是否有效地得到运行,例如在产品 设置中是否达到了预期的高性能 
4.验收测试通常由业务专家或用户进行,以确认产品能真正符合用户业务上的需要(需求)。 


14、你所了解的的软件测试类型都有哪些,简单介绍一下。 
答:1. 基本功能验证。主要是对发布的版本进行一些最主要功能的测试。英文常见叫法是 Smoking Test, Basic Verification Test 或者 Sanity Check。 
2. 功能测试。主要是依据需求或者需求分析文档,对所发布的版本进行测试,看看是 否满足需求,是否出现了不必要的功能。 
3. 单元测试。是开发人员进行的测试之一,一般是开发人员对很小的模块,比如函数 进行测试,一般来说,开发人员还需要开发相应的测试桩来进行此类测试。 
4. 集成测试。在大型的开发过程中,软件是模块化进行开发的,将不同的模块揉合在 一起的话,需要进行的测试就是集成测试。 
5. 系统测试。当软件提交给测试组后,是对整个系统的所有功能进行测试,一般来说, 功能测试是系统测试的一个部分。
6. 压力测试。主要是在很大性能的情况下,这个性能已经接近了系统的极限,看看系 统运转的情况。 
7. 负载测试。主要是用各种不同的性能去检测系统,采集各个数据在这些性能情况下 的数据。 
8. 黑盒测试。指系统对你来说是完全不透明的,只给你留下了输入和最终输出,这个 是功能测试的方法之一。 
9. 灰盒测试。指在了解部分系统内部工作机制的情况下,对于系统进行的覆盖性测试。 
10. 白盒测试。主要是在单元测试和集成测试的情况下,开发人员已知代码,对这一段 的代码进行全路径的覆盖测试。 
11. 界面测试。主要是看用户界面的友好性和易用性,是否有文字或者排版错误,是否 有输入限制等等。 
12. 回归测试。一般是系统发现 BUG,开发人员修改后,和 BUG 直接相关以及可能相 关的功能进行的测试。 
13. 安装和卸载的测试。 
14. 恢复测试。主要是一个系统在发生了灾难的情况下,从错误中是否容易恢复。 
15. 兼容性测试。一个系统在不同的语言,操作系统下的系统测试。 
16. 安全测试。系统在遇到攻击或者类似情况下的表现。 
17. Alpha 测试。系统在给最终用户前,测试人员在实验室中模拟最终用户的测试。 
18. Beta 测试。由部分最终用户通过使用来进行的测试。 
19. 比较测试。和其他具有相同或者类似功能的系统进行对比的测试。 
20. 验收测试。一般是最终用户在接受产品前,依据自己所提出的要求进行的测试,很 多情况下,验收测试可能委托第三方机构完成。 

15、 项目的集中管理在软件公司的哪一个层面?(2 分) 质量管理 

16、 什么是测试评估,测试评估的范围是什么?(5 分) 
软件测试评估是指对未正式投入商业化使用的软件进行预先的小规模试验, 又称小试。 主要 是由代码审查和合理性分析组成。 测试评估的范围:功能,性能,界面,实用性,速度,兼容性,易用性,各模块的完善性等 

17、 阐述工作版本的定义。(2分) 工作版本是迭代生命周期不可缺少的组成部分。 

18 、 请画出软件测试活动的流程图。 (8分) 
 
19、测试生命周期、测试过程分为几个阶段,以及各阶段的含义? 
答:测试生命周期:测试需求、测试总体设计、测试详细设计、单元测试、集成测试、系统 测试、验收测试。 

测试过程分:初始阶段、测试设计阶段、测试执行阶段、总结评估阶段。

20、引入测试管理的含义? 
答:测试管理嘛。。应该是风险管理、测试中角色与职责的管理,测试流程的管理。 。 

21、区别阶段评审的与同行评审? 
同行评审目的:发现小规模工作产品的错误,只要是找错误; 
阶段评审目的:评审模块 阶段作品的正确性 可行性 及完整性 
同行评审人数:3-7 人 人员必须经过同行评审会议的培训,由 SQA 指导 
阶段评审人数:5 人左右 评审人必须是专家 具有系统评审资格
同行评审内容:内容小 一般文档 <40 页, 代码 < 500 行
阶段评审内容: 内容多,主要看重点 
同行评审时间:一小部分工作产品完成
阶段评审时间: 通常是设置在关键路径的时间点上! 

22、简述集成测试的过程 系统集成测试主要包括以下过程: 
1. 构建的确认过程。 
2. 补丁的确认过程。 
3. 系统集成测试测试组提交过程。 
4. 测试用例设计过程。 
5. 测试代码编写过程。 
6. Bug 的报告过程。 
7. 每周/每两周的构建过程。 
8. 点对点的测试过程。 
9. 组内培训过程。 

23、 怎么做好文档测试? 仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例 检查文档的编写是否满足文档编写的目的 内容是否齐全,正确 内容是否完善 标记是否正确 

24、 白盒测试有几种方法? 
总体上分为静态方法和动态方法两大类。 
静态:关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义 
动态:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。 

25、系统测试计划是否需要同行审批,为什么?
需要,系统测试计划属于项目阶段性关键文档,因此需要评审。 

26、Alpha 测试与 beta 的区别? 
Alpha 测试 在系统开发接近完成时对应用系统的测试;测试后仍然会有少量的设计变更。 这种测试一般由最终用户或其它人员完成,不能由程序或测试员完成。 
Beta 测试 当开发和测试根本完成时所做的测试, 最终的错误和问题需要在最终发行前找到。 这种测试一般由最终用户或其它人员完成,不能由程序员或测试员完成。 

27、比较负载测试,容量测试和强度测试的区别? 
负载测试:在一定的工作负荷下,系统的负荷及响应时间。 
强度测试: 在一定的负荷条件下, 在较长时间跨度内的系统连续运行给系统性能所造成的影 响。 
容量测试:容量测试目的是通过测试预先分 析出反映软件系统应用特征的某项指标的极限 值(如最大并发用户数、数据库记录数等) ,系统在其极限值状态下没有出现任何软件故障 或还能保持主要功能正常运行。 容量测试还将确定测试对象在给定时间内能够持续处理的最 大负载或工作量。容量测试的目的是使系统承受超额的数据容量来发现它是否能够正确处 理。容量测试是面向数据的,并且它的目的是显示系统可以处理目标内确定的数据容量。 

28、测试结束的标准是什么? 
用例全部测试。 
覆盖率达到标准。 
缺陷率达到标准。 
其他指标达到质量标准 

29、描述软件测试活动的生命周期? 
测试周期分为计划、设计、实现、执行、总结。其中: 计划:对整个测试周期中所有活动进行规划,估计工作量、风险,安排人力物力资源,安排 进度等; 
设计:完成测试方案,从技术层面上对测试进行规划; 
实现:进行测试用例和测试规程设计; 
执行:根据前期完成的计划、方案、用例、规程等文档,执行测试用例。 
总结:记录测试结果,进行测试分析,完成测试报告。

30、软件的缺陷等级应如何划分?
A 类—严重错误,包括以下各种错误: 
1. 由于程序所引起的死机,非法退出 
2. 死循环 
3. 数据库发生死锁 
4. 因错误操作导致的程序中断 
5. 功能错误 
6. 与数据库连接错 误 
7. 数据通讯错误 
B 类—较严重错误,包括以下各种错误: 
1. 程序错误 
2. 程序接口错误 
3. 数据库的 表、业务规则、缺省值未加完整性等约束条件 
C 类—一般性错误,包括以下各种错误: 
1. 操作界面错误(包括数据窗口内列名定义、 含义是否一致) 
2. 打印内容、 格式错误 
3. 简单的输入限制未放在前台进行控制 
4. 删 除操作未给出提示 
5. 数据库表中有过多的空字段 
D 类—较小错误,包括以下各种错误: 
1. 界面不规范 
2. 辅助说明描述不清楚 
3. 输 入输出不规范 
4. 长操作未给用户提示 
5. 提示窗口文字未采用行业术语 
6. 可输入区 域和只读区域没有明显的区分标志 
E 类—测试建议 

31、为什么要在一个团队中开展软件测试工作?
因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比 ISO 质量认证一样, 测试同样也需要质量的保证, 这个时候就需要在团队中开展软件测试的工作。 在测试的过程 发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得 出软件的质量情况。 

32、您所熟悉的测试用例设计方法都有哪些?
请分别以具体的例子来说明这些方法在测试 用例设计工作中的应用。 
1.等价类划分 划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程 序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试. 因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的 输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同 的情况:有效等价类和无效等价类. 
2.边界值分析法 边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生 在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计 测试用例,可以查出更多的错误. 使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界, 就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据, 而不是选取等价类中的典型值或任意值作为测试数据.
3.错误推测法
基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例 的方法. 错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情 况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产 品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为 0 的情况. 输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况. 可选择这些情况下的 例子作为测试用例. 
4.因果图方法 前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条 件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要 检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的 组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个 动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型). 因果图方法最终生成 的就是判定表. 它适合于检查程序输入条件的各种组合情况. 

33、 您认为做好测试计划工作的关键是什么? 
1. 明确测试的目标,增强测试计划的实用性 编写软件测试计划得重要目的就是使测试过程能够发现更多的软件缺陷, 因此软件测试 计划的价值取决于它对帮助管理测试项目,并且找出软件潜在的缺陷。因此,软件测试计划 中的测试范围必须高度覆盖功能需求, 测试方法必须切实可行, 测试工具并且具有较高的实 用性,便于使用,生成的测试结果直观、准确 
2.坚持“5W”规则,明确内容与过程 “5W”规则指的是“What(做什么)”、“Why(为什么做)”、“When(何时做)”、“Where (在哪里)”、“How(如何做)”。利用“5W”规则创建软件测试计划,可以帮助测试团队理 解测试的目的 (Why) 明确测试的范围和内容 , (What) 确定测试的开始和结束日期 , (When) , 指出测试的方法和工具(How) ,给出测试文档和软件的存放位置(Where) 。 
3.采用评审和更新机制,保证测试计划满足实际需求 测试计划写作完成后,如果没有经过评审,直接发送给测试团队,测试计划内容的可能不准 确或遗漏测试内容, 或者软件需求变更引起测试范围的增减, 而测试计划的内容没有及时更 新,误导测试执行人员。 
4. 分别创建测试计划与测试详细规格、测试用例 应把详细的测试技术指标包含到独立创建的测试详细规格文档, 把用于指导测试小组执 行测试过程的测试用例放到独立创建的测试用例文档或测试用例管理数据库中。 测试计划和 测试详细规格、 测试用例之间是战略和战术的关系, 测试计划主要从宏观上规划测试活动的 范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。 

34、您认为做好测试用例设计工作的关键是什么? 
白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果 黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。 不可能做到完全测 试,以最少的用例在合理的时间内发现最多的问题 

四、专业名词解释
1、需求文档测试: 主要测试需求中是否存在逻辑矛盾以及需求在技术上是否可以实现; 
2、设计文档测试: 测试设计是否符合全部需求以及设计是否合理。 
3、α测试: Alpha 测试(α测试)是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在 模拟实际操作环境下进行的受控测试,Alpha 测试不能由程序员或测试员完成。Alpha 测试 发现的错误,可以在测试现场立刻反馈给开发人员,由开发人员及时分析和处理。目的是评 价软件产品的功能、可使用性、可靠性、性能和支持。尤其注重产品的界面和特色。Alpha 测试可以从软件产品编码结束之后开始,或在模块(子系统)测试完成后开始,也可以在确 认测试过程中产品达到一定的稳定和可靠程度之后再开始。有关的手册(草稿)等应该在 Alpha 测试前准备好。 
4、β测试: Beta 测试(β测试)是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。 开发者通常不在测试现场,Beta 测试不能由程序员或测试员完成。因而,Beta 测试是在开 发者无法控制的环境下进行的软件现场应用。在 Beta 测试中,由用户记下遇到的所有问题, 包括真实的以及主管认定的,定期向开发者报告,开发者在综合用户的报告后,做出修改, 最后将软件产品交付给全体用户使用。 Beta 测试着重于产品的支持性,包括文档、客户培训和支持产品的生产能力。只有当 Alpha 测试达到一定的可靠程度后,才能开始 Beta 测试。由于 Beta 测试的主要目标是测试可支持 性,所以 Beta 测试应该尽可能由主持产品发行的人员来管理。 
5、驱动模块: 驱动模块是用来模拟被测试模块的上一级模块,相当于被测模块的主程序。它接收数据,将 相关数据传送给被测模块,启用被测模块,并打印出相应的结果。 
6、桩模块: 桩模块:桩模块(Stub)是指模拟被测试的模块所调用的模块,而不是软件产品的组成的部 分。主模块作为驱动模块,与之直接相连的模块用桩模块代替。在集成测试前要为被测模块 编制一些模拟其下级模块功能的“替身”模块,以代替被测模块的接口,接受或传递被测模块 的数据,这些专供测试用的“假”模块称为被测模块的桩模块 
7、白盒测试: 白盒测试(White-box Testing,又称逻辑驱动测试,结构测试),它是知道产品内部工作过程,可 通过测试来检测产品内部动作是否按照规格说明书的规定正常进行, 按照程序内部的结构测 试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测 试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。 
8、静态测试: 通过评审文档、阅读代码等方式测试软件称为静态测试,通过运行程序测试软件称为动态测 试.在动态测试中,通常使用白盒测试和黑盒测试从不同的角度设计测试用例,查找软件代码 中的错误.
9、回归测试:
回归测试是指修改了旧代码后, 重新进行测试以确认修改没有引入新的错误或导致其他代码 产生错误。 
10、确认测试: 确认测试也称为有效性测试, 是进一步验证软件的有效性的测试。 目标是为了向用户表明系 统能够像预定的要求那样工作。

四、设计题 
1、考官从办公室(面试现场)随意选取一个简单物品,假定是一个喝水的带广告图案的花 纸杯,让应聘人对它设计出尽可能多的测试用例。 
测试项目:杯子 
需求测试:查看杯子使用说明书 界面测试:查看杯子外观 
功能度:用水杯装水看漏不漏;水能不能被喝到 
安全性:杯子有没有毒或细菌 可*性:杯子从不同高度落下的损坏程度 
可移植性:杯子再不同的地方、温度等环境下是否都可以正常使用 
兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等 
易用性:杯子是否烫手、是否有防滑措施、是否方便饮用 
用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述 
疲劳测试:将杯子盛上水(案例一)
放 24 小时检查泄漏时间和情况;盛上汽油(案例二) 
放 24 小时检查泄漏时间和情况等 
压力测试:用根针并在针上面不断加重量,看压强多大时会穿透 
跌落测试: 杯子加包装(有填充物),在多高的情况摔下不破损 
震动测试: 杯子加包装(有填充物),六面震动,检查产品是否能应对恶劣的铁路\公路\航空运输 
测试数据: 
测试数据具体编写此处略(最讨厌写测试数据了) 。其中应用到:场景法、等价类划分法、 因果图法、错误推测法、边界值法等方法 
期望输出: 该期望输出需查阅国标、行标以及使用用户的需求 
说明书测试: 检查说明书书写准确性 

给大家提三个产品:1.手机 2.电饭锅 3.电梯

你可能感兴趣的:(软件测试面试题大集合(精品))