软件测试是找茬游戏
以前有一个很火的游戏叫《大家来找茬》,我玩这个游戏很厉害,在这个游戏中,两幅图中有几个不一样的地方,有些地方很明显,一眼就能看到,有的地方隐藏得比较深,要仔细看才能看清楚。 游戏也不需要你把没处不同都找出来,只要达标就可以进入下一关。
软件测试就是玩《大家来找茬》,拿到的需求就是第一幅图, 开发写出来的代码是第二幅图。 开发在编写代码的过程中会出现逻辑错误,从而导致第二幅图和第一幅图不完全一样, 而测试的任务就是把这些不一样的地方找出来,避免损失。
随机测试法不灵
低段位的选手玩《找茬》游戏一般是随机查找,看到了就看到了,没看到再换个区间。这种测试方法教 “随机输入测试法”,很明显,这是效率最低的方式。
在一张图上的任意一个像素点都有可能不同,而在成千上万行代码中,任意一行都有可能出问题。 随机测试法就好像拿个小碗到大海里捞针,捞到的几率很小。
穷举法也不灵
还有一种办法来玩《找茬》游戏,那就是一个个像素点比对,这种方式确实能找到,但是速度实在是太慢了。为了提高速度,总是会跳过一些地方,总会有漏网之鱼。
小时候过年,家里捞池塘里的鱼就是用这种办法,但是每年池塘里总会有很多鱼没有捞干净。
测试用例方法必须学精
精通的方法:
- 等价类
- 边界值
- 因果图和判定表
- 错误猜测
刚入行想掌握好这几种用例设计方法应该也还行了,所以其他的用例设计方法我也没有仔细看。看着就这几个字,但是实操起来还是有难度的。 尤其是当因果图和等价类这些结合起来的时候,分分钟就晕了。放张图感受一下。
测试类型不是儿戏
想那些报班学习的应该只关注功能测试吧,对于模块测试、系统测试应该关注不多,这就是自学的优势,能看到全世界最厉害的人的思想结晶。
当然,对于互联网应用,最少也应该从表示层、业务层和数据层面进行测试。
表示层主要测试界面是否显示正常:
- 字体
- 链接指向
- 图形分辨率
- 拼写检查
- 光标位置
- 默认状态
- 交互友好度
- 商业风格
业务层主要测试是否完成了正确的事情:
- 计算是否正确
- 数据采集和返回正常
- 事务正确完成
- 失败事务回滚正常
- 响应时间和吞吐率
数据层主要看数据库:
- 数据库性能
- 数据存储正常
- 数据备份正常
- 数据加密和安全
- 后端数据输入和管理功能的可用性
测试很难
我不知道有多少人听到测试门槛低,工资高就一头扎入了这个行业, 但是测试是一个逻辑游戏,逻辑思维不行的,考虑问题不健全的,对用户没有同理心的干这个可能会很吃亏。
当然入门还是比较简单的,就和你想学唱歌一样,想学入门很轻松。 但是你要靠这个作为饭碗,要做歌手,那就需要经过系统的训练。
同时,面试也会用非常多的八股文需要背,我之前收集到的面试题多如牛毛,佩服自己是应试教育的一把好手,后面整理了一下碰到的主要面试题,送给有缘人,顺便求点个赞,三连必回。