TEST
概念相关
什么是压力测试与负载测试
负载测试:通常运行时间比较短,在系统上逐渐加压,直到性能指标达到饱和状态(比如相应时间超出预期要求、系统资源占用率居高不下等),从而验证系统预期的性能目标、相应时间等。
压力测试:长时间运行,逐渐增加超负荷(并发、循环、多用户等),直到系统产生异常以及对异常的处理能力,从而验证系统可靠性、找到系统的瓶颈。 微软压力测试的经验值为72小时。-
什么是回归测试
回归测试:缺陷修正后,执行符合一定条件的测试用例来确保缺陷的修正没有在软件中引入新的缺陷,这些缺陷可能存在于被测试的软件模块中,也可能在与之相关或不相关的其他软件模块中。当软件发生变更或者使用软件的环境发生变化时,需要进行回归测试。
-
缺陷记录应包含的哪些内容
缺陷标识、缺陷类型、缺陷严重程度、缺陷产生可能性、缺陷优先级、缺陷状态、缺陷起源、缺陷来源、缺陷原因。(禅道、JIRA等bug管理软件上有相关填写选项)
-
测试用例包含哪些要素
用例编号、测试名称、重要级别、前置条件、测试输入、操作步骤、预期结果
测试分类(了解)
黑盒测试、白盒测试、单元测试、集成测试、功能测试、系统测试、负载测试、性能测试、兼容测试、可用性测试、安装|卸载测试、恢复测试、安全测试、比较测试、Alpha测试、Beta测试、端到端测试、健全测试、衰竭测试、接受测试、累积综合测试。运行环境
local:本地开发环境
dev:内部开发环境
test:供测试人员测试环境
stage:试运行环境(新功能部分目标用户使用)
production:对外开放的产品环境,即生产环境
必会技能
测试用例
- 什么是测试用例?
在测试过程中很重要的一类文档,它是测试工作的核心、是一组在测试时输入输出的标准、是软件需求的具体对照。 - 测试用例的作用:
检验软件是否满足客户需求、体现一个测试人员的工作量、展现测试用例的设计思路 - 测试用例所包含的内容:
用例编号、用例名称、测试背景、前置条件、优先级、重要级、测试数据、测试步骤、预期结果、实际结果、备注。 - 测试用例的编写流程:
需求分析->提取测试点->测试用例编写->测试用例评审
从网上搜些例子看看。
举例提问
- 登录界面如何设计测试用例?---针对功能
- 拿淘宝来说,如何测试购物时优惠券功能?
- 有一个查询消息和回调消息的接口,我们可以主动去发起查询任务,也可以让对方系统将消息回调给我们,针对这个接口应该如何去设计测试用例?
接口实战
- selenium 2的原理
- 用什么工具来做接口测试?
- 接口测试需要注意哪些?
- 接口测试的参数怎么设计?
SQL
- 连接查询
经验值
- 你在你们团队承担哪一部分的工作?
- 你做得怎么样?有没有什么成果?
- 你是如何设计测试用例的?一般写测试用例的工具?
- 你们的需求/用例是如何做评审的?效果怎么样?
- 平时工作中,你是如何提取测试需求?
- 额外会问,如果没有需求文档,你是如何提取测试需求?有哪些方法?
- 缺陷的处理流程?
- 有没有碰到过难以定位的bug?最后是如何解决的?
- 请介绍一下你们的测试流程?
- 你们是如何做软件测试的?
- 你们自动化测试的流程是怎么样的?
- 完全测试程序是可能的吗?
不可能,测试人员对程序进行测试,只能找出程序中的bug,但是并不能保证程序是没有bug的。完全的测试要花费很多的人力财力,并且测试的数据量过大,很浪费时间。测试的结果还很多,有的都是类似的,没有必要进行相同的测试。所以完全测试是不可能的。 - 所有的软件缺陷都能修复吗?所有的软件缺陷都要修复吗?
从理论上来说所有的缺陷都是可以修复的,但是并不是所有的缺陷都要修复。一些对于软件没有影响的、不影响使用的缺陷我们可以不用修复。因为修复些细小的缺陷也是需要花费很多时间。项目上面可能会因为时间问题而先忽略这些小缺陷。 - 开发人员老是犯一些低级错误怎么解决?
要在开发的前期就制定好一些编码规范,这样子可以减少很多因为个人习惯引起的错误。同时,测试人员在发现开发人员犯一些低级错误的时候不可以指责他们,要耐心的给他们指出错误所在。然后可以有开发人员自己进行测试,找出一些一眼看得出来是错误的地方。 - 开发人员说不是bug时,你如何应付?
首先把自己的理由告诉开发人员。在同开发人员沟通到底是不是bug,但是如果开发人员还是认为不是bug的话,就把这个问题提到项目经理处,同时附上自己的理由。有项目经理决定是否为bug。
软件开发的工作流程了解一下
- 软件开发过程
产品经理、测试人员、开发人员开会讨论需求。产品经理根据讨论结果写出需求分析说明,并连同系统分析人员&测试人员&需求人员开会讨论可行性。产品经理写出详细设计说明书,设计出产品原型,再次开会评审,通过后交于设计人员做出效果图,然后开发人员编码、测试人员给出测试计划并编写测试用例。
2.软件测试过程
软件测试部门配合产品经理、开发人员进行需求分析讨论,并根据需求说明书制定《项目测试计划》,编写测试用例,建立测试环境。软件测试人员负责软件开发部门的新产品测试及原有产品的升级测试,负责软件问题解决过程跟踪,负责软件开发文档开发工作的规范化及管理开发部门的产品文档,制作用户手册及操作手册,负责产品的上线测试,监督软件开发过程的执行,提高产品质量。
参考
别人的经验
1)你在整个项目周期中扮演的角色,或者说都干了什么事情。
这个问题没有所谓的标准答案,就是考察你在一个项目周期中的角色和任务都是什么,说清楚即可。
(2)Bug 的生命周期都有哪些?
基本的流程是:创建-开发解决/需求确认-回归-关闭。
(3)测试用例的设计方法有哪些?
说出边界值、等价类、场景法基本要求,在说出正交矩阵、PICT组合加分。
(4)给你一个电梯如何设计测试用例?给你一个 QQ 的登录界面如何设计测试?
电梯的那个问题,各位自行发挥吧。QQ 的 Web 界面测试,一定要指出浏览器的兼容性测试、还有缓存 Cookie、Catch的影响,说出这两点,面试官定会对你刮目相看。
问到的知识点
- SQL 语句
这部分据我的经历来看,真正的考核 SQL 语句书写的面试官非常少,但是大部分面试官喜欢问到的语句如下。
建表语句:create table tablename{}。
distinct 关键字的用法。
多表查询如何做。
这里重点提一个概念,事务,这个问题的考察达到了80%。
自动化知识
如果你的简历里体现出你会自动化,有很大几率会问两个问题。
testng 的报告输出,这里面涉及的问题既有 testng 整个的实现框架,也会有其细节实现,比如输出报告的样式如何进行格式化;
执行用例时,出现错误,是如何处理的:考察了解图功能的代码实现。性能测试知识的考察
毋庸置疑,这也是一个考察的重点,需要掌握以下内容。
(1)性能测试最重要的指标:并发用户数、TPS、正确率、响应时间。
(2)性能测试的监控体系;
监控 Linxu 服务器,推荐回答使用 NMON;
监控数据库资源,必录 Oracle,监控其资源消耗使用 LoadRunner,监控其 SQL 慢查询需要借助工具 DWR;
监控中间件,线程活动数等,需要使用的工具有很多,可以执行储备。