京东软件测试岗⾯试30题(⼲货)
1、⿊盒测试的测试⽤例常见设计⽅法都有哪些?请分别以具体的例⼦来说明这些⽅法在测试⽤例设计⼯作中的应⽤。
1)等价类划分: 等价类是指某个输⼊域的⼦集合.在该⼦集合中,各个输⼊数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这⼀类其它值的测试.因此,可以把全部输⼊数据合理划分为若⼲等价类,在每⼀个等价类中取⼀个数据作为测试的输⼊条件,就可以⽤少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和⽆效等价类.
2)边界值分析法:是对等价类划分⽅法的补充。测试⼯作经验告诉我,⼤量的错误是发⽣在输⼊或输出范围的边界上,⽽不是发⽣在输⼊输出范围的内部.因此针对各种边界情况设计测试⽤例,可以查出更多的错误.
使⽤边界值分析⽅法设计测试⽤例,⾸先应确定边界情况.通常输⼊和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚⼤于或刚刚⼩于边界的值作为测试数据,⽽不是选取等价类中的典型值或任意值作为测试数据.
3)错误猜测法:基于经验和直觉推测程序中所有可能存在的各种错误, 从⽽有针对性的设计测试⽤例的⽅法.
错误推测⽅法的基本思想: 列举出程序中所有可能有的错误和容易发⽣错误的特殊情况,根据他们选择测试⽤例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输⼊数据和输出数据为0的情况. 输⼊表格为空格或输⼊表格只有⼀⾏. 这些都是容易发⽣错误的情况. 可选择这些情况下的例⼦作为测试⽤例.
4)因果图⽅法:前⾯介绍的等价类划分⽅法和边界值分析⽅法,都是着重考虑输⼊条件,但未考虑输⼊条件之间的联系, 相互组合等. 考虑输⼊条件之间的相互组合,可能会产⽣⼀些新的情况. 但要检查输⼊条件的组合不是⼀件容易的事情, 即使把所有输⼊条件划分成等价类,他们之间的组合情况也相当多.
因此必须考虑采⽤⼀种适合于描述对于多种条件的组合,相应产⽣多个动作的形式来考虑设计测试⽤例. 这就需要利⽤因果图(逻辑模型). 因果图⽅法最终⽣成的就是判定表. 它适合于检查程序输⼊条件的各种组合情况.
5)正交表分析法:可能因为⼤量的参数的组合⽽引起测试⽤例数量上的激增,同时,这些测试⽤例并没有明显的优先级上的差距,⽽测试⼈员⼜⽆法完成这么多数量的测试,就可以通过正交表来进⾏缩减⼀些⽤例,从⽽达到尽量少的⽤例覆盖尽量⼤的范围的可能性。
6)场景分析⽅法:指根据⽤户场景来模拟⽤户的操作步骤,这个⽐较类似因果图,但是可能执⾏的深度和可⾏性更好。
7)状态图法:通过输⼊条件和系统需求说明得到被测系统的所有状态,通过输⼊条件和状态得出输出条件;通过输⼊条件、输出条件和状态得出被测系统的测试⽤例。
8)⼤纲法:⼤纲法是⼀种着眼于需求的⽅法,为了列出各种测试条件,就将需求转换为⼤纲的形式。⼤纲表⽰为树状结构,在根和每个叶⼦结点之间存在唯⼀的路径。⼤纲中的每条路径定义了⼀个特定的输⼊条件集合,⽤于定义测试⽤例。树中叶⼦的数⽬或⼤纲中的路径给出了测试所有功能所需测试⽤例的⼤致数量。
2、详细的描述⼀个测试活动完整的过程。(供参考,本答案主要是瀑布模型的做法)
项⽬经理通过和客户的交流,完成需求⽂档,由开发⼈员和测试⼈员共同完成需求⽂档的评审,评审的内容包括:需求描述不清楚的地⽅和可能有明显冲突或者⽆法实现的功能的地⽅。项⽬经理通过综合开发⼈员,测试⼈员以及客户的意见,完成项⽬计划。然后SQA进⼊项⽬,开始进⾏统计和跟踪
开发⼈员根据需求⽂档完成需求分析⽂档,测试⼈员进⾏评审,评审的主要内容包括是否有遗漏或双⽅理解不同的地⽅。测试⼈员完成测试计划⽂档,测试计划包括的内容上⾯有描述。
测试⼈员根据修改好的需求分析⽂档开始写测试⽤例,同时开发⼈员完成概要设计⽂档,详细设计⽂档。此两份⽂档成为测试⼈员撰写测试⽤例的补充材料。
测试⽤例完成后,测试和开发需要进⾏评审。
测试⼈员搭建环境
开发⼈员提交第⼀个版本,可能存在未完成功能,需要说明。测试⼈员进⾏测试,发现BUG后提交给BugZilla。
开发提交第⼆个版本,包括Bug Fix以及增加了部分功能,测试⼈员进⾏测试。
重复上⾯的⼯作,⼀般是3-4个版本后BUG数量减少,达到出货的要求。
如果有客户反馈的问题,需要测试⼈员协助重现并重新测试。
3、BUG管理⼯具的跟踪过程(⽤BugZilla为例⼦)
测试⼈员发现了BUG,提交到Bugzilla中,状态为new,BUG的接受者为开发接⼝⼈员
开发接⼝将BUG分配给相关的模块的开发⼈员,状态修改为已分配,开发⼈员和测试确认BUG,如果是本⼈的BUG,则设置为接收;如果是别的开发⼈员的问题,则转发出去,由下⼀个开发⼈员来进⾏此⾏为;如果认为不是问题,则需要⼤家讨论并确认后,拒绝这个BUG,然后测试⼈员关闭此问题。
如果开发⼈员接受了BUG,并修改好以后,将BUG状态修改为已修复,并告知测试在哪个版本中可以测试。
测试⼈员在新版本中测试,如果发现问题依然存在,则拒绝验证;如果已经修复,则关闭BUG。
4、您认为在测试⼈员同开发⼈员的沟通过程中,如何提⾼沟通的效率和改善沟通的效果?维持测试⼈员同开发团队中其他成员良好的⼈际关系的关键是什么?
尽量⾯对⾯的沟通,其次是能直接通过电话沟通,如果只能通过Email等⾮及时沟通⼯具的话,强调必须对特性的理解深刻以及能表达清楚。
运⽤⼀些测试管理⼯具如TestDirector进⾏管理也是较有效的⽅法,同时要注意在TestDirector中对BUG有准确的描述。
在团队中建⽴测试⼈员与开发⼈员良好沟通中注意以下⼏点:
java可以开发什么软件⼀真诚、⼆是团队精神、三是在专业上有共同语⾔、四是要对事不对⼈,⼯作⾄上
当然也可以通过直接指出⼀些⼩问题,⽽不是进⼊BUG Tracking System来增加对⽅的好感。
5、你对测试最⼤的兴趣在哪⾥?为什么?
回答这个⾯试题,没有固定统⼀的答案,但可能是许多企业都会问到的。提供以下答案供考:
最⼤的兴趣,感觉这是⼀个有挑战性的⼯作;
测试是⼀个经验⾏业,⼯作越久越能感觉到做好测试的难度和乐趣
通过⾃⼰的⼯作,能使软件产品越来越完善,从中体会到乐趣
回答此类问题注意以下⼏个⽅⾯:
尽可能的切合招聘企业的技术路线来表达你的兴趣,例如该企业是数据库应⽤的企业,那么表⽰你的兴趣在数据库的测试,并且希望通过测试提升⾃⼰的数据库掌握能⼒。
表明你做测试的⽬的是为了提升能⼒,也是为了更好的做好测试;提升能⼒不是为了以后转开发或其他的,除⾮⽤⼈企业有这样的安排。
不要过多的表达你的兴趣在招聘企业的范畴这外。⽐如招聘企业是做财务软件的,可是你表现出来的是对游戏软件的兴趣;或招聘是做JAVA开发的,⽽你的兴趣是在C类语⾔程序的开发。
6、你⾃认为测试的优势在哪⾥?
该⾯试也没有固定不变的答案,但可参考以下⼏点,并结合⾃⾝特点:
有韧性、有耐⼼、做事有条理性、喜欢⾯对挑战、有信⼼做好每⼀件事情、较强的沟通能⼒、从以前的经理处都得到了很好的评价表明我做的很好
7、简述你在以前的⼯作中做过哪些事情,⽐较熟悉什么。参考答案如下。
我过去的主要⼯作是系统测试和⾃动化测试。在系统测试中,主要是对BOSS系统的业务逻辑功能,以及软交换系统的Class 5特性进⾏测试。性能测试中,主要是进⾏的压⼒测试,在各个不同数量请求
的情况下,获取系统响应时间以及系统资源消耗情况。⾃动化测试主要是通过⾃⼰写脚本以及⼀些第三⽅⼯具的结合来测试软交换的特性测试。
在测试中,我感觉对⽤户需求的完全准确的理解⾮常重要。另外,就是对BUG的管理,要以需求为依据,并不是所有BUG均需要修改。
测试⼯作需要耐⼼和细致,因为在新版本中,虽然多数原来发现的BUG得到了修复,但原来正确的功能也可能变得不正确。因此要注重迭代测试和回归测试。
8、在C/C++中static有什么⽤途?(请⾄少说明两种)
1)在函数体,⼀个被声明为静态的变量在这⼀函数被调⽤过程中维持其值不变。
2) 在模块内(但在函数体外),⼀个被声明为静态的变量可以被模块内所⽤函数访问,但不能被模块外其它函数访问。它是⼀个本地的全局变量。
3) 在模块内,⼀个被声明为静态的函数只可被这⼀模块内的其它函数调⽤。那就是,这个函数被限制在声明它的模块的本地范围内使⽤
9、引⽤与指针有什么区别?
1) 引⽤必须被初始化,指针不必。
2) 引⽤初始化以后不能被改变,指针可以改变所指的对象。
3) 不存在指向空值的引⽤,但是存在指向空值的指针。
10、Internet采⽤哪种⽹络协议?该协议的主要层次结构?Internet物理地址和IP地址转换采⽤什么协议?
TCP/IP协议主要层次结构为: 应⽤层/传输层/⽹络层/数链路层。
ARP (Address Resolution Protocol)(地据址解析协议)
11、说说你对集成测试中⾃顶向下集成和⾃底向上集成两个策略的理解,要谈出它们各⾃的优缺点和主要适应于哪种类型测试;
⾃顶向下集成
优点:较早地验证了主要控制和判断点;按深度优先可以⾸先实现和验证⼀个完整的软件功能;功能较早证实,带来信⼼;只需⼀个驱动,减少驱动器开发的费⽤;⽀持故障隔离。
缺点:柱的开发量⼤;底层验证被推迟;底层组件测试不充分。
适应于产品控制结构⽐较清晰和稳定;⾼层接⼝变化较⼩;底层接⼝未定义或经常可能被修改;产⼝控制组件具有较⼤的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能⾏为。
⾃底向上集成
优点:对底层组件⾏为较早验证;⼯作最初可以并⾏集成,⽐⾃顶向下效率⾼;减少了桩的⼯作量;⽀持故障隔离。
缺点:驱动的开发⼯作量⼤;对⾼层的验证被推迟,设计上的错误不能被及时发现。
适应于底层接⼝⽐较稳定;⾼层接⼝变化⽐较频繁;底层组件较早被完成。
12、软件验收测试包括正式验收测试、alpha测试、beta测试三种测试。
13、系统测试的策略有很多种的,有性能测试、负载测试、强度测试、易⽤性测试、安全测试、配置测试、安装测试、⽂档测试、故障恢复测试、⽤户界⾯测试、恢复测试、分布测试、可⽤性测试。
14、设计系统测试计划需要参考的项⽬⽂档有软件测试计划、软件需求⼯件、和迭代计划
15.通过画因果图来写测试⽤例的步骤为___、___、___、___及把因果图转换为状态图共五个步骤。 利⽤因果图⽣成测试⽤例的基本步骤是:
§ 分析软件规格说明描述中,哪些是原因(即输⼊条件或输⼊条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予⼀个标识符。
§ 分析软件规格说明描述中的语义,出原因与结果之间,原因与原因之间对应的是什么关系? 根据这些关系,画出因果图。
§ 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上⽤⼀些记号标明约束或限制条件。 § 把因果图转换成判定表。
§ 把判定表的每⼀列拿出来作为依据,设计测试⽤例。
16、请说出这些测试最好由那些⼈员完成,测试的是什么?
代码、函数级测试⼀般由⽩盒测试⼈员完成,他们针对每段代码或函数进⾏正确性检验,检查其是否正确的实现了规定的功能。
模块、组件级测试主要依据是程序结构设计测试模块间的集成和调⽤关系,⼀般由测试⼈员完成。
系统测试在于模块测试与单元测试的基础上进⾏测试。了解系统功能与性能,根据测试⽤例进⾏全⾯的测试。
17、 设计测试⽤例时应该考虑哪些⽅⾯,即不同的测试⽤例针对那些⽅⾯进⾏测试?
设计测试⽤例时需要注意的是,除了对整体流程及功能注意外,还要注意强度测试、性能测试、压⼒测试、边界值测试、稳定性测试、安全性测试等多⽅⾯。(测试⽤例需要考虑的四个基本要素是输⼊、输出、操作和测试环境;另外,测试⽤例需要考虑的是测试类型(功能、性能、安全……),这部分可以参照TP做答。此外,还需要考虑⽤例的重要性和优先级)
18、 在windows下保存⼀个⽂本⽂件时会弹出保存对话框,如果为⽂件名建⽴测试⽤例,等价类应该怎样划分?
单字节,如A;双字节, AA、我我;特殊字符 /‘。‘;、=-等;保留字,如com;⽂件格式为8.3格式的;⽂件名格式为⾮8.3格式
的;/,,*等九个特殊字符。
19、假设有⼀个⽂本框要求输⼊10个字符的,对于该⽂本框应该怎样划分等价类?
特殊字符,如10个*或¥;英⽂字母,如ABCDefghik;⼩于⼗个字符,如123;⼤于⼗个字符,如11111111111;数字和其他混合,如123AAAAAAA;空字符;保留字符
20.软件测试项⽬从什么时候开始,?为什么?
软件测试应该在需求分析阶段就介⼊,因为测试的对象不仅仅是程序编码,应该对软件开发过程中产⽣的所有产品都测试,并且软件缺陷存在放⼤趋势.缺陷发现的越晚,修复它所花费的成本就越⼤.
21、什么是回归测试?
回归测试: (regression testing): 回归测试有两类:⽤例回归和错误回归;⽤例回归是过⼀段时间以后再回头对以前使⽤过的⽤例在重新进⾏测试,看看会重新发现问题。错误回归,就是在新版本中,对以前版本中出现并修复的缺陷进⾏再次验证,并以缺陷为核⼼,对相关修改的部分进⾏测试的⽅法。
22.单元测试、集成测试、系统测试的侧重点是什么?
单元测试针对的是软件设计的最⼩单元–程序模块(⾯向过程中是函数、过程;⾯向对象中是类。),进⾏正确性检验的测试⼯作,在于发现每个程序模块内部可能存在的差错.⼀般有两个步骤:⼈⼯静态检查\动态执⾏跟踪
集成测试针对的是通过了单元测试的各个模块所集成起来的组件进⾏检验,其主要内容是各个单元模块之间的接⼝,以及各个模块集成后所实现的功能.
系统测试针对的是集成好的软件系统,作为整个计算机系统的⼀个元素,与计算机硬件\外设\某些⽀持软件\数据和⼈员等其他系统元素结合在⼀起,要在实际的运⾏环境中,对计算机系统进⾏⼀系列的集成测试和确认测试.
23.⼀个测试⼯程师应具备那些素质?
1、责任⼼
2、沟通能⼒
3、团队合作精神
4、耐⼼、细⼼、信⼼
5、时时保持怀疑态度,并且有缺陷预防的意识
6、具备⼀定的编程经验
24:你所了解的的软件测试类型都有哪些,简单介绍⼀下。
按测试策略分类:1、静态与动态测试2、⿊盒与⽩盒测试 3、⼿⼯和⾃动测试 4、冒烟测试 5、回归测试;
按测试阶段分类:单元测试、集成测试、系统测试;
其他常见测试⽅法:1、功能测试 2、性能测试 3、压⼒测试 4、负载测试 5、易⽤性测试 6、安装测试 7、界⾯测试 8、配置测试 9、⽂档测试 10、兼容性测试 11、安全性测试 12、恢复测试
25:你认为做好测试计划⼯作的关键是什么?
明确测试的⽬标,增强测试计划的实⽤性
编写软件测试计划得重要⽬的就是使测试过程能够发现更多的软件缺陷,因此软件测试计划的价值取
决于它对帮助管理测试项⽬,并且出软件潜在的缺陷。因此,软件测试计划中的测试范围必须⾼度覆盖功能需求,测试⽅法必须切实可⾏,测试⼯具并且具有较⾼的实⽤性,便于使⽤,⽣成的测试结果直观、准确
坚持“5W”规则,明确内容与过程
“5W”规则指的是“What(做什么)”、“Why(为什么做)”、“When(何时做)”、“Where(在哪⾥)”、“How(如何做)”。利⽤“5W”规则创建软件测试计划,可以帮助测试团队理解测试的⽬的(Why),明确测试的范围和内容(What),确定测试的开始和结束⽇期(When),指出测试的⽅法和⼯具(How),给出测试⽂档和软件的存放位置(Where)。
采⽤评审和更新机制,保证测试计划满⾜实际需求
测试计划写作完成后,如果没有经过评审,直接发送给测试团队,测试计划内容的可能不准确或遗漏测试内容,或者软件需求变更引起测试范围的增减,⽽测试计划的内容没有及时更新,误导测试执⾏⼈员。
分别创建测试计划与测试详细规格、测试⽤例
应把详细的测试技术指标包含到独⽴创建的测试详细规格⽂档,把⽤于指导测试⼩组执⾏测试过程的
测试⽤例放到独⽴创建的测试⽤例⽂档或测试⽤例管理数据库中。测试计划和测试详细规格、测试⽤例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、⽅法和资源配置,⽽测试详细规格、测试⽤例是完成测试任务的具体战术。
26:您认为做好测试⽤例设计⼯作的关键是什么?
⽩盒测试⽤例设计的关键是以较少的⽤例覆盖尽可能多的内部程序逻辑结果
⿊盒法⽤例设计的关键同样也是以较少的⽤例覆盖模块输出和输⼊接⼝。不可能做到完全测试,以最少的⽤例在合理的时间内发现最多的问题
27:你的测试职业发展⽬标是什么?
测试经验越多,测试能⼒越⾼。所以我的职业发展是需要时间累积的,⼀步步向着⾼级测试⼯程师奔去。⽽且我也有初步的职业规划,前3年累积测试经验,不断的更新⾃⼰改正⾃⼰,做好测试任务。
28:测试结束的标准是什么?
从微观上来说,在测试计划中定义,⽐如系统在⼀定性能下平稳运⾏72⼩时,⽬前Bug Tracking System中,本版本中没有⼀般严重的BUG,普通BUG的数量在3以下,BUG修复率90%以上等等参数,然后由开发经理,测试经理,项⽬经理共同签字认同版本Release。
如果说宏观的,则是当这个软件彻底的消失以后,测试就结束了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。