软件测试思维总结(1)-----比较思维:利用好可参照的资源

【背景】

又到一年跳槽季,最近手机脉脉、BOSS直聘消息框闪烁的也特别频繁…茶余饭后也在翻看一些招聘信息,寻思着如果选择离开承载我的下一艘客船在哪里?我的“船票”是什么?

“测试已死” 喊了这么多年,似乎“测试开发”似乎成为测试人员的救命稻草…却慢慢遗忘了你的价值究竟是测试还是开发?你开发又是为了什么?是为了当年没有走上开发岗位寻求的安慰吗?当招聘广告中满是 QTP、LoadRunner、Jmeter…的时候,你靠什么安身立命?工具总有一天会失宠,而你靠什么一直骄傲下去?

你还记得你提交过的最得意的一个BUG是什么吗?多久没有尝试过掘地三尺,俘获一个深藏的BUG之后那种开怀大笑的感觉?Title从Tester到QA、测试开发 越来越时髦,但快乐越来越少、认同越来越少…测试人员丢失的是自己的定位、自己的视角、忽略的是自己核心能力的修炼。

互联网行业浮躁发展10年之后,如同我们广泛认同开发的核心不是C/C++ 、Java等编程语言,而是对业务和代码超强的抽象能力一样,测试人员的安身立命最重要“船票”依然是他的独立视角和测试思维能力,从而去帮助组织去实现它的质量目标…

一年跳槽季也是总结与收获的季节,我想在此总结一下,测试人员常用到的测试思维…

本文我准备从测试探索中的思维、测试策略中的思维及通用行为方式三个层面去总结我认为的测试思维:

一、测试探索中的思维:

一个测试任务仅仅依靠工具、自动化测试这种去Checking已知域是无法满足高质量的交付要求的。我们更需要根据项目所处阶段去开站探索性测试。主动去挖掘测试项目中的灰色地带

James Bach等测试专家就定义过:已测试=已检查+已探索

其实每个人在测试中都或多或少应用过一些测试思维,提炼总结后才能升华…

1.1比较思维:利用好可参照的资源:

我们在做测试探索的时候,常常会不经意的发现被测对象的某种行为比较可疑。这种可疑的感受源于你的Test Oracle,源于你对被测对象的测试经验和认知的积累。然而我们能否认定这种可疑行为是否为缺陷,我们需要借助一定的参照物。

1.1.1横向参照资源:

任何一款产品的研发我们需要考虑用户习惯、需要考虑与同行竞品的对标。这样才能被用户所接纳…

以网络设备产品为例,你的配置、日志、操作维护等手段需要对标业绩其他头部产品的呈现方式,因为他们代表了行业用户的普遍认知和习惯。苹果手机的触屏是一次成功的叛逆,而今特斯拉汽车的“单踏板模式”在引入大量安全问题之后又普受争议…所以在没有乔布斯这样洞察力超强的产品经理的前提前下,违背行业普遍认知的研发风险太大。

同样以网络设备产品为例,有时这种行业的普遍认知是规范和协议,它的存在确保不同供应商的设备能够在网络中互通、互操作…从这个角度来保证设备遵循业界的习惯、规范是一件势在必行的事情…

测试中怎么做?

a.不同公司,相同产品之间的比较:

例如在测试路由器的OSPF路由特性时,你怀疑它的某一个行为,但是在设计方案、取需求文档中没有明确的定义时,你不妨找找华为的路由器、Cisco路由器…这类业界头部企业相同定位来做比较。比较产品相同特性的行为是否一致,若不一致则很有可能是一个BUG…

b.不同产品,相同特性之间的比较:

例如当你测试“基站产品”的IPSec特性时,怀疑它的TimeLife秘钥更新的实现有问题时,不妨拿本公司或其他公司防火墙、路由器的实现做比较。如果基站的产品的实现和其他产品的实现都不一致,可以初步认定有BUG的。因为基站产品应用在网络中,是需要考虑网络互通、互操作的,不能自娱自乐…

1.1.2纵向参照资源的比较:

同一个特性在不同的发布版本之间应该具有一致性。即:如果没有明确的需求变更,一个特性在版本迭代之后它的对外呈现特征不应该产生影响用户满意度的变化。版本迭代可能存在如下情况:

a.正常需求合入的迭代;

b.软件代码重构、重写;

c.换代、结构调整,比如切换底层平台。

d.硬件迭代,如更换、引入性能更好的硬件单板。

另外影响用户满意度的变化不仅仅是功能,可用性 用户体验、易用性等非功能属性往往是容易被忽视的。也是Checking手段进行回归的短板。

测试中怎么做?

在验收测试最新发布的软件版本时,不妨拿产品的历史版本做比较。当同一个特性对外呈现的特征产生较大差异时,请警惕软件缺陷的产生。

1.1.3内在一致性比较:

为了应对不用客户的特化的需求,在同一个产品内可能会存在作用相同或相近的特性。那么这些特性不该出现自相矛盾的对外呈现。如果某基站产品,它支持基于TWAMP协议的网络质量的检测,同时它也支持基于ICMP协议的网络质量检测。那么在同一时间段对于相同网络的检测结果不应该出现较大的偏差(比如一个测量到的网络时延10ms、一个测量到的网络时延7ms),否者TWAMP网络质量检测和ICMP网络质量检测特性,必然有一个存在BUG。

测试中怎么做?

仔细分析和研究被测对象,发现可以做内在一致性比较的多个功能特性。在验收标准没有那么清晰和明确的情况下,不妨采用自相矛盾的方法来发现软件中存在BUG。

1.1.4 其他一致性检查:

对于行业规范的一致性检查、网络协议的一致性检查、用户特化、合同契约…的一致性检查,也是测试中常见的对于对比思维…

测试中怎么做?

基于对于可靠性、互操作、合规性…等等一系列非功能性需求。我们可以在普通功能Checking(如自动化验收、回归)的基础上安排协议一致性测试、规范一致性测试等等…

1.1.5比较思维发现缺陷的根因归纳:

1.开发人员的视野局限:

开发人员入职大公司一个项目之后,往往都是螺丝钉的存在,可能3年-5年都紧张而忙碌的维护同一份代码、同一个模块,往往无暇的扩展视野去看看行业中其他公司的产品是如何设计的。

2.研发项目的价值取向:

敏捷的大背景下,往往将需求交付量、交付效率放在首位日渐内卷而浮躁…在功能快速迭代的情况下并没有解决好对于非功能性需求的迭代(这是当前我的感受,当然可能有做的好的公司,欢迎拍砖)。

未完待续…

软件测试思维总结(1)-----比较思维:利用好可参照的资源相关推荐

  1. 音乐专业如何利用计算机思维,浅谈音乐思维方法运用

    刘佳彬 [摘 要]思维方法是人们通过思维活动达到一定思维目的的途径.手段和办法.也就是思维过程中所运用的工具和手段.思维方法属于思维方式范畴,是思维方式的一个侧面,是思维方式具体而集中的体现.思维活动 ...

  2. 排列组合思维导图_思维导图:进阶高效能人士的思维工具

    你记录信息的方式越贴近大脑自然的工作方式,你的大脑就越能高效地触发对关键信息的记忆和理解效率.--<思维导图>作者东尼·博赞 信息爆炸的时代,精简思考是进阶高效能人士的一项必备技能.思维导 ...

  3. 移动互联网4种引流思维:免费思维、跨界思维、平台思维、金融思维

    今天给大家分享的是移动互联网四大思维,这篇文章将以案例为主,易于理解. 思维:通俗来讲就是脑洞大开,通过碰撞产生创新性的想法. 好的思维一方面在于工作不断实践后的总结获得,另一方面在于不断向外界学习和 ...

  4. python变量命名规则思维导图_Python思维导图详解

    Python思维导图 Python思维导图详解 第一阶段:学习Python基础语法,主要学习变量的使用以及类型.变量的计算和输入输出.变量的命名.运算符.if判断语句.while循环语句.字符串.常量 ...

  5. 僵固式思维 OR 成长式思维

    有意无意中,看到这样的一篇文章,觉得非常富有正能量,而且也比较有同感.而且,不仅仅对于职场暂时失落或者失意的人有帮助,就是对学生,也一样的.故特分享,以共勉之. 我想每个新人进入职场之后都会遇到的第一 ...

  6. 在线数理思维教育品牌“火花思维”完成4000万美元C轮融资

    3月25日消息,在线数理思维教育品牌"火花思维"完成4000万美元C轮融资,由北极光创投.龙湖资本领投.火花思维团队表示,新一轮融资将继续加大投入到教研教学开发和产品内容升级等方面 ...

  7. 10个顶级商业思维:如何升级思维模式突破认知,让自己快速成长

    ​​人和人之间唯一的不同就是大脑的思维模式不一样,信念价值观不一样.不同的思维模式,不同的的信念价值观,造就了我们每个人不同的想法.看事情的角度和高度都不一样.学习的目的就是要打开我们的思维模式,心智 ...

  8. 法学专业如何运用计算机思维,夏正林主讲“人是如何思维的——以法学思维为中心”...

    通讯员( 陈仁凤 )6月11号晚,华南理工大学法学院教授夏正林在我校首义校区文汇楼报告厅举办以"人是如何思维的--以法学思维为中心"为主题的讲座.法学院秦小建副教授担任主持人,法学 ...

  9. 从程序员到架构师的转型思维的转变 NLP思维利器(二)

          导读:本文给大家推荐一个NLP里面非常重要的思维工具,可以说是帮助我们做出人生各种重大决策不可或缺的利器,也是形成本书框架的其中一个底层思维逻辑.       我一直在思考,人这一辈子,到 ...

  10. 学java能打开大脑思维_脑科学:一句“去你的吧”,就可以判断出你是左脑型思维还是右脑型思维!...

    原标题:脑科学:一句"去你的吧",就可以判断出你是左脑型思维还是右脑型思维! 喜欢我,关注我☝ 本图跟本文无关,来自网络 先给个句子,大家读一读:去你的吧! 这个短句子,在现实生活 ...

最新文章

  1. pythonffmpeg 推流_Python实现推流直播
  2. new date.gettime 与传入时间相差毫秒数不对_给女票解释为什么日本时间比中国时间快一个小时?...
  3. linux鉴于它没有文件拓展名,linux中的文件类型以及查看文件类型的方法
  4. signature=8eba57874a1690f9fdaff3572c7cef5f,基于EFI固件文件系统的平台安全策略研究与实现...
  5. mybatis配置文件形式
  6. 复杂的动态布尔表达式性能评估(1)--Antlr4实现
  7. android监控指纹信息变化,android监听指纹变化(解决反射思路在android10不生效的问题)...
  8. 中誉集团:出售3218万股恒大汽车股份 套现1.25亿港元
  9. Freemodbus 1.5
  10. 在OpenStack虚拟机实例中创建swap分区的一种方法
  11. [ 深度学习 ] —— 图卷积神经网络 GCN
  12. CentOS部署OpenStack过程-网络服务
  13. web前端性能优化方案
  14. 北斗输电杆塔状态在线监测系统
  15. 130多个免费接口全部开放,涵盖天气数据、环境数据、旅游景点数据、位置数据、雷达、云图等等,可在线直接提供服务,免费的服务接口
  16. android格式化sd卡软件,如何在各种设备中把SD卡格式化?附误格式化数据恢复方法!...
  17. taro开发微信小程序-播放轨迹(十一)
  18. Vue | 显示切换(v-if与v-show,display,visibility与opacity)
  19. mysql自增列修改方法_如何修改自增列值以及相应的解决方法
  20. 信息收集[架构CMS数据库中间件]

热门文章

  1. HCNA认证课程—VRP基础操作总结
  2. 如何使用万能地图下载器下载80坐标的等高线
  3. 工具介绍(3)- TS 视频文件分析工具神器
  4. 雕刻机可以制作PCB
  5. 大麦盒子(domybox)无法进入系统解决方案!【简单几步】
  6. 通过js检测当前浏览器是否是无头浏览器
  7. 罚函数——内点罚函数算法
  8. 2022年Java常用的框架汇总,你常用哪一个?
  9. 基于mybatis的数据库脱敏
  10. mem考试能用计算机吗,Memtest可以通过多少次?