一、测试技术理论
1、软件测试的目的与原则?
目的:发现bug,让用户使用更加放心和靠谱。因为没有经过测试的软件很难在发布之前知道该软件的质量,在测试的过程发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出软件的质量情况。
原则:尽早和不断的测试;考虑各种边界条件和特殊情况;对测试错误结果确认;制定严格的测试计划。
经验:充分的测试;8-2原则;不要保证什么;文档仅代表个人;缺陷一定要重现;测试要有依据要求;考虑用户体验。
2、软件生存周期是什么?
生存周期:问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收和运行、维护升级、废弃。
3、你认为的测试流程是什么?
需求评审——需求确定(需求文档)——开发设计文档(流程图)——想好测试用例,写出测试用例——发给开发和测试经理看——接到测试版本,跟开发沟通,开始测试——提交bug——开发人员修改——回归测试——验证测试(最后验证主要的功能是不是正确)
4、什么是测试用例?什么是测试脚本?两者的关系是什么?
测试用例指的就是不同场景下每个场景。测试脚本就是代码。测试脚本就是为了验证测试用例。
5、软件测试的策略是什么?
指如何选择和运用方法来解决具体问题。比如黑盒/白盒、手工/自动化、静态/动态等。
6、软件测试的类型有那些?
类型有数据和数据库完整行测试、白盒测试、功能测试、UI测试、性能测试、安全性和访问控制测试、故障转移和恢复性测试、配置测试等。
7、什么是软件质量?软件产品质量特性是什么?
软件质量就是和需求中功能和性能一致;与开发标准一致;尽可能的少缺陷。
特性:功能性、可靠性、易使用性、效率、可维修性、可移植性
8、软件复用的含义?构件包括哪些?
软件复用是指软件或者软件的有效成分的重用性,比如项目计划书、可行性报告、需求分析、概要设计、详细设计、编码、测试用例、文档或者使用手册等。软件的构件就是软件的模块。
9、你是怎么做性能测试的?
先了解测试的内容和要测的性能指标,然后设置不同的测试场景进行测试。比如测试接口。需要验证接口是否通畅,数据是否正常,正常时间内是否返回。时间临界点如果修改了值的情况,数据库或者redis挂了的情况接口是否正常,多个并发的情况等。需要看的指标有:并发连接数,处理数据量,处理请求数,平均响应时间,最大响应时间,服务器的话cpu,内存,线程等的指标和变化情况。最后对结果进行分析。
10、给你一个网站,你如何测试?
首先,查找需求说明,网站设计等相关文档,分析测试需求。
然后,制定测试计划,确定测试范围和测试策略。一般包括以下几个部分:功能测试,界面测试,性能测试,数据库测试,安全性测试,兼容性测试
接着,设计测试用例,开展测试。
最后,记录缺陷,提交测试报告文档。对测试结果进行评估,及时调整。
11、一个登陆页面,只有用户名密码和登陆按钮,你会写哪些测试用例?
主要从正常功能、异常场景、并发情况、兼容性测试等几个方面去考量。
12、软件的安全性应从哪几个方面去测试?
三方面。
第一方面:用户程序安全。不同用户不同权限,系统不会出现用户冲突,用户权限升级是否正常,登录密码,有没有什么绝对途径能够登录系统。
第二方面:网络安全。模拟非授权攻击,是否有病毒,
第三方面:数据库安全。数据是否机密,数据是否完整、可管理、独立,系统数据可备份和恢复能力。
13、好的bug报告是怎么样的?
清楚地提到重现bug的步骤。不要假设或跳过任何复制步骤。一步描述的bug很容易复制和修复。具体点,切中要害。试着用最少的词来概括这个问题。报告应该清楚地回答测试是如何进行的,缺陷发生在哪里。读者应该很容易地复制错误,并找到错误所在。
14、Bug的生命周期?
提交——确认——分配——修复——验证——关闭,结合实际项目说比较好。
15、BUG 报告中一些必备的内容?
-
BUG对应的软件版本、操作系统/平台
-
开发的接口人员,测试人员
-
BUG的优先级
-
BUG的严重程度
-
BUG可能属于的模块
-
BUG的标题
-
BUG的描述
-
BUG的截图
-
BUG的状态
-
BUG的错误类型(数据,界面。。。。)
-
BUG提交日期
16、集成测试的主要任务:
- 将各模块连接起来,检查模块相互调用时,数据经过接口是否丢失;
- 将各个子功能组合起来,检查能否达到预期要求的各项功能;
- 一个模块的功能是否会对另一个模块的功能产生不利的影响;
- 全局数据结构是否有问题,会不会被异常修改;
- 单个模块的误差积累起来,是否被放大,从而达到不可接受的程度。
17、集成测试原则:
- 所有的公共接口都要被测试到;
- 关键模块必须进行充分的测试;
- 集成测试应该按一定的层次进行;
- 集成测试的策略应该综合考虑质量、进度、成本;
- 集成测试根据集成测试的计划和方案进行,防止测试的随意性;
- 项目管理者保证测试用例经过审查;
- 测试的执行结果应该如实的被记录。
18、性能测试的目的和关键?
- 评估系统的能力——测试中得到的负荷和响应时间数据可被用于验证所计划的模型的能力,并帮助作出决策.
- 识别体系中的弱点——受控的负荷被增加到一个极端水平,并突破它,从而修复体系的瓶颈或薄弱的地方.
- 系统调优——重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能.检测软件中的问题,长时间的测试执行可导致程序发生由于内存泄漏引起的失败,揭示程序中的隐含问题或冲突.
- 验证稳定性,可靠性——在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法.
做好性能测试工作的关键是:你要明确对哪些性能指标有较高的要求,会有什么后果
19、白盒/黑盒测试用例设计的关键?
以较少的用例覆盖尽可能多的模块/逻辑
20、测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的?
软件测试计划是指导测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。
二、人力类问题
1、你理解的QA是怎样的?
QA即质量保证,就从质量和保证这两个词来展开,回答的尽量有深度一些,再加上自己的职业规划,会让面试官觉得你对测试这个职业是认真的。
2、当开发人员说不是 BUG 时,你如何应付?
先问清楚开发说不是bug的根据是什么,想清楚可能造成的后果,最后找产品经理和测试经理确认。最后标注在测试报告中。
3、遇到的最大的问题和挑战是什么?
最大的问题出在开始阶段,熟悉这套功能流程需要学很多东西,准备很多知识,在熟悉的过程中又要快速的产出,这个时候挑战最大。
4、你认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么?
1、尽量能有面对面的沟通 2、真诚、就事论事 。 3、态度谦和
5、为什么开发转测试?
①做测试比开发能接触到更宽更广的技术面,很锻炼人,需要掌握更多的技能,比做开发要更难。
②对自己的能力进行一次综合分析后,觉得还是测试适合我,并且我之前的代码能力也是有助于我做白盒测试的,同时这次转岗不是一次三分钟热度的行为,我是分析了测试的工作内容,并且也去了解了自动化测试等等。
6、你的测试职业发展是什么?你自认为做测试的优势在哪里?
测试经验越多,测试能力越高。所以我的职业发展是需要时间累积的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划。优势在于我对测试坚定不移的信心和热情,虽然经验还不够,但测试需要的基本技能我有信心在工作中得以发挥。做过开发,逻辑思维能力强,对软件内部实现、功能需求、功能实现了解更深入,能根据自己的经验分析,哪里容易出错,快速定位找出bug出现的地方,更有针对性。
7、你对我们公司了解有多少?
****
8、你找工作时,最重要的考虑因素为何?
工作的性质和内容是否能让我发挥所长,并不断成长。
9、请谈谈你个人的最大特色。
我的坚持度很高,事情没有做到一个令人满意的结果,绝不罢手。