需求、开发和测试的“三足鼎立”

简介: 需求、开发和测试虽然各自做着不同的事情,所关注的点不一样,有时还有可能会出现意见不统一,但大家都有一个共同的目标:将产品做好。也正是这个共同的目标让需求、开发和测试之间的合作大于对抗、理解大于分歧,也正是这个共同的目标让软件产品这个“鼎”的三只“脚”永远平稳和牢固。

在很多电影或电视剧中,大家经常会看到一种代表权利与威望的东西—鼎。古语曰“问鼎中原”,可见鼎在当时人们心中地位之高。下面是一张来源于互联网的鼎的图片。
ding

不知大家注意到没有,鼎有三只“脚”。大家在几何课上学过,在所有的平面图形中三角形最稳定。看来古人也深知这个道理,做出了有三只“脚”的摆放稳定的鼎。当鼎的任意一只“脚”被去掉时,整个鼎必然会轰然倒下的。也就是说,“三足鼎立”是最稳定的。

在软件开发活动中,可以把鼎比作是一个软件产品,要保持产品的稳定,就需要有三只牢固的“脚”来支撑它。那么,这三只“脚”是什么呢?作为一个软件开发人员,我认为需求、开发和测试就是支撑产品的三只“脚”。
sanzu

需求是需求工程师(有的地方也叫系统工程师)写出来的,它就是一个软件产品的文字实现,以文档的形式描述了产品所要实现的功能。当需求写出来并经过评审之后,就要由开发人员用程序来实现。

开发是由被称之为程序员(也有的地方称之为“码农”)的人所组成的群体,他们的主要任务就是参照需求来编写程序以做出软件产品。他们每天的大多时间都以电脑为伴,办公室和机房就是他们的休息场所。

测试是由测试工程师所组成的群体,他们不直接开发产品,但是,他们要对开发出的产品进行各种验证来确保其没有大的问题。在产品提供给用户使用之前,都要首先经过测试这一关。从另一方面来说,测试工程师就是软件产品的第一批用户。

大家都知道,三国时期的魏蜀吴之间战火不断、勾心斗角的故事已成历史经典,而需求、开发和测试之间的“恩怨情仇”如果要写成故事,估计比《三国演义》还精彩。

需求可以比作“魏国”。在三国中,魏国占了“天时”。曹操“挟天子以令诸侯”让天下有识之士纷纷投靠。对应到软件开发上来,需求工程师与用户靠得很近,他们写的需求代表了用户的意见(虽然有时候并不准确),他们挟用户这个“天子”来给开发和测试“发号施令”。同时,需求工程师一般都是在一个公司里面工作年限较长的人,他们对行业、对产品的认识比新入行的人要深一些,这就像是曹操身边的那些谋士,几乎个个都是一流的。

测试可以比作“吴国”。在三国中,吴国占了“地利”。长江天险阻挡了侵犯者的步伐,江东富饶的物产是吴国后勤的有力保障。对应到软件开发上来,测试部门拥有众多的测试机器和测试环境,任何其他部门的人想要用这些机器和环境,都要经过测试工程师的批准。这些资源就像是吴国那些富庶的土地,让别人垂涎三尺。测试工程师几乎不会主动对开发产品提意见,他们就等着开发人员主动找上门来要测试的环境,这就像是吴国几乎很少主动出击而采用的是以守为主的战略。

开发可以比作“蜀国”。在三国中,蜀国最为“苦逼”,在经过重重磨难之后,终于在偏远的四川占得了一席之地。蜀国能够成功,靠的就是“人和”。刘关张三兄弟靠三个人三匹马起家,在最困难的时候都是一条心,这才走到了最后。对应到软件开发上来,开发工程师就像是苦命的兄弟,谁有了问题,都可以向身边的人请教,大家努力来将事情做好,这和刘关张三兄弟的经历是何等的相似。同时,除了自己办公用的电脑之外,开发部门很少拥有多余的资源,需要测试环境的时候就要向测试部门申请,这就像刘备为了生存向孙权借荆州一样,区别就是开发部借了的资源是要归还的。

需求、开发和测试虽然各自做着不同的事情,所关注的点不一样,有时还有可能会出现意见不统一,但大家都有一个共同的目标:将产品做好。也正是这个共同的目标让需求、开发和测试之间的合作大于对抗、理解大于分歧,也正是这个共同的目标让软件产品这个“鼎”的三只“脚”永远平稳和牢固。

目录
相关文章
|
3月前
|
测试技术
测试提交的bug开发不认可怎么办?
测试提交的bug开发不认可怎么办?
|
4月前
|
测试技术 开发者
开发认为过度测试了该怎么办?
开发认为过度测试了该怎么办?
开发认为过度测试了该怎么办?
|
3月前
|
Java 测试技术 C#
什么样的自动化测试开发是合格的?
什么样的自动化测试开发是合格的?
|
1天前
|
缓存 监控 前端开发
【Flutter前端技术开发专栏】Flutter应用的性能调优与测试
【4月更文挑战第30天】本文探讨了Flutter应用的性能调优策略和测试方法。性能调优对提升用户体验、降低能耗和增强稳定性至关重要。优化布局(避免复杂嵌套,使用`const`构造函数)、管理内存、优化动画、实现懒加载和按需加载,以及利用Flutter的性能工具(如DevTools)都是有效的调优手段。性能测试包括基准测试、性能分析、压力测试和电池效率测试。文中还以ListView为例,展示了如何实践这些优化技巧。持续的性能调优是提升Flutter应用质量的关键。
【Flutter前端技术开发专栏】Flutter应用的性能调优与测试
|
1天前
|
前端开发 测试技术 持续交付
【Flutter 前端技术开发专栏】Flutter 中的 UI 测试与自动化测试
【4月更文挑战第30天】本文探讨了 Flutter 应用中UI测试和自动化测试的重要性,包括保障质量、提高效率和增强开发信心。Flutter提供`flutter_test`库进行Widget测试,以及`flutter_driver`进行集成测试。UI测试涵盖界面布局、交互和状态变化的验证,最佳实践建议尽早引入测试、保持用例简洁,并结合手动测试。未来,随着Flutter技术发展,UI测试和自动化测试将更加完善,助力开发高质量应用。
【Flutter 前端技术开发专栏】Flutter 中的 UI 测试与自动化测试
|
2天前
|
SQL DataWorks Java
DataWorks操作报错合集之在阿里云 DataWorks 中,代码在开发测试阶段能够成功运行,但在提交后失败并报错“不支持https”如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
13 1
DataWorks操作报错合集之在阿里云 DataWorks 中,代码在开发测试阶段能够成功运行,但在提交后失败并报错“不支持https”如何解决
|
4天前
|
测试技术 开发者
【专栏】测试驱动开发(TDD)与行为驱动开发(BDD)的比较与选择
【4月更文挑战第27天】本文探讨了测试驱动开发(TDD)和行为驱动开发(BDD)的核心概念与实践。TDD强调先写测试用例,通过测试推动设计,确保代码质量与可维护性。BDD侧重软件行为和业务价值,提倡使用通用语言描述行为,减少沟通障碍。选择TDD或BDD取决于项目复杂性、团队技能和业务需求。理解两者差异有助于团队做出合适的选择,发挥测试的最大价值。
|
6天前
|
JavaScript API
【vue】分环境构建(开发/测试/生产)配置
【vue】分环境构建(开发/测试/生产)配置
12 1
|
2月前
|
XML Java 测试技术
【Java优化实战】「微基准系列」带你脚踏实地的进行开发和使用JMH测试和提升应用程序和服务指南
【Java优化实战】「微基准系列」带你脚踏实地的进行开发和使用JMH测试和提升应用程序和服务指南
44 1
|
4月前
|
自然语言处理 测试技术
测试驱动开发(TDD)与行为驱动开发(BDD)的比较与选择
在软件开发中,测试驱动开发(TDD)与行为驱动开发(BDD)是两种常见的开发方法。虽然它们都强调测试在开发过程中的重要性,但是两者之间存在一些差异。本文将对TDD和BDD进行比较,分析它们各自的优点和缺点,以及在实际开发中如何选择最适合的方法。

热门文章

最新文章