软件质量——让它成为现实






3.11/5 (14投票s)
2004年8月6日
5分钟阅读

36747
质量是一种纪律。遵循适合您的简单规则,并为创造您的杰作感到自豪。
引言
大多数软件公司都致力于创造高质量的产品。他们制定流程以确保高水平的质量。然而,质量并非仅仅通过流程就能实现,它还需要人们理解这些流程的重要性并以正确的精神去实施。
质量的执行者
质量部门当然可以制定标准,创建清单和大量的文档来强制执行质量。但最终,这些文档的好坏取决于填写它们的人。
个人团队成员应该相信质量,并为交付高质量的软件感到自豪。你不应该需要一个质量警察来强制执行质量,因为这应该是每个团队成员的责任。
组织中的质量
在未实施 SEI CMM 等标准的软件组织中,仍然可以通过将质量制度化为一种纪律来维持高水平的质量。
您应该使用的一些工具包括
缺陷跟踪解决方案
每个人都同意需要一个缺陷跟踪解决方案来有效地管理缺陷和错误。但是,即使在项目交付并关闭所有缺陷后,缺陷跟踪器仍然有用。重新审视缺陷数据库并找出缺陷和错误的原因是一个好习惯。这可以告诉您很多关于您的流程中的不足之处,并让您从错误中学习。
示例
如果您发现内部树控件不稳定,并且是 10% 缺陷的原因,那么也许您最好从其他供应商那里购买一个稳定的树控件。
如果项目非常小,并且公司负担不起缺陷跟踪解决方案,请查看开源解决方案,例如
- Mantis - PHP/MySQL/基于 Web 的缺陷跟踪系统。
- Bugzilla - Perl/MySQL/基于 Web 的缺陷跟踪系统。
通过使用缺陷跟踪器中的数据来理解缺陷的根本原因,可以使团队避免在后续项目中犯同样的错误。质量是一个持续的过程,随着您产品的每一次发布,您都会做得更好。
源代码管理系统
源代码管理系统允许多个开发人员在一个项目上工作并有效地共享文件。您应该定义源代码管理的使用流程。否则,每个团队成员都会定义自己的流程。
源代码管理系统应该有一个主分支,从中生成主要的构建版本,以及另一个分支,用于各个开发人员的工作区。开发人员可以使用他们的分支作为代码的备份机制,在那里他们可以签入他们正在进行的工作。一旦他们完成了代码的单元测试,获取所有其他文件的最新版本,编译源代码,并再次运行测试以确保他们没有破坏任何其他东西。测试成功执行后,他们可以签入他们的代码到主构建分支,并附带适当的注释。
主构建分支将由自动化构建系统拾取,并交给测试团队。如果您的源代码管理不支持透明分支,请选择支持的源代码管理。
一个不错的附加功能是能够将缺陷跟踪器与源代码管理集成,以便开发人员可以轻松地为特定的缺陷修复指定和跟踪已更改的文件。
使用源代码管理系统可以使团队管理产品的多个版本和发布,同时保持理智。
自动化构建机制和单元测试验证
自动化应包括从源代码管理系统自动检索正确的源代码文件。目标应该是确保构建过程一致且可重复,这对于包含多个相互依赖组件的大型软件项目来说是必须的。
自动化构建完成后,应执行健全性验证测试,以确保基本功能正常工作。此验证测试应自动化,并且市场上有各种可用工具,例如
- NUnit - 适用于所有 .NET 语言的单元测试框架。
- JUnit - Java 的回归测试框架。
这种“尽早构建,频繁构建”将有助于识别由于不正确的签入引起的问题,并且所有问题都会更早地浮现,而不是更晚。它有助于缩短开发和 QA 周期之间的循环。最后,它有助于团队士气,让他们看到他们应用程序的可行版本。
备份机制
您不希望仅仅因为服务器故障而丢失一周的工作。创建一个您需要备份的所有项目的清单,并自动化此过程。
一些简单的指导原则是,将备份存储在不同的位置,并且应该易于检索。
当最终发布临近时,将所有配置项备份到磁盘并存档。正确标记这些备份。
代码审查
每个签入的代码都应该由同行进行审查。创建一个代码审查清单,列出根据项目需要满足的最低标准。
代码审查是向新软件开发人员传授良好编码实践并帮助他们快速适应这个疯狂行业的绝佳方式。
即使您在非常紧张的时间表下或处于救火模式,也不要忽视审查。确保系统的关键部分得到彻底审查,不仅在编码之后,而且在设计阶段本身。
请记住,为审查过程留出至少 50% 的开发时间。
结论
质量是一种纪律。遵循适合您的简单规则,并为创造您的杰作感到自豪。