2022春招,金三银四季,软件测试面试宝典全家桶(含答案)!

前言

本文章主要为备战金三银四的同仁准备,帮助您更好的应对面试官提问的同时并加强巩固前面所学知识,其中包括以下几类内容:测试技术类面试题(理论面试题(必背+拓展+测试用例)、数据库面试题、自动化及工具面试题和其他技术面试题)!

以上只截取其中一部分哦!!!

1.什么是兼容性测试?兼容性测试侧重哪些方面?

参考答案:

兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性。

兼容的类型,如果细分的话,有平台的兼容,网络兼容,数据库兼容,以及数据格式的兼容。

兼容测试的重点是,对兼容环境的分析。通常,是在运行软件的环境不是很确定的情况下,才需要做兼容。根据软件运行的需要,或者根据需求文档,一般都能够得出用户会在什么环境下使用该软件,把这些环境整理成表单,就得出做兼容测试的兼容环境了。

兼容和配置测试的区别在于,做配置测试通常不是Clean OS下做测试,而兼容测试多是在Clean OS的环境下做的。

2.测试的策略有哪些?

参考答案:

黑盒/白盒,静态/动态,手工/自动,冒烟测试,回归测试,公测(Beta测试的策略)

3.描述测试用例设计的完整过程?

参考答案:

需求分析 + 需求变更的维护工作;

根据需求得出测试需求;

设计测试方案,评审测试方案;

方案评审通过后,设计测试用例,再对测试用例进行评审;

4.单元测试的策略有哪些?

参考答案:

逻辑覆盖、循环覆盖、同行评审、桌前检查、代码走查、代码评审、景泰数据流分析。

5.你所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试……)?

参考答案:

Compatibility Testing(兼容性测试),也称“Configuration testing(配置测试)”,测试软件是否和系统的其它与之交互的元素之间兼容,如:浏览器、操作系统、硬件等。验证测试对象在不同的软件和硬件配置中的运行情况。

Functional testing (功能测试),也称为behavioral testing(行为测试),根据产品特征、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。本地化软件的功能测试,用于验证应用程序或网站对目标用户能正确工作。使用适当的平台、浏览器和测试脚本,以保证目标用户的体验将足够好,就像应用程序是专门为该市场开发的一样。

Performance testing(性能测试),评价一个产品或组件与性能需求是否符合的测试。包括负载测试、强度测试、数据库容量测试、基准测试等类型。

6.Beta测试与Alpha测试有什么区别?

参考答案:

Beta testing(β测试),测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场。

Alpha testing (α测试),是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试。

7.软件的评审一般由哪些人参加?其目的是什么?

参考答案:

在正式的会议上将软件项目的成果(包括各阶段的文档、产生的代码等)提交给用户、客户或有关部门人员对软件产品进行评审和批准。其目的是找出可能影响软件产品质量、开发过程、维护工作的适用性和环境方面的设计缺陷,并采取补救措施,以及找出在性能、安全性和经济方面的可能的改进。

人员:用户、客户或有关部门开发人员,测试人员,需求分析师都可以,就看处于评审那个阶段。

8.测试活动中,如果发现需求文档不完善或者不准确,怎么处理?

参考答案:

测试需求分析 发现需求文档不完善或者不准确,应该立即和相关人员进行协调交流。

9.阶段评审与项目评审有什么区别?

参考答案:

阶段评审 对项目各阶段评审:对阶段成果和工作;

项目评审 对项目总体评审:对工作和产品。

10.什么是桩模块?什么是驱动模块?

参考答案:

桩模块:被测模块调用模块

驱动模块:调用被测模块

11.你认为做好测试用例工作的关键是什么?

参考答案:

需求和设计文档的理解程度,对系统的熟悉程度。

12.简述一下缺陷的生命周期?

参考答案:

提交->确认->分配->修复->验证->关闭。

13.你觉得软件测试通过的标准应该是什么样的?

参考答案:

缺陷密度值达到客户的要求。

14.一套完整的测试应该由哪些阶段组成?

参考答案:

测试计划、测试设计与开发、测试实施、测试评审与测试结论

15.单元测试的主要内容?

参考答案:

模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试

16.集成测试也叫组装测试或者联合测试,请简述集成测试的主要内容?

参考答案:

(1)在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;

(2)一个模块的功能是否会对另一个模块的功能产生不利的影响;

(3)各个子功能组合起来,能否达到预期要求的父功能;

(4)全局数据结构是否有问题;

(5)单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。

17.简述集成测试与系统测试关系?

参考答案:

(1)集成测试的主要依据概要设计说明书,系统测试的主要依据是需求设计说明书;

(2)集成测试是系统模块的测试,系统测试是对整个系统的测试,包括相关的软硬件平台、网络以及相关外设的测试。

18.软件测试的文档测试应当贯穿于软件生命周期的全过程,其中用户文档是文档测试的重点。那么软件系统的用户文档包括哪些?

参考答案:

用户手册

安装和设置指导

联机帮助

指南、向导

样例、示例和模板

授权/注册登记表

最终用户许可协议

19.软件系统中除用户文档之外,文档测试还应该关注哪些文档?

参考答案:

开发文档

软件需求说明书

数据库设计说明书

概要设计说明书

详细设计说明书

可行性研究报告

管理文档

项目开发计划

测试计划

测试报告

开发进度月报

开发总结报告

20.简述软件系统中用户文档的测试要点?

参考答案:

(1)读者群。文档面向的读者定位要明确。对于初级用户、中级用户以及高级用户应该有不同的定位

(2)术语。文档中用到的术语要适用与定位的读者群,用法一致,标准定义与业界规范相吻合。

(3)正确性。测试中需检查所有信息是否真实正确,查找由于过期产品说明书和销售人员夸大事实而导致的错误。检查所有的目录、索引和章节引用是否已更新,尝试链接是否准确,产品支持电话、地址和邮政编码是否正确。

(4)完整性。对照软件界面检查是否有重要的分支没有描述到,甚至是否有整个大模块没有描述到。

(5)一致性。按照文档描述的操作执行后,检查软件返回的结果是否与文档描述的相同。

(6)易用性。对关键步骤以粗体或背景色给用户以提示,合理的页面布局、适量的图表都可以给用户更高的易用性。需要注意的是文档要有助于用户排除错误。不但描述正确操作,也要描述错误处理办法。文档对于用户看到的错误信息应当有更详细的文档解释。

(7)图表与界面截图。检查所有图表与界面截图是否与发行版本相同。

(8)样例与示例。像用户一样载入和使用样例。如果是一段程序,就输入数据并执行它。以每一个模块制作文件,确认它们的正确性。

(9)语言。不出现错别字,不要出现有二义性的说法。特别要注意的是屏幕截图或绘制图形中的文字。

(10)印刷与包装。检查印刷质量;手册厚度与开本是否合适;包装盒的大小是否合适;有没有零碎易丢失的小部件等等。

21.如何理解压力、负载、性能测试测试?

参考答案:

性能测试是一个较大的范围,实际上性能测试本身包含了性能、强度、压力、负载等多方面的测试内容。

压力测试是对服务器的稳定性以及负载能力等方面的测试,是一种很平常的测试。增大访问系统的用户数量、或者几个用户进行大数据量操作都是压力测试。而负载测试是压力相对较大的测试,主要是测试系统在一种或者集中极限条件下的相应能力,是性能测试的重要部分。100个用户对系统进行连续半个小时的访问可以看作压力测试,那么连续访问8个小时就可以认为负载测试,1000个用户连续访问系统1个小时也可以看作是负载测试。

实际上压力测试和负载测试没有明显的区分。测试人员应该站在关注整体性能的高度上来对系统进行测试。

22.软件文档测试主要包含什么?

参考答案:

随着软件文档系统日益庞大,文档测试已经成为软件测试的重要内容。文档测试对象主要如下:

-包装文字和图形;

-市场宣传材料、广告以及其它插页;

-授权、注册登记表;

-最终用户许可协议;

-安装和设置向导;

-用户手册;

-联机帮助;

-样例、示范例子和模板;

-……

文档测试的目的是提高易用性和可靠性,降低支持费用,因为用户通过文档就可以自己解决问题。因文档测试的检查内容主要如下:

-读者对象——主要是文档的内容是否能让该级别的读者理解;

-术语——主要是检查术语是否适合读者;

-内容和主题——检查主题是否合适、是否丢失、格式是否规范等;

-图标和屏幕抓图——检查图表的准确度和精确度;

-样例和示例——是否与软件功能一致;

-拼写和语法;

-文档的关联性——是否与其它相关文档的内容一致,例如与广告信息是否一致;

文档测试是相当重要的一项测试工作,不但要给予充分的重视,更要要认真的完成,象做功能测试一样来对待文档测试。

23.没有产品说明书和需求文档地情况下能够进行黑盒测试吗?

参考答案:

这个问题是国内测试工程师经常遇到的问题,根源就是国内软件开发文档管理不规范,对变更的管理方法就更不合理了。实际上没有任何文档的时候,测试人员是能够进行黑盒测试的,这种测试方式我们可以称之为探索测试,具体做法就是测试工程师根据自己的专业技能、领域知识等不断的深入了解测试对象、理解软件功能,进而发现缺陷。

在这种做法基本上把软件当成了产品说明书,测试过程中要和开发人员不断的进行交流。尤其在作项目的时候,进度压力比较大,可以作为加急测试方案。最大的风险是不知道有些特性是否被遗漏。

软件测试的风险主要体现在哪里?

参考答案:

我们没有对软件进行完全测试,实际就是选择了风险,因为缺陷极有可能存在没有进行测试的部分。举个例子,程序员为了方便,在调试程序时会弹出一些提示信息框,而这些提示只在某种条件下会弹出,碰巧程序发布前这些代码中的一些没有被注释掉。在测试时测试工程师又没有对其进行测试。如果客户碰到它,这将是代价昂贵的缺陷,因为交付后才被客户发现。

因此,我们要尽可能的选择最合适的测试量,把风险降低到最小。

25.发现的缺陷越多,说明软件缺陷越多吗?

参考答案:

这是一个比较常见的现象。测试工程师在没有找到缺陷前会绞尽脑汁的思考,但是找到一个后,会接二连三的发现很多缺陷,颇有个人成就感。其中的原因主要如下:

-代码复用、拷贝代码导致程序员容易犯相同的错误。类的继承导致所有的子类会包含基类的错误,反复拷贝同一代码意味可能也复制了缺陷。

-程序员比较劳累是可以导致某些连续编写的功能缺陷较多。程序员加班是一种司空见惯的现象,因此体力不只时容易编写一些缺陷较多的程序。而这些连续潜伏缺陷恰恰时测试工程师大显身手的地方。

“缺陷一个连着一个”不是一个客观规律,只是一个常见的现象。如果软件编写的比较好,这种现象就不常见了。测试人员只要严肃认真的测试程序就可以了。

26.所有的软件缺陷都能修复吗?所有的软件缺陷都要修复吗?

参考答案:

从技术上讲,所有的软件缺陷都是能够修复的,但是没有必要修复所有的软件缺陷。测试人员要做的是能够正确判断什么时候不能追求软件的完美。对于整个项目团队,要做的是对每一个软件缺陷进行取舍,根据风险决定那些缺陷要修复。发生这种现象的主要原因如下:

-没有足够的时间资源。在任何一个项目中,通常情况下开发人员和测试人员都是不够用的,而且在项目中没有预算足够的回归测试时间,再加上修改缺陷可能引入新的缺陷,因此在交付期限的强大压力下,必须放弃某些缺陷的修改。

-有些缺陷只是特殊情况下出现,这种缺陷处于商业利益考虑,可以在以后升级中进行修复。

-不是缺陷的缺陷。我们经常会碰到某些功能方面的问题被当成缺陷来处理,这类问题可以以后有时间时考虑再处理。

最后要说的是,缺陷是否修改要由软件测试人员、项目经理、程序员共同讨论来决定是否修复,不同角色的人员从不同的角度来思考,以做出正确的决定。

27.软件测试人员就是QA吗?

参考答案:

软件测试人员的职责是尽可能早的找出软件缺陷,确保得以修复。而质量保证人员(QA)主要职责是创建或者制定标准和方法,提高促进软件开发能力和减少软件缺陷。测试人员的主要工作是测试,质量保证人员日常工作重要内容是检查与评审,测试工作也是测试保证人员的工作对象。

软件测试和质量是相辅相成的关系,都是为了提高软件质量而工作。

28.什么是软件测试,软件测试的目的?

参考答案:

定义:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别

目的:确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明;确保产品满足性能和效率的要求;确保产品是健壮的和适应用户环境的 ;确保最终交给用户的产品功能符合用户的需求,在产品交给用户之前尽可能多的发现并改正问题。

29.简述负载测试与压力测试的区别?

参考答案:

压力测试(Stress Testing)

压力测试的主要任务就是获取系统正确运行的极限,检查系统在瞬间峰值负荷下正确执行的能力。例如,对服务器做压力测试时就可以增加并发操作的用户数量;或者不停地向服务器发送请求;或一次性向服务器发送特别大的数据等。看看服务器保持正常运行所能达到的最大状态。人们通常使用测试工具来完成压力测试,如模拟上万个用户从终端同时登录,这是压力测试中常常使用的方法。

负载测试(Volume Testing)

用于检查系统在使用大量数据的时候正确工作的能力,即检验系统的能力最高能达到什么程度。例如,对于信息检索系统,让它使用频率达到最大;对于多个终端的分时系统,让它所有的终端都开动。在使整个系统的全部资源达到“满负荷”的情形下,测试系统的承受能力。

30.写出bug报告流转的步骤,每步的责任人及主要完成的工作?

参考答案:(要结合自己实际的工作经验进行回答,不同公司略有区别)

测试人员提交新的Bug入库,错误状态为New。

高级测试员/测试经理验证错误,如果确认是错误,分配给开发组。设置状态为Open。如果不是错误,则拒绝,设置为Declined状态。

开发经理分配bug至对应的模块开发人员。

开发人员查询状态为Open的Bug,如果不是错误,则置状态为Declined;如果是Bug则修复并置状态为Fixed。不能解决的Bug,要留下文字说明及保持Bug为Open状态。

对于不能解决和延期解决的Bug,不能由开发人员自己决定,一般要通过某种会议(评审会)通过才能认可。

测试人员查询状态为Fixed的Bug,然后验证Bug是否已解决,如解决,置Bug的状态为Closed,如没有解决,置bug状态为Reopen。

31.写出bug报告当中一些必备的内容?

参考答案:

硬件平台和操作系统

测试应用的硬件平台(Platform),通常选择“PC”。

测试应用的操作系统平台(OS)。

a) 版本

提交缺陷报告时通过该字段标识此缺陷存在于被测试软件的哪个版本。

b) Bug报告优先级

c) Bug状态

d) Bug的编号

e) 发现人

f) 提交人

g) 指定处理人

h) 概述

i) 从属关系

j) 详细描述

k) 严重程度

l) 所属模块

m) 附件

n) 提交日期

32.画出软件测试的V模型图。

参考答案:

因个人时间有限以上只列取为软件测试技术类面试题中的一部分,如果需要完整面试题,都可以点我进行领取,如有问题欢迎评论私信留言!

还包括测试软件学习路线图,50多天的测试上课视频、16个突击实战测试项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2022年软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助……

全部评论

相关推荐

jack_miller:我给我们导员说我不在这里转正,可能没三方签了。导员说没事学校催的时候帮我想办法应付一下
点赞 评论 收藏
分享
点赞 8 评论
分享
牛客网
牛客企业服务