Unit testing 如何证明我的利益相关者和经理我的软件有效?

Unit testing 如何证明我的利益相关者和经理我的软件有效?,unit-testing,release,maintainability,Unit Testing,Release,Maintainability,在另一个完整版本发布后,软件工程师会遇到什么?嗯,我们小组中遇到的第一件事就是我们公开发布的bug。作为软件工程师,我们在完全发布后遇到的最大问题是意大利面代码,也称为 追求完美的时间和金钱很少,也不应该如此。为了生存,我们必须尽一切努力让我们的软件正常工作并按时出门。事实上,如果一个团队在有空闲时间的情况下完成了一个项目,那么今天的管理者可能会将此视为下次提供更少时间和金钱或更少人员的标志 您需要在预算内按时交付高质量的软件 成本:架构是一项长期投资。支付账单的人很容易放弃它,除非有一些有形的

在另一个完整版本发布后,软件工程师会遇到什么?嗯,我们小组中遇到的第一件事就是我们公开发布的bug。作为软件工程师,我们在完全发布后遇到的最大问题是意大利面代码,也称为

追求完美的时间和金钱很少,也不应该如此。为了生存,我们必须尽一切努力让我们的软件正常工作并按时出门。事实上,如果一个团队在有空闲时间的情况下完成了一个项目,那么今天的管理者可能会将此视为下次提供更少时间和金钱或更少人员的标志

您需要在预算内按时交付高质量的软件

成本:架构是一项长期投资。支付账单的人很容易放弃它,除非有一些有形的即时利益,比如税收减免,或者除非有多余的钱和时间。这种情况很少发生。更多情况下,客户需要在明天之前完成一些工作。通常,控制和管理开发过程的人并不认为架构是一个紧迫的问题。如果程序员知道做工是看不见的,而管理者无论如何也不想为此买单,那么恶性循环就产生了

但如果真是这样,那么每个长期软件项目最终都会导致一个大泥球

我们知道,这种情况并不总是发生。怎么会?因为管理者不认为架构是一个紧迫问题的说法是错误的。至少现在是这样。IT领域的管理者非常清楚,可维护性是业务的关键

业务变得依赖于驱动it的数据。企业已经严重依赖其软件和计算基础设施。有许多任务关键型系统必须每天24小时/每周7天投入使用。如果这些系统失灵,就无法检查库存、无法支付员工工资、无法安排飞机航线等等。[……]

因此,寻求使系统远离大泥球的方法是业务的核心。系统仍然可以维护。这个系统确实可以工作,而你,作为程序员,可以证明它可以工作。您的经理是否会问您是否已经完成了今天的编码,她是否会问您是否可以在今天完成已修复A、B和C的发布,或者她是否会问将发布的软件是否实际工作?你证明它有效了吗?用什么

现在回答我的问题:

我们有什么方法来证明我们的管理者和/或利益相关者我们的软件工作正常?我们的软件单元测试的绿灯是否足够好?如果是的话,这难道不能证明我们的大泥球还在做我们期望它做的事情吗?软件是可维护的吗?你如何证明你的设计是正确的

[稍后添加]


Chris Pebble他下面的答案是让我的团队走上正确的轨道。质量保证绝对是我们追求的目标。谢谢你,克里斯。与利益相关者达成一致的QA政策是我的团队所寻求的逻辑结果

接下来的问题是,QA政策中应该包含哪些内容

  • 让构建服务器对我的涉众可见
  • 让buildserver不仅“只是构建”,而且添加作为QA策略一部分的测试
  • 与我的利益相关者就我们的开发过程达成一致(开发人员相互审查代码是其中的一部分)
  • 更多
更多信息:我领导的团队正在构建其他软件团队使用的Web服务。这就是为什么一个坏掉的Web服务马上就要花钱了。当presentationlayer团队的开发人员或实际的测试人员无法前进时,我们会立即面临压力,必须尽快修复bug,这反过来会导致快速的黑客攻击

[稍后补充]

谢谢你的回答。这确实是关于“信任”。如果软件不受利益相关者的信任,我们就不能发布,利益相关者正在使用使用我们的Web服务的网站主动测试我们的软件。 当问题出现时,测试人员的第一个问题是:这是服务层问题还是presentationlayer问题?这就要求我制定一个质量保证政策,确保我们的软件可以进行测试

因此,我(现在)能设想的与测试人员建立信任的唯一方法是:
-与当前的测试团队交谈,检查他们能够手动执行的测试(从他们的测试脚本和场景),并确保我们的团队已经根据我们的Web服务检查了这些测试作为单元测试。在我们发布PresentationLayerTam必须集成的版本之前,这将是一个很好的“签准”起点。为所有这些场景创建自动测试需要一些时间,这需要一些努力来澄清。但是,它肯定会有助于确保我们构建的软件实际工作。

在所有情况下,除了琐碎的情况外,您无法“证明”您的软件是正确的


这就是UserA验收T测试的作用:表明已达到可接受的有用性水平。

除非有防弹规范(从来没有),否则无法证明其超出测试范围那么,测试永远不会证明任何明显的问题

作为一个团队,您可以做的是以负责任的方式进行软件设计,不要屈服于为取悦管理者而编写糟糕代码的诱惑,要求必要的资源和时间限制,并将整个过程视为一项工作。文艺复兴时期最优秀的雕塑家们都知道,没有人会看到背上的雕像被放置在大教堂的角落里