软件测试工程师面试经典Q&A

  • 为什么需要在一个团队中开展测试工作?

①开发人员对于自己编写的代码有固定逻辑,难以找出软件系统中存在的其他问题;

②通过具有专业测试知识和测试水平的测试员,可以更系统、有效的找出软件系统中存在的大部分问题,以保证系统的质量。

  • 您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?

①我曾经做过web测试,平板客户端软件测试,其中包括功能测试、性能测试、用户体验测试,编写测试用例,跟踪和管理bug、编写测试报告,编写及评审用户手册等。

②最擅长的是功能测试。

  • 所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别和联系。

①熟悉的软件测试类型有:功能测试、性能测试、界面测试。

功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试,只关注测试的输入和输出,不需测试软件产品的内部结构和处理过程。功能测试的方法有:等价类划分法、边界值法、场景法、因果图法、决策表法、正交法、错误推测法、综合策略等。

性能测试主要通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,通过负载测试确定系统在各种工作负载下的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。

界面测试,界面是用户与软件交互的最直接的层,界面的好坏决定了用户对软件的第一印象。设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反失败的界面设计会让用户有挫败感,极大的影响了用户体验。

区别在于:功能测试关注产品的所有功能上,要考虑到每个细节功能,每个可能存在的功能问题。性能测试主要关注于产品整体的多用户并发下的稳定性和健壮性。界面测试更关注于用户体验上,用户使用该产品的时候是否易用、是否易懂、是否规范、是否美观、是否安全。 先确保某个测试点的功能没问题,再进行性能测试。

  • 您认为做好测试用例设计工作的关键是什么? 投入产出比,高覆盖率

白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果。

黑盒测试用例设计的关键是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题。

  • 请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。

黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。

白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。

单元测试:是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。

集成测试:是单元测试的逻辑扩展,将多个测试过的模块组合在一起,并且测试它们之间的接口。

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

验收测试:目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。

  • 测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是重要的?

软件测试计划指导整个测试过程,包括产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。可以明确测试任务和测试方法,保证测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。 其中最重要的是测试策略、测试方法(最好能先评审)。

  • 做好测试计划工作的关键是什么?

明确测试的目标,增强测试计划的实用性。

坚持“5W”规则,明确内容与过程。

采用评审和更新机制,保证测试计划满足实际需求。

分别创建测试计划于测试详细规格、测试用例。

  • 您所熟悉的测试用例方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。

①等价类划分法。将全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据,取得比较好的测试结果,等价类划分可分为有效等价类和无效等价类两种情况;

②边界值分析法。对等价类划分法的补充,可以通过对输入或输出范围边界值的测试,查出更多的错误。选取刚刚小于、刚好等于、刚刚大于边界的值作为测试数据;

③错误推测法:通过经验和直觉推测程序中可能存在的各种错误,从而有针对性的设计测试用例;

④因果图法:适用于输入条件之间、输入与输出之间存在复杂的组合关系时,通过因果图法组合各种可能的情况,最终生成判定表。

  • 请您以以往的实际工作为例,详细的描述一次测试用例设计的完整过程

功能测试测试用例:结合多种测试用例设计方法,针对系统每个页面、每个字段

界面测试测试用例:对照设计模板,针对界面排版、文字、易用性

性能测试测试用例:根据测试计划、性能指标设置参数值

阅读需求规格说明书,明确需求;以模块为单位分解整个系统,根据模块优先等级和风险程度、以页面为单位、结合多种测试用例设计方法,对系统进行测试用例设计。等价类划分---边界值分析---错误推测法---场景法

  • 上家公司为什么离职?

觉得目前个人发展已经没有什么空间,因为只有我一个测试,没有能够可以互相交流和学习的测试,只能自己学习,专业技能提升缓慢。希望能进入一个成熟的工作团队。

  • 对我们公司业务了解吗?

提前查看公司的介绍和主营业务,去官网了解公司产品,对产品进行简单的概述。

  • 说一下你个人优缺点?

优点:耐心、细心、责任心强、尽全力完成工作任务、善于思考、乐于探索

缺点:比较抠细节,对于与测试理论知识不符合的问题都会抠出来,并且主动去确认类似问题是否需要修改。记不住不理解的知识,会自己花时间去做深入学习。

  • 谈薪?

提取了解行业薪资水平;明确期望薪资的具体数目;确定基础薪资,福利是浮云(搞清公司岗位的薪资结构、上班时间、加班算调休还是算加班工资);给自己留后路;态度。

  • 怎么测电梯?

需求测试:查看电梯使用说明书、安全说明书等;

界面测试:查看电梯外观;

功能测试:①电梯的按钮是否都可以使用;

②报警装置是否可用;

③电梯能否实现正常的上升和下降功能;

④显示屏能否正确显示;

⑤电梯门的打开、关闭是否正常;

⑥与其他电梯之间是否协作良好;

⑦通风状况如何;

⑧突然停电时的情况;

⑨上升途中的响应:

  1. 电梯本来在1楼,如果有人按了18楼,那么电梯在上升到5楼的时候,有人按了10楼,这时候是否会在10楼先停下
  2. 电梯下降到10层时显示满员,此时若8层有人等待电梯,是否在8层停。

⑩是否有手机信号。

可靠性测试:门关上的一刹那出现障碍物;同时按开门和关门按钮;同时按上键和下键;点击当前楼层号码;多次点击同一楼层号码。

易用性测试:电梯的按钮设计是否符合一般人的习惯。

用户文档测试:使用手册是否对电梯的用法、限制、使用条件等有详细的描述。

压力测试:看电梯的最大承重量,在负载过重时报警装置是否有提醒。

稳定性测试:看电梯在最大负载下平行运行的最长时间。

  • 怎么测水杯?

功能测试:能否装水;除了水,能否装其他液体,比如可乐,酒精;能装多少ml的水;杯子是否有刻度表;杯子能否泡茶、咖啡等;杯子能否放冰箱、做冰块;杯子的材质是什么。

界面测试:外观好不好看;什么颜色;什么形状;重量多少;杯子是否有异味;杯子的图案是否合理。

性能测试:能否装100度的开水;能否装0度的冰水;装满水,放几天后,是否会漏水;杯子内壁上的涂料是否容易脱落;杯子上的颜色是否容易褪色或脱落。

安全性测试:制作杯子的材料,是否有毒;放微波炉加热是否会爆炸或熔化;掉到地上是否会摔碎;杯子是否容易长细菌;杯子是否有缺口,会划破嘴巴;杯子内壁上的材料,是否会溶解到水中;杯子破碎后,是否会对使用者造成伤害。

可用性测试:杯子是否容易烫手;杯子是否好拿;杯子的水是否容易喝到;杯子是否有防滑措施。

  • 怎么测试一个网站?

首先,查找需求说明、网站设计说明书,分析需求;

然后,制定测试计划,确定测试范围和测试策略,一般包括有:功能性测试(链接测试、提交功能的测试、多媒体元素是否可以正确加载和显示、多语言支持是否能够正确显示选择的语言等)、界面测试(页面风格、控件使用、文字)、性能测试(压力测试、负载测试、强度测试)、数据库测试(连结性、对数据的存取操作、数据内容的验证等)、安全性测试(基本的登录功能检查、是否存在溢出错误导致系统崩溃或者权限泄露、相关开发语言的常见安全性问题检查例如SQL注入等)、兼容性测试(浏览器、操作系统、软件平台、数据库)等;

开展测试并记录缺陷;

定期评审,对测试进行评估和总结,调整测试的内容。

  • 一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别?

所有用户在一个客户端上,不必考虑分布式管理的问题;而用户分布在不同的客户端上,需要考虑使用控制器来整体调配不同客户机上的用户。同时,还需要给予相应的权限配置和防火墙设置;

300个用户在一个客户端上,会占用客户机更多的资源,而影响测试的结果;线程之间可能发生干扰,而产生一些异常;需要更大的带宽;IP地址的问题,可能需要IP Spoof来绕过服务器对于单一IP地址最大连接数的限制。http://www.testtao.cn/?p=981

  • 你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎么解决?

首先,记录下这个bug,客观地向开发经理说明自己判断的理由并给出依据;

或者,与开发人员、设计人员、客户代表等相关人员进行探讨,确认是否是缺陷;

再不行,就提交到上级,由上级决定。

  • (淘宝)购物车功能测试用例设计?

功能测试:购物车页面是否正确显示被添加到购物车的商品,包括规格、数量等;

能否通过点击购物车列表中的某个商品跳转到对应商品详情页;

能否在购物车页面更改被添加商品的规格、数量等;

能否将购物车列表中的某个商品删除;

能否批量将购物车列表中的某几个或全部商品删除;

选中一个或几个商品,购物车页面下方是否正确计算出被选中商品的总价;

在选中一个或几个商品后,点击“结算”按钮,能否跳转到支付页面;

界面测试:页面布局是否合理,符合用户习惯;不同店铺的商品在不同的table区域显示,区别明显;检查文字内容是否正确合理。

性能测试:打开页面需要多久,跳转到支付页面需要多久。

  • 如何测试网页的登录页面?

具体需求:有一个登录页面,上面有2个textbox,一个提交按钮。请针对这个页面设计30个以上的测试用例。

界面测试:①界面排版是否合理;②界面风格是否合理;③查看界面有无文字错误。

功能测试:④在文本框中输入有效的用户名和密码后,点击提交按钮,测试能否成功登录;⑤两个文本框都空白(空格),直接点击提交按钮,测试是否有合理的提示信息;⑥置用户名文本框为空(空格),输入正确的密码后点击提交按钮,测试是否有合理的提示信息;⑦输入正确的用户名,置密码文本框为空(空格),测试是否有合理的提示信息;⑧输入错误的用户名和正确的密码后点击提交,测试能否成功登录;⑨输入正确的用户名和错误的密码后点击提交,测试能否成功登录;14) 在文本框中输入有效的用户名和密码后,按下回车键,测试能否成功登录;15)成功登录后,能否跳转到正确的界面;

性能测试:16)打开登录页面,需要几秒;17)输入正确的用户名和密码后,登录成功跳转到主界面,需要几秒(不超过5秒);

安全性测试:18)登录成功后生成的cookie,是否是httponly(否则容易被脚本盗取);

19)用户名和密码是否通过加密的方式,发送给web服务器;20)用户名和密码的验证,应该是用服务器端验证,而不能单单是在客户端用js验证;21)用户名和密码的输入框,应该屏蔽SQL注入攻击;22)用户名和密码的输入框,应该禁止输入脚本(防止XSS攻击);23)错误登录的次数限制(防止暴力破解);

可用性测试:24)能否用键盘全键进行操作;25)能否通过enter键登录;26)...

  • 软件测试的工作中有哪里是印象比较深刻的,谈一谈?

对于需要重复录入大量数据的操作,编写了自动化脚本,借助脚本自动录入数据,让我从繁复的录入工作中解脱出来,待数据录入完成后再进行后续处理,这样我就有更多的时间对测试用例进行优化,提升测试效果。我也体会到了能够编写自动化测试脚本的能力对我的测试工作带来的帮助。技能提升对工作效率的积极作用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值