小Q问:出去面试的时候,老是会有面试官问我,我是怎么制定测试策略的?这个问题好难回答啊,面试官到底想问什么呀?
Inked牙齿还没有刷呢!_LI.jpgCC先生答:
首先,你得知道什么是测试策略。
策略(cè lüè),汉语词语,意思是计策、谋略。该词语一般是指可以实现目标的方案集合以及根据形势发展而制定的行动方针和斗争方法,也用来表示有斗争艺术,能注意方式方法。
既然是测试策略,当然就是问的你在项目的测试过程中会采用什么样的方式方法来完成你的测试目标。当然,想答好这道题,你洋洋洒洒的写上5000字的论文也未尝不可。
比如这篇:什么是测试策略
其次,面试官为什么要问你如何制定测试策略呢?
此处一般是两种场景,一种是你的简历上有写你做测试负责人的经历,面试官想看看你的经历;另一种是你面试的职位以后有需要做测试负责人的资质,面试官想考察一下你有没有这方面的潜力。
先聊第一种,有过制定测试策略经历的人来说,这时候比较好回答,直接说明当时自己制定测试策略的情况(有多个项目时,挑一个最白最干净的说),注意说出制定过程以及之后执行的时候可能遇到当时制定策略的时候所没有考虑到的问题,也就是常说的Lesson and Learn(经验和教训)
第二种情况会复杂一些,毕竟对于没有经历过的事情,总会怀疑自己有没有说对或者说全的担忧。
我们先来看看执行测试策略的时候需要考虑哪些方面的因素呢?
兵书说,知己知彼方百战百胜,在说出你的测试策略之前,可以先假设一下测试对象的状态:
- 是一个项目还是一个产品
- 制定策略的时间点是属于整个软件开发的前期还是一个已有系统的二次开发
- 人力资源以及成员的各种技能属性
- 时间上是否有特殊的限制
依据假设的场景,制定测试策略的时候你可以考虑:
- 要测试的测试特性(功能性测试,性能测试,兼容测试,易用性测试,安全性测试,界面测试等等)
- 需要几个测试阶段(单元测试,集成测试,系统测试,验收测试)
- 测试阶段里面是否需要冒烟测试和回归测试,回归测试完全回归还是部分回归
- 针对每个测试阶段所需的测试方法(白盒,灰盒,黑盒)
- 测试的入口和出口标准,也就是开始和结束的标准
- 自动化测试所要采取的技术或者框架
功能测试自动化常用的工具有Selenium, Appium,QTP等 ;
性能测试自动化工具: 传统的压力测试工具Load Runner功能很强大,但需要具备一定的开发基础,但局限性也很明显,很难适应互联网环境的在线业务性能测试。后起的Jmeter等;
框架:Robotframework,Gauge,自定义的框架等。(参见6大热门开源自动化测试框架) - 测试项目所需管理工具或者系统
禅道,tower,teambition,JIRA这些都蛮好用的,或者你想看看2017年最热20个测试管理工具 - 如果是大型的项目,可以还有测试项目中的各种数据的度量方式
- 对于可能出现的风险的控制等
看,如果你能详细说完上面那些,估计面试官已经被你侃晕了。
可能大家都发现,怎么越看越觉得这个是做测试计划的时候做的事情啊,是的,其实,测试策略可以说是测试计划的一部分。
补充一个测试策略,测试方案和测试计划的概念上的区别。
测试计划的核心内容:
1、进行测试任务划分;
2、进行测试工作量估计;
3、人员资源和资源分配;
4、明确任务的时间和进度安排;
5、风险估计和应急计划;
6、测试失败/通过的标准;
测试方案的主要内容:
1、测试策略选取,明确策略;测试策略就是如何用最少的资源满足测试质量的要求,既高效、低成本、较高质量的完成测试。
2、测试子项细分,细化测试特性形成测试子项;将测试计划中描述的方法进行细化,包括要采用的具体测试技术。
3、测试用例的规划;
4、测试环境的规划;
5、自动化测试框架的设计;
6、测试工具的设计和选择;
总而言之,测试方案需要在测试计划指导下进行,测试计划提出了“做什么”,测试方案明确了“怎么做”,方案是对计划的进一步细化和明确。测试策略是在测试方案中关于“怎么做”的指导思想部分。
那可能又要说了,既然测试策略只是测试方案的一部分,为什么自动化测试框架这些设计我要在面试中说测试策略的时候提到呢?这时候就要回到面试官的内心OS部分,如果她/他真的只是想考察你的概念部分,你说到前面的四点(测试特性,测试阶段,测试方法,测试类型)已经可以啦;
但是,(划重点),有时候面试官问到你测试策略是如何制定的这个问题的时候,他/她想问的其实是“如果给你负责一个测试项目,你会如何开展?“,如何判定面试官想知道的是前者还是后者也就是看你在喋喋不休的时候他是否会不耐烦吧~~~
打住.jpg还看到一个比较好的回答
软件测试分为几个阶段 ,各阶段的测试策略和要求是什么?
和开发过程相对应,测试过程会依次经历单元测试、集成测试、系统测试、验收测试四个主要阶段:
单元测试:单元测试是针对软件设计的最小单位––程序模块甚至代码段进行正确性检验的测试工作,通常由开发人员进行。
集成测试:集成测试是将模块按照设计要求组装起来进行测试,主要目的是发现与接口有关的问题。由于在产品提交到测试部门前,产品开发小组都要进行联合调试,因此在大部分企业中集成测试是由开发人员来完成的。
系统测试:系统测试是在集成测试通过后进行的,目的是充分运行系统,验证各子系统是否都能正常工作并完成设计的要求。它主要由测试部门进行,是测试部门最大最重要的一个测试,对产品的质量有重大的影响。
验收测试:验收测试以需求阶段的《需求规格说明书》为验收标准,测试时要求模拟实际用户的运行环境。对于实际项目可以和客户共同进行,对于产品来说就是最后一次的系统测试。测试内容为对功能模块的全面测试,尤其要进行文档测试。
单元测试测试策略:
自顶向下的单元测试策略:比孤立单元测试的成本高很多,不是单元测试的一个好的选择。
自底向上的单元测试策略:比较合理的单元测试策略,但测试周期较长。
孤立单元测试策略:最好的单元测试策略。
集成测试的测试策略:
大爆炸集成:适应于一个维护型项目或被测试系统较小
自顶向下集成:适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。
自底向上集成:适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。
基于进度的集成 优点:具有较高的并行度;能够有效缩短项目的开发进度。 缺点:桩和驱动工作量较大;有些接口测试不充分;有些测试重复和浪费。
系统测试的测试策略:
数据和数据库完整性测试;功能测试;用户界面测试;性能评测;负载测试;强度测试;容量测试;安全性和访问控制测试;故障转移和恢复测试;配置测试;安装测试;加密测试;可用性测试;版本验证测试;文档测试
History
开发在赶天赶地写Bug的时候,测试该干嘛呢?
如何制定测试策略?
如何搭建测试环境
一个人如何开展测试工作
什么样的人适合做测试
网友评论