春招打响,作为应届生的我也投入到春招行列中。这半年来都一直处于实习中,却没有好好去总结一下自己学到什么,最近汶汶去面试了一家小公司,本以为自己在大厂做过测试实习生,进入小公司应该妥妥的,然而事实给了自己狠狠的一巴掌,被问到测试的一些基础的理论知识时,一脸懵,最后面试官都忍不住发问,你简历上说你写测试用例,却连测试的要素都讲不出来吗。作为一个测试新手,基础的测试知识必须恶补,要是这一点都做不到,从面试官的角度,我为什么要一个连基本的测试知识都不扎实的人。
1.首先要明确测试用例是什么
答:测试用例是为某个特定目标而编制的一组测试输入、执行条件以及预期结果,来测试某个程序路径或者核实是否符合某个特定需求。说白了,测试用例就是把我们测试系统的操作步骤用特定格式的文字表述出来。
2.其次,为什么要写测试用例,这对文字类的东西可以干嘛用,好处在哪:
答:测试用例可以理清思路,避免疏漏【这个是最重要的】、项目大而且复杂的话,我们可以通过测试用例来细分项目的功能,对于每一个功能模块可以梳理我们的测试系统思路,避免遗漏测试的功能点;其次可以跟踪测试的进展,通过编写并执行测试用例,我们可以知道测试的进度;测试的重复性,因为测试不是只有一个人在测试,可能是多个人并且反复的测试,测试用例可以规范和指导我们自己的测试行为;最后一个就是要汇报给他人了,比如领导什么的,我测试过,而且全面,测试用例可以给我证明
3.测试用例的要素可以分为:测试的ID编号、用例的名称【也就是标题】、测试的目的,测试步骤、测试系统【win7,win8,全面屏呀,双屏,高清屏这些】、预期结果;此外,还可以添加优先等级、测试阶段【第一轮测试,第二轮测试】,后面还可以写个测试人员,比如他负责这个模块,你负责那个模块【出了问题应该找谁负责】。其实这些不用被,要记住很容易,去网上搜一下相应的测试用例那种具体的表格或者格式,有现成的例子,看过之后在大脑中比较容易有个印象,下次被别人问的时候很容易就知道具体的要素或者格式大概包含哪些。截个图看看
这只是其中一个测试用例,也不够完善,可以根据对应的情况再写。当时我就被问了这个测试有什么要素,就懵了,在面试实习前有看,过了半年啥都给忘了。
测试的4要素【跟测试用例的要素区分开】
答:测试对象、测试目标,测试方法,测试结果
4.测试的方法
答:等价类划分法,边界值划分法,因果图法, 错误推测法,状态迁移图、流程分析法、正交验证法;最长被问到的就是等价类划分法和边界值划分法,上周我笔试的时候就是让我用边界值划分法写测试等腰三角形的测试用例,当时我貌似给写成等价类划分法去写测试用例了,偏题。。。网上有很多相应的什么测试一个三角形呀,测试杯子呀,测试页面呀,可以多去看看,理解再背一下,默写两遍就知道具体的要怎么写,其他的也是类似。
5.软件测试的流程是什么【当时也被问了这个,然后我偏题答成软件缺陷的状态。。。】
答:首先要知道产品有什么大概的需求,大家讨论后确定最终要有什么需求,测试的老大拿到产品给的需求,老大需要根据需求制定出一个测试计划,制定完计划后就扔给小弟们,小弟们就开始写各种测试方案过程中一起讨论讨论,最后大家一起定稿,说我们就要这种测试计划的方案了,有了方案就可以开始写测试用例,同时评审一下这个测试用例到底全面不有没有考虑缺漏,搞定完测试用例,就可以执行测试用例了,找到项目中的bug,扔给开发,像我以前就是在jira上提交bug,开发修复之后自己去确认一下是不是真的修复了,好的修复了可以关闭这个bug。等到执行完产品上线,就可以写一下这次的测试报告,顺便总结一下。写一下产品的安装文档或者使用文档,game over。---------分割线-----------一般面试就得用专业术语,我这个只是帮助理解理解,专业的说法就是:需求评审-需求定稿,测试人员理解需求-测试组长发布测试计划-测试人员进行测试方案的编写及评审-测试人员根据测试方案定稿进行测试用例的设计及评审-测试人员根据测试用例进执行测试用例-发现问题bug提交-确认bug修复,关闭bug-编写测试报告及总结-编写安装文档或者使用手册-结束
6.怎么定义软件缺陷
答:软件缺陷是指产品在说明、设计,编码中阶段的任何不足。例如产品要求的功能没实现,产品没明确要求但是应该做出来的也没实现,产品不需要的功能却实现了,产品出现了功能缺陷、从用户的角度来说,这样使用不合理
7.流程图,记得问了一个用户登录图书管理系统,要求用户有不同权限的情况,要求画出流程图,并写出用户登录图书管理系统的测试用例
8.如果写出高质量的测试用例、提交高质量的软件缺陷记录
答:关于高质量的测试用例:首先要能覆盖到所有的业务逻辑、能覆盖到所有的测试点、能覆盖到所有的典型用户场景、明确的测试目标并且高效率达到测试目的、没有冗余的测试用例、测试用例能直接附带测试策略,该模块的策略指定人和用例执行者能够非常清楚【感觉有点拗口,多看几次就好】
关于高质量的软件缺陷记录:使用专业的术语、描述bug的语句要简洁、每条缺陷报告只记录一个bug、不可重现的bug也要记录、明确指出bug类型【例如是界面的,功能的、数据缺陷、还有一些合理化的建议】、指出bug的优先等级、根据问题进行截图或录屏,有时候这种操作会让开发更容易知道重现步骤、不要带有个人观点不要针对开发人员,报告都是针对产品
9.软件缺陷管理工具有哪些
答: QC ALM BugFree jira Mantis 禅道
10.常用数据库有哪些:MySQL,SQL,sqlite,oracle,
11.数据库,记得笔试中给了一张表,大概是
然后问找出表中每门课成绩都大于80的学生名字,开始的时候就直接写了 select name from 成绩表 where score >80;后来才意识到题目问的是每门课。。。
还问了清除表中所有数据的命令;delete和truncate的区别;
还有关于约束有哪些,好像是有5个,讲一下check约束;讲一下查找数据怎么才能不重复,我说使用distinct
12.最后会问C++,挺简单的题目,不过我不会。。。
13.会问一点Linux,什么Linux的性能监控还是啥的
最后小结,这次面试虽然挂了,但是也收获挺多的,之前一直想去大公司,可是通过这次小公司面试,发现小公司的确有小公司的好处(ps:之前我是很排斥小公司的,因为第一份实习就是去大公司),小公司可以学到的东西很多,比如我虽然现在在大厂实习,但是我接受到的东西真的很少很少,每天做的也就是动态黑盒测试,就只有那些点点点,哎,谁让这边的项目少呢。去面试的小公司虽然做的也是黑盒测试,但是包括了性能测试,同时他们公司是做服务的,每天要跟大量的数据打交道,数据库必须66的,也涉及到自动化测试,可惜我现在这家公司的自动化测试也就我老大一个人在开始搞,真的落后了。现在也不排斥小公司,在小公司工作一两年可以学到很多。还有在面试前一定要对公司有了解,当天面试的小公司是做服务的,然而出发前我看了另一家公司,傻到家了我,结果当时我回答,你们是做安全的吗,面试官楞了几秒。面试官开始很严肃,到了后面也觉得我真的是没法过,就跟我讲讲面试的时候要注意些什么,比如虽然招聘都是写要求会这个那个,其实他们也知道应届生也就一张白纸,不可能要求他们一上来就精通性能测试自动化测试白盒测试,这些都是需要有几年工作经验的。但是基本的一定要了解一定要扎实,还有学习能力要强,祝愿春招能找到心仪的工作