1.问:你在测试中发现了一个 bug ,可是开发经理认为这不是一个 bug ,你应该怎样解决。
首先,将问题提交到缺陷管理库,相似禅道,进行备案,
根据需求文档,产品说明,设计文档等,确认实际结果是否与计划有不一致的地方,
若是没有文档,能够根据相似软件的通常特性来讲明是否存在不一致的地方,来确认是不是缺陷;
根据通常用户的使用习惯,来确认
与设计人员、开发人员和客户表明等相关人员探讨,确认是不是缺陷;
合理的论述,向测试经理说明本身的判断的理由,注意客观、严谨,不参杂我的情绪
等待测试经理作出最终决定,若是仍然存在争议,能够经过公司政策所提供的渠道,向上级反映,并由上级作出决定。
2. 给你一个网站,你如何测试?
首先,查找需求说明、网站设计等相关文档,分析测试需求。面试
制定测试计划,肯定测试范围和测试策略,通常包括如下几个部分:功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试数据库
设计测试用例:编程
功能性测试能够包括,但不限于如下几个方面:浏览器
连接测试。连接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回。
提交功能的测试。
多媒体元素是否能够正确加载和显示。
多语言支持是否可以正确显示选择的语言等。
界面测试能够包括但不限于一下几个方面:安全
页面是否风格统一,美观
页面布局是否合理,重点内容和热点内容是否突出
控件是否正常使用
对于必须但未安装的控件,是否提供自动下载并安装的功能
文字检查
性能测试通常从如下两个方面考虑:网络
压力测试;负载测试;强度测试函数
数据库测试要具体决定是否须要开展。数据库通常须要考虑连结性,对数据的存取操做,数据内容的验证等方面。工具
安全性测试:布局
基本的登陆功能的检查
是否存在溢出错误,致使系统崩溃或者权限泄露
相关开发语言的常见安全性问题检查,例如SQL注入等
若是须要高级的安全性测试,肯定得到专业安全公司的帮助,外包测试,或者获取支持
兼容性测试,根据需求说明的内容,肯定支持的平台组合:性能
浏览器的兼容性;
操做系统的兼容性;
软件平台的兼容性;
数据库的兼容性
开展测试,并记录缺陷。合理的安排调整测试进度,提早获取测试所需的资源,创建管理体系(例如,需求变动、风险、配置、测试文档、缺陷报告、人力资源等内容)。
按期评审,对测试进行评估和总结,调整测试的内容
3.目前主要的测试用例设计方法是什么?
白盒测试:逻辑覆盖、循环覆盖、基本路径覆盖
黑盒测试:边界值分析法、等价类划分、错误猜想法、因果图法、状态图法、测试大纲法、随机测试、场景法
4.软件产品质量特性是什么?
功能性:适应性、准确性、互操做性、依从性、安全性。
可靠性:成熟性、容错性、易恢复性。
可以使用性:易理解性、易学习性、易操做性。
效率:时间特性、资源特性。
可维护性:易分析性、易变动性、稳定性、易测试性。
可移植性: 适应性、易安装性、遵循性、易替换性
5.软件测试分为几个阶段 各阶段的测试策略和要求是什么?
和开发过程相对应,测试过程会依次经历单元测试、集成测试、系统测试、验收测试四个主要阶段:
单元测试:单元测试是针对软件设计的最小单位––程序模块甚至代码段进行正确性检验的测试工做,一般由开发人员进行。
集成测试:集成测试是将模块按照设计要求组装起来进行测试,主要目的是发现与接口有关的问题。因为在产品提交到测试部门前,产品开发小组都要进行联合调试,所以在大部分企业中集成测试是由开发人员来完成的。
系统测试:系统测试是在集成测试经过后进行的,目的是充分运行系统,验证各子系统是否都能正常工做并完成设计的要求。它主要由测试部门进行,是测试部门最大最重要的一个测试,对产品的质量有重大的影响。
验收测试:验收测试以需求阶段的《需求规格说明书》为验收标准,测试时要求模拟实际用户的运行环境。对于实际项目能够和客户共同进行,对于产品来讲就是最后一次的系统测试。测试内容为对功能模块的全面测试,尤为要进行文档测试。
单元测试测试策略:
自顶向下的单元测试策略:比孤立单元测试的成本高不少,不是单元测试的一个好的选择。
自底向上的单元测试策略:比较合理的单元测试策略,但测试周期较长。
孤立单元测试策略:最好的单元测试策略。
集成测试的测试策略:
大爆炸集成:适应于一个维护型项目或被测试系统较小
自顶向下集成:适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或常常可能被修改;产口控制组件具备较大的技术风险,须要尽早被验证;但愿尽早能看到产品的系统功能行为。
自底向上集成:适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。
基于进度的集成
优势:具备较高的并行度;可以有效缩短项目的开发进度。
缺点:桩和驱动工做量较大;有些接口测试不充分;有些测试重复和浪费。
系统测试的测试策略:
数据和数据库完整性测试;功能测试;用户界面测试;性能评测;负载测试;强度测试;容量测试;安全性和访问控制测试;故障转移和恢复测试;配置测试;安装测试;加密测试;可用性测试;版本验证测试;文档测试
6.测试人员在软件开发过程当中的任务是什么?
一、尽量早的找出系统中的Bug;
二、避免软件开发过程当中缺陷的出现;
三、衡量软件的品质,保证系统的质量;
四、关注用户的需求,并保证系统符合用户需求。
总的目标是:确保软件的质量。
7.一条 Bug 记录最基本应包含:编号、Bug 所属模块、Bug 描述、Bug 级别、发现日期、发现人、修改日期、修改人、修改方法、回归结果等等;
要有效的发现 Bug 需参考需求以及详细设计等前期文档设计出高效的测试用例,而后严格执行测试用例,对发现的问题要充分确认确定,而后再向外发布如此才能提升提交 Bug 的质量。
8. 黑盒测试的优势有:比较简单,不须要了解程序内部的代码及实现;与软件的内部实现无关; 从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;基于软件开发文档,因此也能知道软件实现了文档中的哪些功能;在作软件自动化测试时较为方便。
黑盒测试的缺点有:不可能覆盖全部的代码,覆盖率较低,大概只能达到总代码量的30%;自动化测试的复用性较低。
白盒测试的优势有:帮助软件测试人员增大代码的覆盖率,提升代码的质量,发现代码中隐 藏的问题。
白盒测试的缺点有:程序运行会有不少不一样的路径,不可能测试全部的运行路径;测试基于代码,只能测试开发人员作的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;系统庞大时,测试开销会很是大。
9.如何测试一个纸杯?
功能度:用水杯装水看漏不漏;水能不能被喝到
安全性:杯子有没有毒或细菌
可靠性:杯子从不一样高度落下的损坏程度
可移植性:杯子在不一样的地方、温度等环境下是否均可以正常使用
兼容性:杯子是否可以容纳果汁、白水、酒精、汽油等
易用性:杯子是否烫手、是否有防滑措施、是否方便饮用
用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述
疲劳测试:将杯子盛上水(案例一)放24小时检查泄漏时间和状况;盛上汽油(案例二)放24小时检查泄漏时间和状况等
压力测试:用根针并在针上面不断加剧量,看压强多大时会穿透
10.详细的描述一个测试活动完整的过程。
项目经理经过和客户的交流,完成需求文档
由开发人员和测试人员共同完成需求文档的评审,评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者没法实现的功能的地方。
项目经理经过综合开发人员,测试人员以及客户的意见,完成项目计划。而后 SQA 进入项目,开始进行统计和跟踪
开发人员根据需求文档完成需求分析文档,测试人员进行评审,评审的主要内容包括是否有遗漏或者双方理解不一样的地方。
测试人员完成测试计划文档,测试计划包括的内容上面有描述。
测试人员根据修改好的需求分析文档开始写测试用例,同时开发人员完成概要设计文档,详细设计文档。此两份文档成为测试人员撰写测试用例的补充材料。
测试用例完成后,测试和开发须要进行评审。
测试人员搭建环境
开发人员提交第一个版本,可能存在未完成功能,须要说明。测试人员进行测试,发现 BUG后提交给 BugZilla。
开发提交第二个版本,包括 Bug Fix 以及增长了部分功能,测试人员进行测试。
重复上面的工做,通常是 3-4 个版本后 BUG 数量减小,达到出货的要求。
若是有客户反馈的问题,须要测试人员协助重现并从新测试。
11.黑盒测试的测试用例常见设计方法都有哪些?请分别以具体的例子来讲明这些方法在测试用例设计工做中的应用。
等价类划分
划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的表明值就等于对这一类其它值的测试.
所以,能够把所有输入数据合理划分为若干等价类,在每个等价类中取一个数据做为测试的输入条件,就能够用少许表明性的测试数据.取得较好的测试结果.等价类划分可有两种不一样的状况:有效等价类和无效等价类.
边界值分析法
边界值分析方法是对等价类划分方法的补充。测试工做经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.所以针对各类边界状况设计测试用例,能够查出更多的错误.
使用边界值分析方法设计测试用例,首先应肯定边界状况.一般输入和输出等价类的边界,就是应着重测试的边界状况.应当选取正好等于,刚刚大于或刚刚小于边界的值做为测试数据,而不是选取等价类中的典型值或任意值做为测试数据.
错误猜想法
基于经验和直觉推测程序中全部可能存在的各类错误, 从而有针对性的设计测试用例的方法.
错误推测方法的基本思想: 列举出程序中全部可能有的错误和容易发生错误的特殊状况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 之前产品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为 0 的状况.输入表格为空格或输入表格只有一行. 这些都是容易发生错误的状况. 可选择这些状况下的例子做为测试用例.
因果图方法
前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的状况. 但要检查输入条件的组合不是一件容易的事情, 即便把全部输入条件划分红等价类,他们之间的组合状况也至关多. 所以必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动做的形式来考虑设计测试用例. 这就须要利用因果图(逻辑模型). 因果图方法最终生成的就是断定表. 它适合于检查程序输入条件的各类组合状况.
正交表分析法
有时候,可能由于大量的参数的组合而引发测试用例数量上的激增,同时,这些测试用例并无明显的优先级上的差距,而测试人员又没法完成这么多数量的测试,就能够经过正交表来进行缩减一些用例,从而达到尽可能少的用例覆盖尽可能大的范围的可能性。
场景分析方法
指根据用户场景来模拟用户的操做步骤,这个比较相似因果图,可是可能执行的深度和可行性更好。
状态图法
经过输入条件和系统需求说明获得被测系统的全部状态,经过输入条件和状态得出输出条件;经过输入条件、输出条件和状态得出被测系统的测试用例。
12.您认为在测试人员同开发人员的沟经过程中,如何提升沟通的效率和改善沟通的效果?维持测试人员同开发团队中其余成员 良好的人际关系的关键是什么?
尽可能面对面的沟通,其次是能直接经过电话沟通,若是只能经过 Email 等非及时沟通工具的话,强调必须对特性的理解深入以及能表达清楚。
运用一些测试管理工具如 禅道 进行管理也是较有效的方法,同时要注意在禅道中对 BUG 有准确的描述。
在团队中创建测试人员与开发人员良好沟通中注意如下几点:
一真诚
二是团队精神
三是在专业上有共同语言
四是要对事不对人,工做至上
固然也能够经过直接指出一些小问题,
13.你对测试最大的兴趣在哪里?为何?
回答这个面试题,没有固定统一的答案,但多是许多企业都会问到的。提供如下答案供考:
最大的兴趣,感受这是一个有挑战性的工做;
测试是一个经验行业,工做越久越能感受到作好测试的难度和乐趣
经过本身的工做,能使软件产品愈来愈完善,从中体会到乐趣
回答此类问题注意如下几个方面:
尽量的切合招聘企业的技术路线来表达你的兴趣,例如该企业是数据库应用的企业,那么表示你的兴趣在数据库的测试,而且但愿经过测试提高本身的数据库掌握能力。
代表你作测试的目的是为了提高能力,也是为了更好的作好测试;提高能力不是为了之后转开发或其余的,除非用人企业有这样的安排。
不要过多的表达你的兴趣在招聘企业的范畴这外。
14.你自认为测试的优点在哪里?
有韧性
有耐心
作事有条理性
喜欢面对挑战
有信心作好每一件事情
较强的沟通能力
从之前的经理处都获得了很好的评价代表我作的很好
15.请你分别画出 I OSI 的七层网络结构图和 P TCP/IP 的四层结构图。
答:OSI 七层网络结构图,由上至下:
应用层 ;表示层 ;会话层 ;传输层 ;网络层 ;数据链路层;物理层
TCP/IP 的四层结构图
应用层;传输层;互联层;链路层
16 说说你对集成测试中自顶向下集成和自底向上集成两个策略的理解,要谈出它们各自的优缺点和主要适应于哪一种类型测试;
自顶向下集成
优势:较早地验证了主要控制和判断点;按深度优先能够首先实现和验证一个完整的软件功能;功能较早证明,带来信心;只需一个驱动,减小驱动器开发的费用;支持故障隔离。
缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。
适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或常常可能被修改;产口控制组件具备较大的技术风险,须要尽早被验证;但愿尽早能看到产品的系统功能行为。
自底向上集成
优势:对底层组件行为较早验证;工做最初能够并行集成,比自顶向下效率高;减小了桩的工做量;支持故障隔离。
缺点:驱动的开发工做量大;对高层的验证被推迟,设计上的错误不能被及时发现。
适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。
17.什么是白盒测试?什么是黑盒测试? ? 什么是回归测试? ?
白盒测试是测试人员要了解程序结构和处理过程,按照程序内部逻辑测试程序,检查程序中的每条通路是否按照预约要求正确工做.它主要的针对被测程序的源代码,测试者能够彻底不考虑程序的功能.
白盒测试流程:详细设计-->源程序-->分析程序内部逻辑结构-->流程图-->制定测试用例-->被测程序-->执行路径-->覆盖状况分析 .
黑盒测试:(Black-box Testing,又称为功能测试或数据驱动测试)是把测试对象看做一个黑盒子。利用黑盒测试法进行动态测试时,须要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。
回归测试: (regression testing): 回归测试有两类:用例回归和错误回归;用例回归是过一段时间之后再回头对之前使用过的用例在从新进行测试,看看会从新发现问题。
错误回归,就是在新版本中,对之前版本中出现并修复的缺陷进行再次验证,并以缺陷为核心,对相关修改的部分进行测试的方法。
18.单元测试、集成测试、系统测试的侧重点是什么?
单元测试针对的是软件设计的最小单元--程序模块(面向过程当中是函数、过程;面向对象中是类。),进行正确性检验的测试工做,在于发现每一个程序模块内部可能存在的差错.通常有两个步骤:人工静态检查\动态执行跟踪
集成测试针对的是经过了单元测试的各个模块所集成起来的组件进行检验,其主要内容是各个单元模块之间的接口,以及各个模块集成后所实现的功能.
系统测试针对的是集成好的软件系统,做为整个计算机系统的一个元素,与计算机硬件\外设\某些支持软件\数据和人员等其余系统元素结合在一块儿,要在实际的运行环境中,对计算机系统进行一系列的集成测试和确认测试.
19.一个测试工程师应具有那些素质?
一、责任心
二、沟通能力
三、团队合做精神
四、耐心、细心、信心
五、时时保持怀疑态度,而且有缺陷预防的意识
六、具有必定的编程经验
20.你所了解的的软件测试类型都有哪些,简单介绍一下。
按测试 策略分类:
一、静态与动态测试
二、黑盒与白盒测试
三、手工和自动测试
四、冒烟测试
五、回归测试;
按测试阶段分类:单元测试、集成测试、系统测试;
其余常见测试方法:一、功能测试 二、性能测试 三、压力测试 四、负载测试 五、易用性测试 六、安装测试 七、界面测试 八、配置测试 九、文档测试 十、兼容性测试 十一、安全性测试 十二、恢复测试
21.你认为作好测试计划工做的关键是什么?
明确测试的目标,加强测试计划的实用性
采用评审和更新机制,保证测试计划知足实际需求
分别建立测试计划与测试详细规格、测试用例
22.软件测试分哪些阶段?各阶段的含义?
分为单元测试、集成测试、确认测试、系统测试、验收测试。单元测试是最小单位的测试,测试独立模块;
集成测试主要测试模块之间的接口是否正常,
确认测试相似于冒烟测试一般在大规模系统测试以前验证版本主要功能是否实现,版本的稳定性是否能够进入系统测试,
系统测试是全面测试验证系统是否知足用户需求包括功能、性能、兼容性等等。
验收测试是用户参与的测试。
23.一份测试计划应该包括哪些内容?
背景、项目简介、目的、测试范围、测试策略、人员分工、资源要求、进度计划、参考文档、经常使用术语、提交文档、风险分析。
24.需求测试的注意事项有哪些?
是否使用了公司的模板 文档内容是否符合规范 全部的需求是分级是否清析适当? 全部的需求是否具备一致性 需求是否可行(即,该需求组合有解决方案) 需求能否用己知的约束来实现 需求是否足够(即,能够把它送到一个规范的开发组织,并有一个生产出所须要产品的合理的可能性) 全部的其它需求是交叉引用是否正确 用户描述是否清楚 是否用客户的语言来描述需求 每一个需求描述是否清楚没有岐义,能够移交给一个独立的组去实现时也能理解 是否全部的需求都是可验证的 是否每条需求都具备独立性,即便发生了变化也不会影响其它需求 性能指标是否明确 非功能性需求是否获得充分表现 是否完整列出适用的标准或协议 标准和协议之间是否存在冲突