BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

软件测试宣言

| 作者 侯伯薇 关注 0 他的粉丝 发布于 2012年11月2日. 估计阅读时间: 5 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

近日,目前任职于同济大学软件学院的朱少民老师发布了软件测试宣言,力求站在公正的立场上,说明测试在软件开发中的价值。该宣言受到大家的广泛关注,并进行了深入的讨论。

朱少民老师是在微博上发表了他的软件测试宣言:

为了赶时髦,发布我的#【测试宣言】#,认清软件开发的本质,尊重软件企业的利益和用户的需求,站在公正的立场上,不偏袒测试人员,不忽悠。目前普遍认可的自动化测试、持续集成的价值就不在其范围内。

具体内容如下:

认可测试的价值,但更鼓励事先确定验证的标准并以此来驱动开发

认可专业测试人员的不可替代的价值,但更鼓励开发人员做好测试

认可测试计划的价值,但更强调计划是一个基于风险不断调整的过程

认可探索式测试的价值,但更希望测试是具有系统方法的、相对规范的过程

认可发现缺陷的价值,但更重视对软件产品质量的全面评估与持续反馈

他还补充到:

开发人员在单元测试、集成测试、性能测试、静态的安全性测试等方面的确能发挥很好作用,自动化测试也需要开发人员支持,并让他们先执行更好。但同时专业测试人员具有不可替代作用,主要是对开发测试的指导、提供测试工具及其自动化框架,以及后期的系统测试、验收测试,包括end-to-end的测试。

该宣言引起了大家的广泛关注,并在微博上进行了深入的讨论。朱少民老师也对大家的提问做出了认真而仔细的回答。

崔启亮-北京ISTQB:测试需要提高认识,满足用户的综合要求。测试和开发的关系将更加密切,而不是完全独立。提倡测试驱动开发Test Drived Development (TDD),开发辅助测试Developer Assisted Test (DAT)。

朱少民:回复@崔启亮-北京ISTQB: TDD 和 DAT 同时出现更好,但我更提倡 ATDD (验收测试驱动开发),提倡先确定验证标准(质量的具体要求)。而TDD实施起来效率会有些问题,有一定的浪费。

胡争辉:脱离的产品工程的品质保证工程是无本之木,无源之水。首先应当强调产品工程,然后在产品工程中强调需求工程,其次在需求工程的基础上强调品质保证工程。在一个工程中,品质保证超过需求,或者品质保证超过产品都是没有意义的。

朱少民:回复@胡争辉: 不能完全同意,品质保证可以跨越产品工程,覆盖整个软件的生态链、生态环境。现在软件更多是服务过程,产品的概念越来越淡薄。

程序员邹欣:值得开发,测试,项目管理人员思考。 认可内部测试的重要性, 但更重视产品对用户的长期影响。

朱少民:回复@程序员邹欣: 差不多可以作为我的软件测试宣言第6句: 认可内部测试的重要性, 但更重视产品对用户的长期影响

胖子-邓晓明:朱老师,我是在上海软测大会得到您签名书的童鞋, 我有两个问题: 1、为什么把认可探索式测试放在前面?为什么不是ST?另外本句后面个人更倾向于【更强调】 2、最后一句,认可发现缺陷的价值,个人认为有点倾向于人,而后一句又是描述过程改进。以上两方面是我个人看法,请朱老师指正 。

朱少民:回复@胖子-邓晓明: 好问题啊。1. 因为未知,才有探索的空间,因为需求不清楚、时间紧等各种原因,探索式测试才更有效,在一定程度上是因为软件开发本身的问题,例如我称”敏捷开发“为”探索式开发“,测试才被动应付这种局面。2. 最后一句讨论了测试的本质:是发现缺陷呢还是对产品质量的全面评估?

蔡德辉_IT研发管理前沿:为啥就没人发一个如何保证设计本身的质量杠杠的,而不是靠测试呢?我们认可测试的价值,但出产无缺陷的产品才是我们追求的。

朱少民:回复@蔡德辉_IT研发管理前沿: 有设计原则、设计模式和开发框架等,以及设计、可测试性检查等,都是在设计上预防问题的发生。

jeffsn:多谢总结,从测试的角度提出了对产品开发的要求。 请问如何定义产品发布前的软件测试工作和用户测试工作的范畴呢?用户测试的工作是否应该有软件测试人员介入?

朱少民:回复@jeffsn: 一般来说,系统测试工作覆盖功能测试、性能测试、安全性测试、易用性测试等工作,包括各种负面测试等。而用户测试主要针对用户环境、用户数据等进行安装/卸载测试、数据和系统的兼容性和安全性测试、用户需求的进一步确认(功能性测试)等,软件测试人员应该介入,和用户(代表)共同实施。

不脱不洒脱:我们现在的探索性测试为零,这是我们团队测试中的一个漏洞环节,因为我本身就认为测试必须具有系统方法和标准的流程体系。这也是我的不足,无可辩解……

朱少民:回复@不脱不洒脱: 属于哪个行业?什么产品类型?在传统软件行业来看,探索式测试可以作为一个辅助手段。这不能算“漏洞环节”,如果发布出去的产品质量不够好,可以加强探索式测试,反过来也可以完善已有的测试用例。也不要忘记缺陷的RCA。

各位读者,你是否也在关注测试在软件开发中的价值,是否认同该宣言的观点?欢迎加入到讨论中来。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT