当前位置:网站首页>软件测试的价值
软件测试的价值
2022-08-08 17:24:00 【多测师111】
首先,测试存在的必要性。
关于测试的目的各种书上不一致,比较通用的是验证需求和实现的一致性。为什么这些事情开发不能自己做?需要测试来做?原因有以下几点。
从认知上:自己无法知晓自己的错误。
开发若是对产品需求理解错误,那么实现必然错误,即使自己测试也无法找出这些沟通理解和认知上的错误,一旦上线必然导致对用户的伤害。但是测试的需求来自于产品,所以能够弥补这一缺陷,从而最终保证质量。这里引申出一个新的问题,就是那些没有产品开发自己的需求是否需要测试呢?我认为对应没有产品的需求可以合适的降低开发测试比,在用户能够接受不完善的情况下甚至可以没有测试。
从心理上:自己不愿意证明自己的错误。
开发一向视自己的产品如孩子,没有人愿意去说我的**是不好的。一旦有这种想法,他们就很难找出自己产品中的问题了。记得女儿刚出生几个月的时候我老公曾经问我:“女儿是真的很漂亮还是我们自己觉得很漂亮。”我很肯定的告诉他:“她是我见过最漂亮的宝贝。”然后拿着几个月的照片四处炫耀。现在再看到当时照片,我一般会对女儿说:“你看看你小时候长得多难看啊。”心理学上有个现象,叫做自我预言的自我实现,一旦你认为你的产品是好的,你所做的事情只是去证明我们的产品是对的,是好的,很难找出产品中潜在的问题。但是测试从一开始就是抱着找出问题的目的,因此在预防缺陷上更加具备目标性,效率和质量都会优于开发。
从过程上:整体的质量未必是开发的责任。
发现缺陷的过程本身是单调的,尤其是要全面回归整个链路,这意味着开发不只要发现自己的问题还必须发现其他人的问题。发现问题之后还需要和对方进行全面的沟通,复现缺陷,验证缺陷,对开发来说多数人不愿意承担其他人责任,但是对于测试来说保证质量本身就是自身的责任。
从特性上:专业的人做专业的事。
开发和测试本身的特点不一样,开发最应该具备的是深入的思考能力和对技术的热爱,测试最应该具备的确是细心和耐心。如果你不具备这种能力,可能这个岗位并不适合你。当然很多通用的素质是大家都应该具备的,比如对业务的深入,编程的能力和良好的沟通表达能力,但是工作不同,侧重点不同。一个非常优秀的开发未必是一个好的测试,一个好的测试也未必是一个好的开发。
从角色上:测试代表用户
开发从角色上代表的供应商,因此他的专著点是提供好的产品,从而吸引更多的用户,产生最大的利益,而测试代表的是用户,因此,他是从用户的角度出发,发现产品的缺陷,促进产品的改进,从而最终提升用户体验。所以,与如果测试的工作是只是保证质量确实是对测试比较狭隘的理解,测试的最终目的应该是保证用户体验,从这个目的出发测试可以做更多的事情,比如发现需求的问题,影响产品的形态,平衡产品质量和上线时间点的矛盾,完善流程,影响产品,开发甚至是客户对待用户体验的态度。但是毫无疑问,一个有缺陷的产品是最影响用户体验的,一个长期的故障能最大击毁用户对产品信任度,是最差的用户体验,从而也使测试要从更本上防止的问题。
综上,我们详细说明了让开发测试自己产品存在的一些问题,这些问题说明了测试存在的必要性和价值。术业有专攻,分工越细,越能高效,这是社会进化的方向,也是个性化发展的方向。我们不要一个大同的世界。
但是,最近消灭测试声音越来越多,也是必然有它的原因,从现状来看,部分开发放弃了本身对质量的保证,将本身应该承担的质量责任交付测试来承担,导致测试工作量越来越大,测试本身的招聘降低了门槛,从而造成一些测试工程师的冗余,同时,原有测试的成长缺少专业性,都让外界开始质疑测试的价值。
所以,接下来,我们需要讨论下开发测试的比例问题,从任何公司的层面,肯定是要追求高效能的,用最少的资源做最多的事情是公司的需求,也应该是每个测试人员的追求,如何高效,高质量的做好测试是测试本身要不断追求的目标。但是,在产品的不同形态,不同阶段开发测试比不可一概而论。可以分为以下几个方面来考虑:
1:用户:用户量大的产品,毫无疑问对测试的需求会更大一些,一些创业初期的产品,用户量小,影响面小,可以考虑降低测试的成本。
2:期望:用户付费的产品,必然会有较高期望,希望有较好的体验和服务,所以需要较多的测试来保证用户体验。
3:产品特性:有产品经理的产品,经过多层次的沟通,错误的概率比较大,需要测试来弥补信息的流失和误传,技术驱动的产品,开发本身就是产品,清楚了解产品的功能特性,可以考虑开发自测,降低沟通的成本。
最后,感谢所有质疑的声音,正是这些声音让测试可以重新反思,在反思中做得更好,感谢所有人对测试的期许,承担更多的责任,才能激发更多的潜能。希望所有测试朋友正确认识测试的价值,扩大自己的付出和贡献,我们的认可不在于强调自身的重要,而应该来源于我们的贡献和价值。当我们的贡献高于期望的时候,一定可以赢得更多的掌声。
边栏推荐
- Chapter 20 Source Code File REST API Reference (2)
- LeetCode(剑指 Offer)- 21. 调整数组顺序使奇数位于偶数前面
- VISTA无人驾驶模拟器;FinRL量化金融深度强化学习库;『深度神经网络应用』电子书;CUDA/TensorRT案例集锦;前沿论文 | ShowMeAI资讯日报
- MySQL database
- 2 prerequisites for the success of "digital transformation" of enterprises!
- 博客主页rrs代码
- socket concept
- Detailed explanation of JVM memory model and structure (five model diagrams)
- 正则在js中的使用
- Tensorflow教程(二)——基本概念与搭建流程
猜你喜欢
LeetCode_Binary Tree_Medium_515. Find the maximum value in each tree row
正则在js中的使用
VISTA无人驾驶模拟器;FinRL量化金融深度强化学习库;『深度神经网络应用』电子书;CUDA/TensorRT案例集锦;前沿论文 | ShowMeAI资讯日报
APICloud AVM wraps date and time selection components
Cuda Anaconda tensorflow 版本对应
B. Stairs
超越CLIP的多模态模型,只需不到1%的训练数据!南加大最新研究来了
Regular use in js
2.5W 字详解线程与锁了,面试随便问!!
无需精子卵子子宫体外培育胚胎,Cell论文作者这番话让网友们炸了
随机推荐
D2. Sage‘s Birthday (hard version)
【TypeScript】函数类型:返回值类型和参数类型到底如何定义?
在指南针炒股软件中的指标靠谱吗?安全吗?
The difference between rv and sv
uri (url urn 的区别)
The difference between B+ tree and B- tree
差分约束做法
从2022投影行业最新报告,读懂2022年家用智能投影仪该怎么选!
D. Non-zero Segments
彻底理解 volatile 关键字及应用场景,面试必问,小白都能看懂!
L2-016 愿天下有情人都是失散多年的兄妹 (25 分)
看到这个应用上下线方式,不禁感叹:优雅,太优雅了!
The new version of squirrel as source change operation
Superficial understanding of ports
XDOJ-统计正整数个数
L2-012 关于堆的判断 (25 分)(堆)
activemq 消息头、消息体、消息属性
L2-026 小字辈 (25 分)
第二十章 源代码文件 REST API 参考(二)
Getting started with glide4