写点什么

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:572416
用户头像

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

关注

评论

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

100% 展示 MySQL 语句执行的神器-Optimizer Trace

程序员历小冰

MySQL 28天写作 12月日更

Spring核心原理之 IoC容器中那些鲜为人知的细节(3)

Tom弹架构

Java spring 源码

模块四-reids存储方案

撿破爛ぃ

「架构实战营」

从渔夫和游客说到晒太阳的狗狗派

mtfelix

28天写作

数据管理典范!「山东城商行联盟数据库准实时数据采集系统」入选2021中国大数据应用样板案例

DataPipeline数见科技

大数据 数据同步 数据融合 数据迁移 数据管理

kali系统之复现漏洞分析与审计

网络安全学海

黑客 网络安全 安全 信息安全 渗透测试

Spark-概览

xujiangniao

HarmonyOS(鸿蒙)——单击事件的四种写法

李子捌

28天写作 21天挑战 鸿蒙系统 12月日更

Kubernetes 集群部署 Metrics Server 获取集群 Metric 数据

zuozewei

Kubernetes 性能监控 12月日更

儿童教育有感-说话用词不当

wood

28天写作

什么是 AQS 及源码分析

Ayue、

AQS

在线上传图片二维码识别解析

入门小站

工具

模块三-架构文档

撿破爛ぃ

「架构实战营」

Dubbo 框架学习笔记十二

风翱

dubbo 12月日更

程序员做技术管理需要懂哪些方面?

Seven的代码实验室

程序员 技术管理

Netflix系统架构

俞凡

架构 微服务 netflix 大厂实践

注意:字符串substring方法在jkd6,7,8中的差异

CRMEB

git tips(qbit)

qbit

git #Github

Linux 命令 less 全知全会

hedzr

Linux less

【Java 进阶训练营】 JVM 知识总结

wgl

HarmonyOS(鸿蒙)——双击事件

李子捌

28天写作 21天挑战 鸿蒙开发 12月日更

荐书📚——《剑指Offer》专项突破版

宇宙之一粟

推荐书籍 12月日更

【安全漏洞】CVE-2021-42287&CVE-2021-42278 域内提权

H

网络安全 信息安全 漏洞

🍃【Spring专题】「原理系列」SpringMVC的运行工作原理(补充修订)

洛神灬殇

spring springmvc 12月日更 流程解析

《权力——为什么只为某些人拥有》读书笔记

圣迪

特质 权力 影响力

[架构实战营] 模块三作业

Geek_0ed632

「架构实战营」

Linux之which命令

入门小站

Linux

linux动态链接的程序如何在其他系统上运行

SkyFire

动态链接 装载器

Gin-Vue-Admin 使用gin+vue进行极速开发的全栈开发基础平台【gva第一节】

坚果

Go 28天写作 Vue 3 12月日更

架构实战营模块三课后作业-外包学生管理系统架构文档

Jude

架构实战营

HDZ城市行深圳站 | AIoT时代,如何抓住智联生活的战略机会点?

华为云开发者联盟

AIOT HarmonyOS 华为云IoT 智联生活 PLC-IoT

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