微信号:grzlwx

介绍:光荣之路官方资讯

做好软件测试需要具备的思维方式(二)

2015-09-17 22:03 光荣之路


测试思维
如果要特意区分用户思维和架构思维的话,在测试过程中,就要额外关注:以严谨的测试设计方法覆盖需求功能点及代码分支,具有场景思维和对异常情况的考察。对此我们可以细化总结为以下几点:

1. 逆向思维
比如我们经常需要对接口做测试,通过输入验证输出,如果我们使用各种输入都无法得到接口设计中某一种输出的情况时,就需要从输出来逆向推导输入,另外比如验证一些异常情况,接口需要返回一些errorcode,使用正常手段是肯定不能得到的,就需要为了出现该errorcode借助环境及工具来模拟。另外,我们在分析很多问题时,同样也离不开逆向思维。


2. 组合思维
比如软件在多用户,多进程,多次执行等情况下,都可能出现意想不到的缺陷,甚至对于复杂的业务场景,在对同一份数据进行操作时,不同子业务并行执行情况下,都有可能造成数据上的错误,特别是对于与核心数据有关的业务上(如money),是否添加行级锁都是需要测试到的,同时,不同业务不同的操作顺序,组合方式下,不同的维度等都有可能出现bug。


3. 全局思维
即能把握整个项目的多个方面,多个团队的任务及分工,整体的数据流及业务流,从全局思考是否满足业务需求,这其实并不只是说对于需求的评审,更多的是关注上下游相关联的系统或接口等,凡是涉及跨团队开展的工作,一定就需要更多的沟通协调,很明显的就体现在对业务理解不正确,接口定义有误,具有全局思维的人更能在大型项目中游刃有余,体现其leader的潜质,毕竟做leader就需要关注本部门之外其他部门都在干些什么,以备能做出对大局有利的决定。


4. 两极思维
即站在事情的两个极端来考虑,比如数据上的无穷大与无穷小,在数据存储上,数据库层面字段设置为int与bigint所支持的数量级是不一样的,基于业务数据,如果存在超过int的长度的数据,那么在存储上以及代码中,都需要做相应支持,否则就只会显示到该类型的最大值了,而且在业务层面也经常有两个极端的情况,比如商家入驻开店,很多时候都只是考虑到开店该怎么做,却忽略关店的情况。其实在边界值用例设计方法中也用到了两极思维模式。


5. 简单思维
简单思维表现在很多方面,比如经常非常严重的bug都可能是犯了一个很简单的错误引起,在处理测试环境时经常出现无法正常访问,也许可能只是磁盘空间满了而已或者一个简单的配置不正确引起,在日常工作中这样的例子非常多,我们也要善于一层一层剥开问题的现象,找到其本质,就好比剥洋葱一样,不要一开始就把问题想的过于复杂,往往事情并没有那么复杂。


6. 比较思维
比较思维其实贯穿在我们整个测试生涯中,测试本来也就是一种验证,根据实际结果跟预期结果对比。而且我们在平时工作排查问题时,也有非常多需要去对比的,比如配置文件的差异,环境的差异引起的不正常结果,此外,我们也通过svn中代码diff的差异来明确改动的范围制定回归策略。还比如在做一些前后两个版本吐出的数据差异时,页面显示差异时,都可以使用diff的思想来开展自动化的工作,大大提高效率。其中,包括我很久之前写的《我在兰亭这三年(九)之AutoDiff自动化测试框架》也是基于比较的思维。

总之,用好了以上几种思维方式,我想在以后的测试工作中,一定更加的游刃有余,有效且高效!

(完)

(作者:zzzmmmkkk 来源:http://www.51testing.com/html/85/258885-3579066.html)


 
            
 
            
 
            
 
           
 
           
 
           
 
           
 
           
 
           
 
           
 
           
 
           
 
           

一字一句当思来之不易,感谢作者,传播测试知识、技能与正能量!

光荣之路软件测试培训

官网:http://www.gloryroad.cn/

微信公众号:gloryroadtrain

性能测试QQ群:415987441
软件测试招聘QQ群: 203715128
自动化3群QQ: 371211499


 
光荣之路 更多文章 今天晚上的 linux 公开课- Awk 编程 7月28日(今天)晚上的 linux 公开课- shell编程 8月4日(今天)晚上的 linux 公开课- shell编程 9月1日(本周一)晚8点半,光荣之路Web自动化系列基础课—javascript第二讲 推荐本好书《与机器赛跑》
猜您喜欢 高性能分布式Mock平台的框架与设计 【推荐】程序员常去的14个顶级开发社区! 史上最资深网瘾宅男逆袭,临终启动 Pokemon Go LAMP环境搭建详细参数文档 使用 StackView 实现魔术般的视图旋转适配