写点什么

2012.3.6 微博热报:测试的价值 & 重构之惑

  • 2012-03-05
  • 本文字数:2229 字

    阅读完需:约 7 分钟

Philonis 高在微博上发起了软件测试的价值体现在何处的讨论,蛙蛙王子则向大家提问:如何在实际工作中更好的重构?

测试的价值

Philonis 高在微博上表达了对软件测试价值取向的看法:

很多人都说质量不是测出来的,这句话没错。不过,测试存在的意义其实有两点,创造价值和守护价值。质量要靠测试者来守护,而不是创造出来。“守护价值”存在于传统测试工作中;而“创造价值”,正是我们现在正在探索的。

对于测试如何创造价值,或者说测试创造的价值是什么,很多人也有自己的看法。我预设的前提是,静态测试、需求评审等工作被划入“守护价值”,也就是将“创造价值”的范围缩小了,免得有哲学帝说一切工作都是创造价值。

朱少民老师

守护价值和创造价值说得好!创造价值体现在基于客户的立场提出积极的质量反馈意见,以及对缺陷的分类、分析,总结出缺陷模式,回馈到前期过程,预防缺陷。

原草莫莫

认同。我们现在搞的故障模式测试就是这样的一个实践。测试不依赖于开发的上游输入,通过反向验证推动产品质量改进。测试在产品也愈来愈有话语权。

还有就是,当质量标准往往很难定义的时候,这个时候往往测试标准就成了产品潜在的质量标准。通过测试对产品质量作出诠释,这实际上也是一个引领开发、创造价值的过程。当然前提是测试对质量标准有足够的理解。

Ang-Ani

测试当然创造价值。如在 V model 中所谓的静态测试,review 用户需求,及早发现需求中的 defect,就是创造价值。如在敏捷测试中,测试结果反馈到下一个 iteration, 也是创造价值。再如测试驱动开发中,测试主导着开发过程,当然创造价值。

质量就是测出来的。但是要知道何时测,测什么,如何测。不能把测试局限于后期的 execution。从项目开始的最初,测试作为一个 activity 就应该存在,测试包括,静态的 review 用户需求、技术文档及代码,动态的单元测试及非功能测试…如果脑海里只有 waterfall 模式:design code test,那么质量只能靠天收。

梅万龙

"质量不是测出来的"——质量主要是靠设计的,有些产品还是得靠测试去发现,这也可以说质量是测出来的,而通过设计分析预防,测试维度分析预防成本更低,我们更乐于说,来通过预防来保证质量,而不是傻呼呼的都靠去测。

"质量要靠测试者来守护"——质量是靠整个团队来守护,测试只是其中比较大的"发动机"。产品有比同行更好的质量,不就是要探索的价值吗?否则,不能从岗位角度看价值,得从人的职责和能力角度找价值了。

Aullyxiao

这种情况也遇到不少,最后是项目经理确认某需求问题不找需求人员,而是找测试人员了,而测试人员直接找用例库,可想而知用例库的重要性和作用。这样思考之,探索式测试由于在事先没用例,事后补充的测试记录比较有限,也是一个限制。

陈尚义

质量不是测出来的,这句话对传统产品是无可挑剔的正确,我见过纺织厂的质量检测人员,他们发现了错误就不能改,质量检测员当然不能提高质量。但对软件产品情形就不太一样,测试发现了问题马上就得到改正,这就提高了质量。另外,软件测试涵盖的范围很广,测试还可以建立对产品质量的信心。

让测试飞起来

软件的历史是隐藏细节的历史。从 routine 到子程序,到 procedure,到函数,到类 (抽象类、接口)、到 SOA,再到今天的云,无一不是将简单留给用户或后来的调用者,将细节隐藏。云计算将资源调度、管理、运维、安全保障、应用开发等细节隐藏,用户按需使用即可,一种到目前为止最高级别的细节隐藏。

Frank-Lin

分析用户及其习惯,从用户角度进行测试和评估系统,从而,测试不仅仅是守护价值,推动了价值的创造。

重构之惑

蛙蛙王子在微博中向大家提问:

看到代码中的坏味道,做到立刻重构,感觉太难了。书上说一个敏捷开发的人,从来不说稍后再重构,稍后等于永远不,他们不会看着软件走向腐化。认同是非常认同,实际中做的话,感觉哪儿都需要重构,坑太大了,而且还得先补测试,大家怎么来按部就班重构没测试的老系统的?

乐淘网丁学

我一般是不会要求大家去做重构,但是会要求遵守童子军规则:永远保持离开时的露营地比你发现它时更整洁。

软软的胖糖

如果是一个新系统,大家按照这个原则去做就不会有这个问题了。当然如果个别人做,坑太大了那也是没办法的事情。

横刀天笑

除非你有一个非常能接受这种做法的团队,不然这种看见不爽就重构只会死的很惨。当然,如果你要染指某块代码,你可以乘机重构~

wolvever

我们花了 2 年重构,边重构边开发新功能。所谓高速列车上换轮子,外科手术式重构。不分支,先易后难,影响小依赖少的优先,还要考虑业务发展,保证每次重构部分随时可以上线。时机很重要,不是看见就改,修改代码必须立项;不是一次改彻底,一定得容易可控周期短;不是纯技术问题,要与业务充分沟通。

飞林沙:

我觉得更现实的做法是当出现新需求时,如果原有代码无法适应需求,那么则为了适应这个需求重构。

TW 张逸

我认为重构必须把握几个原则:

1、重构需要有测试的保护网,每次重构后必须跑一下测试;
2、代码库的集体所有权;
3、最好能有 CI,至少保证频繁提交,避免因为重构引起的大量冲突;
4、重构应随时进行;
此外,还有一些比较好的实践,例如每日的 Code Review;尝试尽量使用工具进行重构。

今日微博推荐

朴灵

推荐理由:Node.js 和Javascript 技术的热情实践者和布道师, EventProxy 库作者,主持 InfoQ 中文站《深入浅出Node.js 》专栏,在微博经常发布和讨论有关Javascript 前后端技术的最新发展和实践经验。

欢迎读者关注 @InfoQ ,推荐热门话题,可私信 @InfoQ ,同时请您说明推荐理由。

2012-03-05 08:572807
用户头像

发布了 501 篇内容, 共 282.7 次阅读, 收获喜欢 64 次。

关注

评论

发布
暂无评论
发现更多内容

Python实现「手势猜拳游戏」:好玩的实时机器学习项目

知识浅谈

Python 人工智能 机器学习

Node.js技术原理分析系列——如何在Node.js中新增一个内置模块

OpenTiny社区

node.js 开源 前端 OpenTiny

2025开源数据工程全景图,九大技术赛道演进趋势预测

白鲸开源

大数据 开源 数据工程 全景图

以 Serverless 低成本的⽅式 快速在亚马逊云科技上部署 DeepSeek

伊克罗德信息科技

llama2 70B mindie推理开箱报错问题

AI布道Mr.Jin

Qt 开发的性能测试

北京木奇移动技术有限公司

软件外包公司 QT开发 QT软件开发

通义灵码内置 DeepSeek V3 和 R1 满血版 671B模型,免费不限量,免部署!

阿里巴巴云原生

阿里云 云原生 通义灵码 AI程序员

QT开发的测试方法

北京木奇移动技术有限公司

软件外包公司 QT外包开发 QT开发公司

人工智能丨使用实例:DeepSeek 在工作中的惊艳表现

测试人

人工智能

如何判断这个品牌的堡垒机是否安全?

行云管家

网络安全 堡垒机 堡垒机安全

HarmonyOS 应用开发赋能套件:鸿蒙原生应用开发的 “神助攻”

HarmonyOS开发者

通义灵码内置 DeepSeek V3 和 R1 满血版 671B模型,免费不限量,免部署!

阿里云云效

阿里云 云原生 通义灵码 AI程序员

电机工厂数字化转型MES系统解决方案

万界星空科技

mes 万界星空科技mes 制造业工厂 电机行业 电机MES

Qt开发框架及特点

北京木奇移动技术有限公司

软件外包公司 QT开发 QT外包公司

25年辽宁省等保测评机构新名单看这里!

行云管家

网络安全 等保 等保测评 辽宁

开发一个交易所需要哪些技术

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

情人节用 DeepSeek+通义灵码玩花样!在 IDE 中使用满血版 DeepSeek R1 试试

阿里巴巴云原生

阿里云 云原生 通义灵码 AI程序员

情人节用 DeepSeek+通义灵码玩花样!在 IDE 中使用满血版 DeepSeek R1 试试

阿里云云效

阿里云 云原生 通义灵码 AI程序员

加入Karmada用户组!连接全球同行共建多集群生态

华为云原生团队

云计算 容器 云原生

内购占比 45%、首日留存 50%,开发者揭秘热门手游《Trash Tycoon》成功秘籍

极客天地

2012.3.6 微博热报:测试的价值&重构之惑_架构_崔康_InfoQ精选文章