软件测试面试题与面试经验

知识点扫盲:

HC 是 Headcount 的缩写,意思是“人员编制”。HC 计划就是人员配置计划,一般是根据

公司业务发展/组织架构设置来拟订将来一定时间内的人员增减计划。

JD 职位描述又叫职位界定,其成果叫工作说明书(job description) ,或工作规范。

Po 模式 PageObject   Model

谷歌 CTS ,英文为 Compatibility Test Suite,中文意思是兼容性测试,手机设备需要通过 Android 的兼容性测试(CTS),以确保在 android 上开发的程序在手机设备上都能运行。

面试流程:投简历-- >电话邀请-- >进公司填写面试表格-- >N 轮技术\人事面试

任何东西的测试需要从很多方面去说:功能、界面、兼容性、性能、安全性、所处环境、

大学计算机相关专业学习的课程:

高数、线性代数、概率论与数理统计、java 程序设计、c 语言、计算机导论、 WEB 程序设计、数字逻辑电路、电路电子技术、数据结构、操作系统、计算机组成原理、微机系 统、计算机系统结构、编译原理、计算机网络、数据库系统、软件工程、软件安全、数字信

号处理、网络计算、信息安全、人机界面设计、

1 、  自我介绍

面试官您好!我叫尼古拉斯·赵四,今年 26 岁,来自南洋马来西亚,15 年毕业于 五道口职业技术学院计算机与计算科学专业,毕业后一直从事软件测试行业,目前有 3

年工作经验,之前一直在北京鑫茂科技有限公司工作,在这 3 年中我测试过新闻类、

社区类、电商类、 OA\ERP 类、旅游类,餐饮类项目、彩票类等类型的项目,熟悉各种 WEB 端与 APP 端测试,目前熟悉功能测试与自动化测试。(boss 直聘沟通用语:如果 贵公司还在招聘测试工程师,可以进一步沟通)

我最近的一个项目就是慧敏商城,是一家综合性网上购物平台销售家电、数码通讯、 电脑、家居百货、服装服饰、母婴、图书、食品等数各种品牌优质商品.其中有有登录  注册,商品分类,购物车,品牌分类,热门搜索等模块,在这个项目中我负责我的模块、  购物车模块、商品分类、品牌分类模块、商品管理模块、权限管理模块,我们项目前期

做功能测试,后期我主要编写一些自动化的代码。

2 、  看你介绍你之前那不是计算机专业的, 怎么从事测试这个行业了呢?

这个问题,可能公司针对学历,专业有限制,那这样的就是不合适。还有很大一部

分是测试你的心里压力承受能力,大胆的说,对工作有热情,喜欢。

毕业实习的时候我的本专业不是很好找工作,加上我也不是很想从事我这个专业的 工作,然后家里有个姐姐(哥哥,隔壁邻居,大学学长,对象)是做软件的,公司正好

招聘测试工程师,然后就介绍我我过去了,我想着有人带就失足进入了 IT 行业。

我的专业确实不对口,但是不影响我对这行的热爱,希望面试官给我机会,让我证 明我的能力不比科班出身的年人员差。我自学能力很强,如果贵公司录用我,我会尽量

我全力去完成工作。

3 、  看你简历像培训的?经历过相关的培训么?

语气非常肯定非常肯定的:没培训过,简历照网上做了参考。

公司组织过相关的学习或者自己在淘宝上、视频网站上买过相关的视频自学的,比 如 python、java。有不会的问公司的开发或者百度论坛解决。经常逛 testerhome 论

坛、 51test 等。

4 、  能讲讲你对测试的认识和行业的发展么?

测试是一个软件不可或缺的一部分,没有经过测试的软件是一个无法保证产品质量

的产品。

认知:通过手工操作或工具使用对项目开发过程的产品(编码、文档等)进行差错

审查验证,保证其质量的一种过程。

行业发展:个人认为软件测试逐渐正规化,不是随便找个人点点就完事的时代了, 更加规范化,同时在技术上也更加专业化,比如要求会编程语言做自动化测试,未来自

动化测试会是一个大趋势。

未来职业发展:目前已经有了 X 年的测试经验,然后我主要想提高自己的技术能  力,向往自动化发展,web 自动化-- >app 自动化>性能相关的测试。让自己有能独立

主导一个项目测试的能力。

5 、  一个项目中测试工作如何介入的?

项目前期:跟进需求,充分理解功能需求

项目开发阶段:测试人员收集测准备测试素材,包括:测试用例准备,测试数据准

备,自动化准备。

项目测试阶段:测试执行

验收阶段:准备环境给产品负责人验收

上线后:进行线上验证

6 、  你们公司的测试流程是什么?

双 VV 模型,测试理论讲的。

首先是要知道的是测试不是在开发把软件完成后在测试的。软件测试是有它自己的

周期的:需求分析,概要设计,详细设计,软件编码,软件测试,软件发布。

软件测试是一个系列过程活动,包括软件测试需求分析,测试计划设计,测试用例

设计,执行测试。 因此,软件测试贯穿于软件项目的整个生命过程。在软件项目的每一

个阶段都要进行不同目的和内容的测试活动,以保证各个阶段的正确性。软件测试的对    象不仅仅是软件代码,还包括软件需求文档和设计文档。软件开发与软件测试应该是交    互进行的,例如,单元编码需要单元测试,模块组合阶段需要集成测试。如果等到软件    编码结束后才进行测试,那么,测试的时间将会很短,测试的覆盖面将很不全面,测试    的效果也将大打折扣。更严重的是如果此时发现了软件需求阶段或概要设计阶段的错误,

如果要修复该类错误,将会耗费大量的时间和人力。

好了废话练习结束。

开始,以下是标准流程

一、    一般情况是项目开始阶段产品经理会写一个产品需求文档和以产品原型图, 然后会开一个需求评审会,讨论下需求的合理性,根据团队技术情况,对需   求中的缺点及风险进行评估(小公司可能直接产品经理出需求,然后评审会

也不开,低头就是干。)

二、      需求最终确定后,我们测试组会熟悉产品需求(熟读深刻认识产品),leader 根据项目排期写测试计划,同时 leader 会给我们 3 个人分出来所测试的测 试模块,然后我们写自己对应的模块的测试用例,写完了交给你同事或者   leader 给你评审下,看看有没有漏测的、不合理的情况,然后改下就好了  (咱们是在 excel 里写,有的在缺陷管理工具或其他工具)。

三、      根据项目整体计划排期,我们写测试用例的时候开发也在开发软件,开发出    来的模块会进行提测。然后大家一起根据同事写的测试用例进行测试就行了。 (这里部分共可能在没有 UI 页面的时候需要测试进行接口测试,这个会稍    后点,因为会根据开发写的接口文档写测试用例进行测试,我们接口只测试

正向数据)

不断的测试提 bug,回归测试经历很多轮的测后项目会从模块测试(单元测

试)进行到集成测试、系统测试阶段。

四、      进入集成测试、系统测试阶段,项目模块与模块之前会进行关联组成一个完 整的系统。所有测试用例还是要重新在测试一遍(当然了,重点留意的地方 应该是在之前测试中发生过 bug 的功能)。开发改 bug,测试回归测试进行 N 轮后。bug 全部修改完毕了。

五、      进行到验收测试阶段,验收测试没问题了项目就可以上线了。

7 、  你的工作主要是什么?

前期主要是根据项目进度,对项目做出来的模块进行单元测试,每天按测试用例去 跑项目,发现问题,复现 bug,然后在禅道上提 bug 给对应的开发,闲下来自己看看

其他人的测试的进度,上网站学习,看学习视频。

后期主要是针对我负责的我的模块、购物车模块、商品分类、品牌分类模块、 商品 管理模块、权限管理模块。这么多模块不断的测试,提 bug。和开发沟通问题,和产  品沟通需求不明确的地方。同时针对我的模块、商品管理模块尝试进行自动化测试,写

一些自动化的代码出来。

日常就是:第一件事看开发有没有新发版本,看看新版本是多少,然后去复测前一 天提的 bug 在今天发的版本上解决了哪些,然后在测试当天测试计划中负责测试的那 部分,发现问题提 bug 给开发。如果项目急可能会追开发下午在发一个新版本,继续

回归测试。完事了自己学习或者研究对其他模块写自动化脚本。

工作日报

项目名称:新订单系统

测试负责人:XXX

今日完成工作:

1、正式环境测试:执行测试用例30条,涉及功能点:登录,退出,搜索,导出,编辑 2、线上发现bug :4个。涉及:导出字段,支付管理编辑,钉钉分期,快捷支付手机  号复制

3、验证测试环境关闭bug :3个

意见和建议:模拟尽量真实的数据,测试钉钉消息的准确性

总结:正式环境附加套餐和分期验证码还需重点测试。编辑订单需重点测试。 明日制定具体测试钉钉消息和验证码的方案

8 、  每天能写多少条测试用例?

这个问题就是坑,因为没有固定的要去要写多少多少,不要回答几十条,上百条。

此题没有具体的答案。

这个应该是看你当前的负责的模块功能的复杂程度。

直接回答没留意过具体每天具体些多少条。一般我 2、3 天写一个模块,一个模块

的测试用例大约在 150 条左右。(此为平时,非加班情况)

如果面试官对你的回答有疑问,你可以直接反问面试官,他每天写多少条,让他给

你一个答案。大胆点,不要怂。

9 、  每天能提多少个 bug,测试多少条用例?

一般项目前期 bug 会多点,一天,三四十,二三十都有(不仅限功能,还有 UI , 提示语类的,如果一天测试三,四十的功能性 bug 你们开发就可以下课回家了),后期   相对较少一天一二十或者十几个。后期组长经常开玩笑时每天不测试出来 10 个 bug

不能下班。

注意:一般 bug 的出现的概率是在你总共测试用例的 30%左右

每天测试多少条用例:每天能测试的用例多少,按测试计划安排,没有固定数量,

尽量说每天能测试 XXX 功能,XXX 模块,自己的公司很少让你固定测试多少条用例。

10 、 你们产品迭代时是如何进行测试的?

迭代开始之前

UI和测试需要过需求,了解迭代需要做哪些功能,有没有功能缺失的地方

迭代开始时

前期准备

进行需求宣讲-由产品将需求和这期需要做哪些功能,都是什么样的进行讲解。

之后每个人进行需求反讲,将需求中有遗漏缺失的地方再次补充完整。

开发拆分模块,把每部分代码提交的时间节点定下来(即上文项目整体计划排 期)

测试根据开发定的时间节点确定哪天开始测试,每部分功能需要测试多少  时

间进行时间规划,包括上线的时间全部定下来

中期开发

在开发开始写代码时,测试需要做好测试计划,将test case写完,写完之后进 行用例评审,查缺补漏。做好测试计划后,通知给相关人员,包括上级,根据时间点,管开

发要成果物

下次迭代的内容有可能在这个阶段进行需求评审

进入rc( RC=Release Candidate,含义是"发布候选版" )

迭代进入rc之后,测试开始测试

对于修改bug的时间需要算在测试时间内,每天都要确定开发改bug的时间节  点,如果时间溢出,需要说明原因为什么溢出,不是为了追究责任,而是要总结原因,可以

提高效率。

测试至少需要三轮才可以上线

在开发改bug时,测试需要配合下次迭代参加需求评审

直到本次迭代上线之后,开启下次迭代。

迭代结束(此答案算标准严格流程的迭代)

11 、 讲讲你的项目是如何做自动化测试的?

渊源:自动化这个技术是我自学的,网上找资料,买视频看的(同事会,公司也做

自动化,然后同事教你学的都可以)

前提:手工测试完毕了(应该是在系统测试之后,自动化做回归测试),要求项目需

求变动不频繁,项目周期长,项目需要做回归测试的。

门类:自动化测试还是属于黑盒测试,只是用代码替代人来做功能测试。

正题:一般我们都是在项目稳定,在做回归测试的时候做自动化的测试。我们 web 主要是用 python+selenium 作自动化,selenium 相对入门简单,框架稳定,资料 也比较多。首先用火狐浏览器的 firebug 插件定位元素(多数用 Xpath 和 CSS 方法 定位元素),然后用 python 中的 unittest 框架来测试,重写 setUp()与 tearDown  ()方法,setUp 中主要是初始化 webdriver,打开网址,和设置一些统一的浏览 器条件(如登录,浏览器最大化),tearDown 中主在测试结束后关闭一些资源(如 关闭 driver 退出),然后根据用例要去会写一个 testXXX()为名字的方法写具体  的测试用例(定位元素,跳转页面,填充数据,最后在 try 中断言结果在 except

中截图)。

Ps:更高级的可以讲 PO 模式,pytest 框架。 Pytest 是 web 与 app 都能用。

结合项目来说:

Example1:在我的测试的商城后台的商品管理的添加、修改。是写一个 python 类 继承 unittest,在  setUp 方法中初始化 driver,登录后台管理员。在 tearDown   中关闭 driver。在定义个 test_commodity_change 的方法,在方法里找到商品按 钮点击进入商品页面,定位“商品列表”的元素定位到商品管理的页面,定位“添 加商品”按钮今如添加商品页面,然后通过读取配置文件(yaml ,txt 等很多文件

格式都行)中提前写好的测试用以数据,按要去,分别定位添加到商品的分类属性

总,然后点击发布商品按钮,断言结果与测试用以的预期结果是否相同。在 main

方法中执行测试用例。

使用 uinttest 框架要了解

TestCase:

TestSuite:

TextTestRunner:

Fixture:

的执行测试用例的区别,详情看 web 自动化简历,批量执行。

然后在测试之前加入 HTMLTestRunner 这个类。利用它来生成测试报告。

Example1 类似的模块,商品模块、会员模块都可以。

Example2:购物车自动化。

python 类继承 unittest,在  setUp 方法中初始化 driver,定位到

登录账户,密码,登录按钮,根据配置文件获取登录账户、秘密登录商城。在

tearDown 中关闭 driver。在定义个 test_buy 的方法作为购物的测试用例,在 buy  方法中登录后再商城首页,定位到商品分类(鞋帽、化妆品、家居、数码、图书等),  点击鞋帽选项,定位到商品,一般我们都默认定位第一个商品点击图片进入商品详  情页面女装,然后定位选择商品的颜色、尺码、购买数量后点击加“立即购买”(如  果有点选项没选择时候点击立即购买系统会弹出提醒),进入“订单详情页面”会对  收货人信息、配送方式、支付方式、订单留言进行相应的定位元素然后修改,一般  脚本测试支付方式是“预付款模式”,只要在后台数据库给自己账户刷点钱就行了。 最后点击“提交订单”后会进入支付页面,点立即支付完成支付即可,就能完成购

物车了测试了

ps:测试数据,商品选项有无要测试,订单中的地址,支付生方式、配送等方式都 是要做有无测试。如果要测试支付宝或者其他方式也能测试,前提是这都是真钱、  真钱、真钱用公司的账户,或者上架一个 1 分钱的产品,把支付宝或者其他方式的

账户密码写里,建议说平台内支付这样好测试一些,其他方式手动测试就行。

如果自动化掌握不好的建议不要说公司做自动化测试,就说自学尝试测试就行,公

司只做功能测试即可。

12 、 项目的注册量,日活?

注册量、日活:如果外包就算了,只有自己公司的项目才会统计这个,外包不需要

考虑这个。

注册量:就是你们项目有多少用户注册了,没有固定答案,小项目 5-10 万之间选

个给就行。

日活:注册的用户每日打开使用 app 的人数,没有固定答案,小项目 5000-10000

就不错了。

微信:全球的用户量是 10 亿多。日活俩 9 亿多,QQ 日活 5 亿多。

只有用户量,日活上去了才说明 APP 项目有发展,有潜力,有流量。

13 、 公司做接口测试么?

http://shangchengcmbs.fangshangqu.com

参考以上接口结合项目说就行。

一般公司都是对公司项目接口测试,对外部第三方测试的比较少。

首先要知道什么是 get 请求,什么是 post 请求,有什么区别。如果面试问你就说 我们公司都是 post 请求。通过 json 方式传递数据。

1、公司做接口测试,一般我们就用谷歌浏览器的 postman 做接口测试,在项目页

面没做出来的时候测试接口,这方面做得不多,都是开发自测。

2、公司做接口测试,用 Jmeter 做接口测试,一般我们只做正向数据的测试(都做 数据满足条件的,不做不传某个参数的这种逆向数据测试),根据接口文档,把数据

写文件里,通过 Jmeter 的动态化参数进行测试。

Example1:对项目的搜索接口进行测试,比如在后台添加了某个商品,然后搜索

接口搜索该商品的名字看能不能在返回数据中显示出来。

Example2:获取商品评价接口。入参商品的 id ,出参用户对商品的评价。

Example3:查看购物车接口,这个接口的前置条件就是需要用户登录,应该先用  jmeter 进行登录,然后把返回的参数中的 cookie 设置到请求的头信息里,然后在 进行购物车接口请求(参数关联:正则表达式提取器、Xpath Extractor???这都 是什么鬼!!!),修改个人信息,修改收货地址,修改昵称,修改年龄,修改密码等

等很多需要登录后操作的接口都需要这一步。

Ps:需要注意,动态化参数的 CSV 配置。还有要知道使用流程测试计划-线程组-   配置元件-CSV-Samplep-http 头设置-监听器查看结果树每一步如何设置要能说的

清楚明白。

14 、 公司做性能测试么?哪里用到了性能测试?

这里做接口性能。使用 jmeter。(如果遇相关性能就说公司不做性能测试就行,以

下答案可勉强满足面试官的小欲望)

我们公司之前商城里有个一个限时抢购的功能,做过性能测试,通过 jmeter 做抢购 接口的 QPS 测试,通过 jmeter 的 Constant Throughput Timer 与聚合报告一起

(需要了解聚合报告的各项参数代表什么)。

15 、 你工作中有遇到过 Fidder 么?

1、 Fidder 在我的第一个项目中登录注册模块有用到,在前台注册有效邮箱提交, 用 fidder 进行拦截,抓包后在 fidder 中修改成无效的邮箱,提交看是否能注册成

功,成功了就是后台接口没有进行验证。、

还可以对支付订单信息这里进行抓包修改数据,修改钱数,花 1 分钱买东西。

2、曾经接手过一个项目,什么文档都没有,还要对项目接口进行验证。Fiddler 打 开,然后访问项目网址,抓项目的网络请求,看看具体访问了哪个接口,传了什么

样的数据,和返回数据,然后整理成文档。方便后期使用。

Ps:Mac 抓包不用 fiddler。用 Charles,支持 mac 与 windows

详情看发的资料 word 文档就业课---面试总结—“Fiddler 的抓包过程 手机抓包过

程   弱网测试过程”或者自行百度用法

16 、 测试过程中,开发人员认为不是 bug 怎么办?

首先你要正确理解出现的错误是 bug 还是软件缺陷,如果是软件缺陷,最好直接找 你的部门经理,然后由部门经理与开发人员协调。如果是 bug,你应当理清 bug 出 现的原因。然后整理成报告给相应的开发人员,如果此人不改正,交由部门负责人

处理。

17 、 手机客户端 APP 常见错误点是什
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值