最近在公司面试一些测试人员,简历上都写在了解自动化测试,可是实际发现就是使用过一些jmeter、soapUI、selenium以及appium,并且仍是简单使用。简单使用,致使一旦被问起,就很不自信的找理由说,公司里面没有太多机会使用,因此才没有很深刻的研究。这个理由,我能够理解,由于我也使用过,本人在软件测试这条路上,已经走了9年,作了4年多自动化测试的工做,能力通常,可是多多少少有些本身的感悟。java
4年前,个人想法和作法,和不少人同样,找工具学习,找机会使用,学习java、python。结果也和不少人同样,那些烂大街的能力,根本拿不出手。说是烂大街的能力,并非说之后不须要学习了,我如今能够作自动化测试,这些烂大街的能力也是功不可没的。python
之因此哪些能力,没有被使用到实处,我的以为把测试的根本使命抛在脑后,一味的跟风,追求高大上,缺乏本身的思考。致使输出的内容和被测对象根本匹配不上。面试
上面说到测试使命,谈谈我我的的理解。测试使命 ,就是在一个项目周期内发现更多的软件问题。
这里有两个关键字,项目周期和更多问题,
项目周期:一个项目确定会设置开始和结束时间,那么就会有一个相对固定的时间段。
更多问题:力求发现更多的问题。若是把问题数除以时间,那么就是等于发现问题的速率,换句话说就是测试效率。
综上所述,若是要把测试的使命落实,那么就必需要将重点放在测试效率上。数据库
我的认为作任何事,想要提高效率,就先要找到好的方法。而找方法前,必须先明确目的。这个目的,能够是解决软件测试过程当中某个困难点,也能够是减小某些重复操做。有了目的,才能探索并优化方法,去提高效率。app
如何提高测试效率?
我的以为可使用一些理论概念,或是特定的工具,来减轻无效以及重复的工做量,使得在有限的时间内,进行更多的有效测试。
理论概念:测试的理论知识,好比等价类,边界值等,它能够帮助咱们减小不少无效测试,从而提高效率。
工具:也就是测试工具,我以为很是重要。它能够是一套文本说明,一段小脚本,亦或是一组应用工具。框架
上面提到提高效率,不少人脑海中第一反应,应该是使用自动化测试,既能够节省人力,还没能够节省测试时间。由于这个意图,不少人不少公司都开始开展自动化测试。可是结果发现,大部分人或者公司的自动化测试,要么还粗浅,没法应用,要么已经夭折。只有极少数的公司,由于拥有充足人力或技术底蕴,才让自动化测试正常落地。所以自动化测试被人又爱又恨。工具
我以为形成这样的后果,并非自动化测试的问题。自动化测试是一种解决测试人员重复劳动的方法,主要由测试框架和测试脚本用例组成,但究其本质就是一种测试工具而已,若是将提高测试效率的重担所有压在一种工具上,显然是不合理的。学习
那么怎样才算合理?或者说个人观点是什么?
1.首先我以为自动化测试仍是要进行,咱们不可否认,它在减轻重复劳动的能力。
2.其次咱们应该多观察普通的手工测试过程,把一些手工执行的内容工具化,逐渐将手工测试转为测试自动化。注意这里是测试自动化不是自动化测试。它们的区别能够本身查一下资料。测试
只有落实测试使命,在有限的时间内容多发现问题,那么你是用的方法才是有效地,才是继续进行下去的动力。因此个人的建议是,把注意力多放一些在,本身自己的工做,多发现一些能够优化的地方,或者说痛点。与此同时,再多学习现有工具,找出合理和不合理的地方。合理的地方,多借鉴。不合理的地方,多多思考,想改进方法。二者齐头并进,才有但愿,解决痛点,才能提升效率,让本身走的更远一些。优化
下面列举几个,我在工做中遇到的痛点。有些我已经解决,有些还在解决的路上。
1. 被测系统与不少第三方系统加密交互,普通mock服务没法解决定制的加密问题。
2. 一样被测系统接入层和外部系统也是加密交互,普通的接口测试工具没法使用。若是只测试内部服务,接口字段过多,或者字段是随机值,使用普通的接口测试工具,构造字段比较繁琐。
3. 测试过程当中,须要观察数据库记录变化,若是数据库比较多,若是经过将查询记录,保存在客户端工具中,就会致使记录愈来愈多,同事也很难被同事复用。
4. 若是业务流程比较长,每次测试后续流程,须要大量的时间去构造数据,再进行测试。