公司业务的重要性
公司业务的重要性对软件测试人员来说不用多说。作为软件测试人员需要对公司业务完全了解,仅仅是了解还不行,需要做到精通,熟悉公司业务流程、功能等需求,目的就是为了能够更好的进行测试活动。
只有对软件测试需求完全掌握了,测试人员在测试过程中才能做到有的放矢,测试思维才能打开,测试过程中的细节才能被注意到。
比如,你在测试过程中碰到一个场景,系统后台或界面给你一个错误的返回,若是你对需求完全熟悉,你一定知道这个地方的返回是有问题的,如果你对需求不熟悉,那你可能就视若无睹,白白放过这样一个bug。
这种情况在测试过程中遇到的频率很高,若当时对需求不了解,可以向开发或最熟悉需求的测试人员请教,将这个点抛出来,大家一起讨论看否是一个bug,如果测试人员有意识抛出还算好,但如果根本就觉得这个返回就应该是这样呢,那埋下的隐患是不是就很大。
那测试人员应该怎么做才能更好地了解业务?
去年新入职现在公司,公司业务比较复杂,虽然同属金融行业范畴,但是还是有大区别,同时公司业务根据行业规则不断变化,所以遇到不断学习,目前也只算掌握了60%,但掌握业务的能力已被认可的,我就根据自身经验分享作为刚入职的新人如何快速去了解公司业务。
刚入职的新人如何快速了解公司业务,王豆豆要从二个方面来分析如何快速掌握:
第一个是业务流程;第二个业务细节
1.业务流程
对刚开始入职的新人来说,刚开始一定是先从公司业务框架和业务流程学起,这个时间段需要做的就多看,多问,多做。
01 多看
多看指的是多看公司需求文档,需求文档包括任何一切有关公司业务的文档,可能是公司业务背景,公司框架说明,以前的测试用例,测试报告,原型图,公司系统等等。
尽自己的可能多找与公司业务相关的文档、数据查看。
02 多问
多问就是指多向同事请教,不是不耻下问,而是不要害羞上问,其他人都可能比你懂得多。
现在企业对新人,可能会安排一个老同事带你,也可能没有,直接就安排你进项目做,但前期一定会给你留一点时间熟悉公司业务,如果有同事带你,那是好运,但要明确一件事情就是别人带你,并不是他的主要工作,而是额外工作;如果没有,也不必急,学会自己去梳理,去掌握需求。
向同事问问题也是一门学问,不是遇到问题就开始问,也不是逮着谁都问,能自己解决的就最好自己解决,需要多观察,通过观察确定问问题的时机。
刚才说过带你的工作是额外工作,如果项目任务很忙的时候,带你的测试人员既要完成平时的工作,又要解决你的问题,会给他造成一定的困扰,所以一定不要有问题就问。
使用的办法就是:
1.先将不紧急解决的问题记录下来,然后找一个时间统一问;
2.紧急问题,如果这个问题不解决就没办法继续下面的流程,那这样的问题就必须立马解决,如果带你的人在忙着测试,那你可以先找其他人解决,如果不忙,那就正好。
王豆豆就是很好运的那个,王豆豆能这么快掌握公司业务,很大程度上都是因为遇到很nice的同事,每遇到的一个问题都能很好解决,解决不仅仅是告诉答案,而是从流程,从结构,从根本原因,从设计目的去分析这个问题,解答很详尽,基本问一次就相当于把一个流程或一个功能点吃透。
03 多做
不管你问得再多,看得再多,如果自己不动手去尝试,那都是白费。
第一个做:
看文档或系统时,动手画出大致地系统流程图来,也可以是系统框架,系统功能模块等。
第二个做:
在问问题时,记录下自己问的所有问题,避免重复问,如果你是第一次,我能给你详细的解答,但如果是第二次,那我会记得我曾经给过你解答,如果还有第三次呢?那是不是我对你的印象就不会那么好,我会觉得你对工作根本不上心。
第三个做:
执行---跑业务流程,分析流程的动作背后原因
假设公司业务有付款的功能,那就自己动手从用户注册-〉登录-〉账户存钱-〉付款的业务场景来做,一个个完整的流程跑,一边跑一边记录页面交互点,每一个动作引起界面或任务或数据库的变化,然后修改一点再跑再记录。
比如付款账户有钱或没钱的界面返回,数据库的变化,同时了解每执行一个动作,所需要的前置条件,执行所需要的数据从哪些地方取等等。
关注点较多时,不一定只执行一次就全部了解,可以多次重试,但最终结果是每一个动作,你都需要掌握,这也是我们业务细节部分需要掌握的。
2.业务细节
这个阶段一定是建立在你对公司系统框架,业务流程,产品类型都是相当清楚的前提下再关注的点。
首先要清楚什么是业务细节?
以为业务细节就是通过表象所看不出来的,而是需要根据数据,任务,动作共同去分析的。
目前觉得应该二个办法:
第一个方法是多跑业务流程
前面已经讲过了,根据前面所讲的方法来分析每一次执行动作,记录执行前的前置条件和取数据的表,以及执行后的变化,包含数据库,界面,测试环境记录的日志等。
第二个方法是看代码
学会看代码是每一个测试人员都应该掌握到的。
如果公司没有完整的需求文档,测试人员可以通过看代码分析需求,业务流程的变化,自己就能梳理出需求来。
看代码可以发现测试人员在前端和业务流程上发现不到的问题,同时还能提高测试人员在某类功能点上测试的效率。
以测试人员测试Mapping类业务为例,大家都知道Mapping(映射)是指各系统或子系统中相同点的不同映射。
例如1在A系统中表示小学生,在B系统中表示中学生,2在A系统中表示中学生,在B系统中表示小学生,在A系统中输入1,在B系统界面需要显示小学生。
如果要测试这样的业务,功能测试至少需要二条测试用例来覆盖,那如果是看代码呢,是不是直接就可以看出来了,你又可能会说不就是多二条测试用例么?那如果这样的Mapping值很多呢,功能测试就需要测试很多次,而通过看代码能很快发现AB系统的映射是否正确,是不是效率提高很多。
同时看代码可以清楚更多业务设计细节和流程的跳转及条件等。
以前没有看过代码,刚开始看似确实很难,但看得越多就越容易,学会看代码的前提是对相应编程语言的基础了解,知道如何使用。
面对如此多的技术面试,怎么样才能说本身的技术已通过关了呢?
只有问题没有参考答案,可是,请容许我说可是,对于下面这些问题,我这里仍是有一份参考学习笔记文档和面经试题解析的在文末分享,须要各位小伙伴下来逐一学习!
内容涵盖:包括测试理论、Linux基础、MySQL基础、Web测试、接口测试、App测试、管理工具、Python基础、Selenium相关、性能测试、LordRunner相关等… 质量非常高,需要的可自行领取!!
- 第一部分,测试理论(测试基础+需求分析+测试模型+测试计划+测试策略+测试案例等等)
- 第二部分,Linux( Linux基础+Linux练习题)
- 第三部分,MySQL(基础知识+查询练习+万年学生表经典面试题汇总+数据库企业真题)
- 第四部分,Web测试
- 第五部分,API测试
- 第六部分,App测试
- 第七部分,管理工具
- 第八部分,Python基础(Python基础+编程题+集合+函数+Python特性等等)
- 第九部分,Selenium相关
- 第十部分,性能测试
- 第十一部分,LordRunner相关
- 第十二部分,计算机网络
- 第十三部分,组成原理
- 第十四部分,数据结构与算法
- 第十五部分,逻辑题
- 第十六部分,人力资源
一、软件测试基础
- 软件测试的步骤是什么?
- 如何录制测试脚本?
- 应该考虑进行如何测试的测试方法
- 怎样估计测试工作量?
- 测试设计的问题
- 当测试过程发生错误时,有哪几种解决办法?
- 测试执行的问题
- 测试评估的目标
- 如何提高测试?
- C/S模式的优点和缺点
- B/S模式的优点和缺点
- ....
二、Linux
- grep和find的区别? grep 都有哪些用法?
- 查看IP地址?
- 创建和删除一个多级目录?
- 在当前用户家目录中查找haha.txt文件?
- 如何查询出tomcat的进程并杀掉这个进程,写出linux命令?
- 动态查看日志文件?
- 查看系統硬盘空间的命令?
- 查看当前机器listen 的所有端口?
- ......
三、Python
- 统计python源代码文件中代码行数,去除注释,空行,进行输出?
- python调用cmd并返回结果?
- 冒泡排序
- 1,2,3,4 这4个数字,能组成多少个互不相同的且无重复的三位数,都是多少?
- 请用 python 打印出 10000 以内的对称数(对称数特点:数字左右对称,如:1,2,11,121,1221 等)
- 给定一个整数 N,和一个 0-9 的数 K,要求返回 0-N 中数字 K 出现的次数
- 判断 101-200 之间有多少个素数,并输出所有的素数
- 一个输入三角形的函数,输入后输出是否能组成三角形,三角形类型,请用等价类- 划分法设计测试用例
- .......
四、MySQL
- 你用的Mysql是哪个引擎,各引擎之间有什么区别?
- 如何对查询命令进行优化?
- 数据库的优化?
- Sql注入是如何产“生的,如何防止?
- NoSQL和关系数据库的区别?
- MySQL与MongoDB本质之间最基本的差别是什么
- Mysql数据库中怎么实现分页?
- Mysql数据库的操作?
- 优化数据库?提高数据库的性能?
- 什么是数据的完整性?
- ......
五、Web
- Web测试和app测试区别?
- WEB测试环境搭建和测试方法
- WEB测试教程
- WEB测试要点及基本方法
- Web测试页面总结
- .......
六、接口测试
- 什么是接口
- 如果模块请求http改为了https,测试方案应该如何制定,修改?
- 常用HTTP 协议调试代理I具有什么?详细说明抓取HTTPS协议的设置过程?
- 描述TCP/IP协议的层次结构,以及每一-层中重要协议
- jmeter,一个接口的响应结果如下:
- 接口产生的垃圾数据如何清理
- 依赖第三方的接口如何处理
- 测试的数据你放在哪?
- 什么是数据驱动,如何参数化?
- ...
七、性能测试
- 你认为性能测试的目的是什么?做好性能测试的工作的关键是什么?
- 服务端性能分析都从哪些角度来进行?
- 如何理解压力测试,负裁测试以及性能测试?
- 如何判断是否有内存泄漏及关注的指标?
- 描述软件产“生内存泄露的原因以及检查方式。(可以结合- 种开发语言进行描述)
- 简述什么是值传递,什么是地址传递,两者区别是什么?
- 什么是系统瓶颈?
- ...
八、selenium
- 如何开展自动化测试框架的构建?
- 如何设计自动化测试用例:
- webdriver如何开启和退出一个浏览器?
- 什么是自动化测试框架?
- Selenium是什么,流行的版本有哪些?
- 你如何从命令行启动Selenium RC?
- 在我的机器端口4444不是免费的。我怎样才能使用另一个端口?
- 什么是Selenium Server,它与Selenium Hub有什么不同?
- 你如何从Selenium连接到数据库?
- 你如何验证多个页面上存在的一个对象?
- XPath中使用单斜杠和双斜杠有什么区别?
- 如何编写SeleniumIDE/ RC的用户扩展?
- 如何在页面加载成功后验证元素的存在?
- 你对Selenium Grid有什么了解?它提供了什么功能?
- 如何从你的Java Class启动Selenium服务器?
- Selenium中有哪些验证点?
- 什么是XPath?什么时候应该在Selenium中使用XPath?
- ........
九、计算机与网络
- 一台计算机的IP是192.168.10.71子网掩码255.255.255.64与192.168.10.201 ..
- 请简述DNS、活动目录、域的概念。
- 10M兆宽带是什么意思?理论下载速度是多少?
- 什么是IP地址?
- OSI七层网络模型的划分?
- TCP和UDP有什么不同?
- HTTP属于哪一层的协议?
- HTTP和HTTPS的区别?
- cookies和session的区别?
- HTTP的get请求和post请求的区别?
- HTTP1.0和HTTP1.1有什么区别
- TCP的连接建立过程,以及断开过程?
- 客户端使用DHCP获取IP的过程?
- 写出某个网段的网络地址和广播地址?
- .....
十、人力资源
- 你的测试职业发展是什么?你自认为做测试的优势在哪里?
- 你找工作时,最重要的考虑因素为何?
- 为什么我们应该录取你?
- 请谈谈你个人的最大特色。
- 一个测试工程师应具备那些素质和技能?
- 还有问一下你是怎样保证软件质量的,也就是说你觉得怎样才能最大限度地保证软件质量?
- 为什么选择测试这行?
- 如果我雇用你,你能给部门带来什么贡献?
- ......
最后
整份文档一共有将近 200 页,全部为大家展示出来肯定是不太现实的,为了不影响大家的阅读体验就只展示了部分内容,还望大家海涵,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习!
资料获取方式: