关于测试
从2011年毕业到现在,从事软件测试工作已经有将近三年了,随着工作的经验的积累,对测试的认识也在不断的提高。
经常会听到身边有人抱怨,我做测试天天就是点鼠标,做功能测试,累死了,烦死了;想学学做自动化,性能方面的测试。
相信很多做测试工作的同学会有相同的感觉。
最近换了工作,面试了两家公司,又对测试有了更进一步的认识。
首先,我觉得作为一名测试人员,有两项很重要技能:测试点的发掘和丰富的测试手段,而测试点的发掘则是最重要的。下面就这两个方面聊一聊我眼里边的测试。
测试点的发掘:如果作为一名测试人员,不能发掘一个需求或系统需要测试的点,那么就不能算是一个合格的测试人员,那么该怎么去发掘出测试点呢?
关于测试点,业界有比较成熟的模型--软件质量模型,供大家从不同的方面去分析需求或这系统需要测试的测试点。
从以上模型,基本可总结出需求或者系统需要测试的测试点。
比如给你一个需求或系统,首先要考虑的就是,这个需求或者系统是要做什么的(功能),是不是安全(功能),好不好用(易理解性)等。
只有发掘了测试点,测试工作才有依据,所以大家一定不要舍本逐末。
再者就是丰富的测试手段这个技能了。
这个技能是建立在测试点的发掘的技能之上的,不然没法开展测试工作。
对于以上所说的,功能测试就是点击鼠标,又累又烦躁,这点我认同。所以想去做自动化或者性能测试。
什么是自动化?
自动化就是用程序自动执行的方式,替代人工去执行测试用例,去除重复的劳动,节省一些回归时候的人力成本。
举个列子来说吧。
某个人认为整天点鼠标是在浪费生命,不行去点击鼠标了,就想到了把点击鼠标的事情交给自动化来实现,这个时候,同事大家所说的自动化,就是基于GUI的UI自动化,即用代码去默认键盘,鼠标和系统的交互,通过这样的方式来完成测试。
接下来,大家会面临一个问题,互联网随时都在变化,你的需求和系统也在随时变更(我也讨厌变更,哈哈),不停的改版,你会发现原来的UI自动化代码也得跟着变化或者经常找不到页面元素(稳定性令人抓狂),不停的去维护已经写好的代码,甚至有时候要重构你的UI自动化代码,成本很高,投入产出比不理想,那这个时候该怎么办呢?
向后挖!
GUI所展示的数据都是以后服务端的API接口返回的,经过浏览器的渲染,以GUI(图形用户接口)的形式展现给用户,那么我们为什不对系统的API进行测试呢,可以避免掉系统界面的频繁变更和找不到页面元素的问题,QA也能更早的介入测试,保证接口的质量。所以可以对接口进行自动化测试。
再往后,我们就可以接触到代码,可以对代码进行自动化白盒测试。
对性能测试来说也是一个道理。
拿loadrunner做性能测试来说吧。
其实loadrunner做性能测试,就是直接通过接口来做的性能测试。通过模拟API请求。然后开启很多进程或者线程,同时去模拟API调用,借此对服务器形成压力。
根据系统结构图,我们知道需要优化各个组件的配置,设置一些合适的参数,这就要求我们了解这些配置是干什么用的。
对代码来说,可以对服务进行代码级别的性能测试。
对数据库来说,可能要审查一下sql语句,数据表的字段,大小,索引是否合适等。以后会写这方面的文章。
在发掘测试点的基础上,再去丰富自己的测试手段,再能在测试上走的更远。