想从事软件测试相关的工作,立志成为一名优秀的软件测试工程师。
一名优秀的软件测试工程师,需要扎实的专业基础,包括测试相关技术、编程技能、数据库知识、计算机网络、以及操作系统等等。对于没有测试经验的应届生求职者来说,面试官主要看中面试者对软件测试的了解,下面整理了一些基本的软件测试面试题。
1、你接触软件测试有多久了?
答:我从5月份开始学习软件测试相关的知识。(这个问题要按照实际情况来回答,面试官会根据你说的学习时长来预估你的软件测试水平。后面的提问便有可能根据你的回答来选择相应的面试题。)
2、你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决?
答:首先,将问题提交到缺陷管理库里面进行备案。然后,要获取判断的依据和标准:根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;
如果没有文档依据:
可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;
根据用户的一般使用习惯,来确认是否是缺陷;
与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;
合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。(如果有实习经验的话,一般会出现这个问题)
3、如何测试一个纸杯?
答:从以下几个角度进行测试:
功能度:用水杯装水看漏不漏;水能不能被喝到;
安全性:杯子有没有毒或细菌;
可靠性:杯子从不同高度落下的损坏程度;
可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用;
兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等
易用性:杯子是否烫手、是否有防滑措施、是否方便饮用;
用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述;
疲劳测试:将杯子盛上水(案例一)放24小时检查泄漏时间和情况;盛上汽油(案例二)放24小时检查泄漏时间和情况等;
压力测试:用根针并在针上面不断加重量,看压强多大时会穿透。
(面试官主要看中你最测试的理解,对一个产品进行测试时具体要考虑哪些方面的问题)
4、什么是软件测试?
答:软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。
5、软件测试的目的?
答:测试的目的是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患带来的商业风险。测试的目的是及早的发现软件中的缺陷和错误,同时验证和确认软件设计中每一步完成的软件或者最后输出的产品是否满足软件目的和用户需求。
6、 什么是需求文档测试?
答:主要测试需求中是否存在逻辑矛盾以及需求在技术上是否可以实现;
需求文档是否符合用户需求;
需求文档是否符合逻辑;
技术上是否能实现;
7、什么是设计文档测试?
答:测试设计是否符合全部需求以及设计是否合理。
8、什么是驱动模块?
答:驱动模块在大多数场合称为"主程序",它接收测试数据并将这些数据传递到被测试模块。单元测试一个函数单元时,被测单元本身是不能独立运行的,需要为其传送数据。
驱动模块主要完成以下事情:
接受测试输入
对输入进行判断
将输入传给被测单元,驱动被测单元执行
接受被测单元执行结果,并对结果进行判断
将判断结果作为用例执行结果输出测试报告
9、什么是桩模块?
答:在单元测试中,测试一个模块时,需要设计驱动模块和桩模块。运行被测试单元,为了隔离单元,根据被测试的接口,开发相应的驱动程序和桩程序。
驱动模块:用于模拟被测试单元的上级模块,能够调用被测试模块。在测试过程中,驱动模块接受测试数据,调用被测试模块并将相关的数据传送给被测模块;
桩模块:用以模拟被测模块工作过程中所调用的下层模块。桩模块由被测模块调用,他一般只有很少的数据处理,例如打印入口和返回,以便于检测被测模块语气以及模块的接口;他俩可以隔离被测单元,又能使测试继续下去。
10、什么是白盒测试?
答:白盒测试(又称逻辑驱动测试,结构测试),它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。
对开发语言的支持:白盒测试工具是对源代码进行的测试,测试的主要内容包括词法分析与语法分析、静态错误分析、动态检测等。目前测试工具主要支持的开发语言包括:标准C、C++、Visual C++、Java、Visual J++等。
11、 什么是静态测试?
答:静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。
静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。
12、什么是回归测试?
答:回归测试的目的是在程序有修改的情况下,保证原有功能正常的一种测试策略和方法。说白了就是,我们测试人员在对程序进行测试时发现bug,然后返还程序员修改,程序员修改后发布新的软件包或新的软件补丁包给我们测试人员,我们就要重新对这个程序测试,已保证程序在修正了以前bug的情况下,正常运行,且不会带来新的错误的这样一个过程。一般情况下是不需要全面测试的,而是根据修改的情况进行有效的测试。
13、白盒测试有哪几种方法?
答:白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。
14、 软件的缺陷等级应如何划分?
答:软件缺陷的等级可以用严重性和优先级来描述;
严重性:衡量缺陷对客户满意度影响的满意程度,
致命错误,可能导致本模块以及其他相关的模块异常,死机等问题;
严重错误,问题局限在本模块,导致模块功能失常或异常退出;
一般错误,模块功能部分失效;
建议模块,有问题提出人对测试模块的改进建议;
优先级:缺陷被修复的紧急程度;
立即解决(P1级):缺陷导致系统功能几乎不能使用或者测试不能继续,需立即修复;
高优先级(P2级):缺陷严重,影响测试,需优先考虑;
正常排队(P3级):缺陷需要正常排队等待修复;
低优先级(P4级):缺陷可以在有时间的时候被纠正;
15、软件测试应该划分几个阶段?简述各个阶段应重点测试的点?各个阶段的含义?
答:大体上来说可分为单元测试,集成测试,系统测试,验收测试,每个阶段又分为以下五个步骤: 测试计划,测试设计,用例设计,执行结果,测试报告。
初始测试集中在每个模块上,保证源代码的正确性,该阶段成为单元测试,主要用白盒测试方法。接下来是模块集成和集成以便组成完整的软件包。集成测试集中在证实和程序构成问题上。主要采用黑盒测试方法,辅之以白盒测试方法。软件集成后,需要完成确认和系统测试。确认测试提供软件满足所有功能、性能需求的最后保证。确认测试仅仅应用黑盒测试方法。
16、什么是单元测试?
答:单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。
17、什么是集成测试?
答:集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。
18、 系统测试?
答:系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”。
19、 验收测试?
答:验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集.
20、 回归测试?
答:回归测试是在软件维护阶段,对软件进行修改之后进行的测试。其目的是检验对软件进行的修改是否正确。
21、单元测试、集成测试、系统测试的侧重点是什么?
答:单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试,测试重点是系统的模块,包括子程序的正确性验证等。
集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求,组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。测试重点是模块间的衔接以及参数的传递等。
系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。测试重点是整个系统的运行以及与其他软件的兼容性。
22、 设计用例的方法、依据有那些?
白盒测试用例设计方法:
①基本路径测试 ②覆盖测试 ③循环测试 ④数据流测试 ⑤程序插桩测试 ⑥变异测试
依据是详细设计说明书及其代码结构
黑盒测试用例设计方法:
①基于用户需求的测试 ②功能图分析方法 ③等价类划分方法 ④边界值分析方法 ⑤错误推测方法 ⑥因果图方法 ⑦判定表驱动分析方法 ⑧正交实验设计方法.
依据是用户需求规格说明书,详细设计说明书
最后给想转行测试行业或者已经从事测试行业想提升的小伙伴安利一个福利:
以上是我整理的一些资源,对于学软件测试的小伙伴来说应该会很有帮助,希望也能帮助到你。需要的小伙伴可以关注我微信公众号:程序员二黑,免费获取!
如果文章对你有帮助的,请帮我点赞收藏,这样我才有动力继续更新下去!