提高软件质量的最佳实践

时间:2009-11-24 10:13:03

标签: c# unit-testing tfs

我们正在寻找在开发软件时改进内部流程的方法。

我们已经采用了TDD连续集成和敏捷。视觉工作室或TFS的任何模糊功能?

欢迎所有建议。

7 个答案:

答案 0 :(得分:6)

我认为不可能有灵丹妙药。美丽(或在这种情况下,质量)是旁观者的眼睛。

话虽如此,我可以就一些确保代码质量的方式给出一些建议。

一个建议可以是将代码覆盖率纳入您的软件质量评估中。为您的代码编写单元测试是一回事,但代码覆盖可帮助您确定测试实际“覆盖”了哪些代码,这有时可以识别您可能未考虑过的用例/场景。我建议您调查nCover

您可能还希望深入挖掘并研究使用nDepend ...

  

NDepend是一种简化的工具   管理复杂的.NET代码库。   架构师和开发人员可以分析   代码结构,指定设计规则,   计划大规模重构,做到有效   代码审查和掌握进化   比较不同版本的   代码。

我感谢这些不是TFS功能,但您可以使用TestDriven.NET

轻松地将它们“集成”到您的visual studio环境中

这当然不是详尽的清单 - 您需要找到适合您的内容并让您对代码的质量充满信心。

希望这有帮助,

答案 1 :(得分:4)

这是一个有用的清单:http://www.joelonsoftware.com/articles/fog0000000043.html(Joel Spolsky的“乔尔测试:改善代码的12个步骤”)

答案 2 :(得分:1)

如果您确实没有任何操作,并且您拥有资源,则可以尝试代码审核。此过程包括在每次(实际)提交之前仔细检查代码。这有助于在开发过程的早期发现错误。谷歌正广泛使用这项技术。

可悲的是,支持这类程序的工具非常基础,目前难以使用。如果你进行谷歌搜索,你会找到一个或两个简单的TFS代码审查工具。

但要小心。这些技术无法帮助您单独制作好的软件。你仍然需要一个好的架构,质量代码等。(好吧,TDD有助于代码质量,但架构仍然是一个灰色区域。)我不知道有任何技术可以帮助当前,也不会损害开发过程许多。你必须等到Visual Studio 2010推出所有模型验证,自动uml图生成等等。

答案 3 :(得分:1)

我个人相信code reviews。一些优点是:

  • 不断关注代码质量和编码标准。
  • 容易注意任何异常/错误/困难来理解编码结构(即长if条件,奇怪的类型转换等)。< / LI>
  • 虽然正在阅读别人的代码更容易注意到所有错误的假设(可能是否定的假)(即此对象永远不会null),这可能介绍错误。
  • 熟悉 对源代码的所有更改,因此很容易记住这段代码最后被修改过(可能会引入错误)。
  • 易于学习(并教授)良好习惯

不相信在任何工具中,这些工具都是特殊的silver bullet - 这不是真的。

答案 4 :(得分:1)

阅读:Code Complete

答案 5 :(得分:1)

你实施TDD,CI和敏捷是件好事。只是拥有任何一个过程远比我见过的许多地方好。代码审查可能是早期传播知识和充实缺陷的最佳方式。

但是,对于我的钱,坚持基础。如果您没有进行需求管理,则应该考虑它。在开始sprint或开发周期时,您应该知道客户的要求是什么。对这些内容进行审核并发现您的衍生需求(如果有)。最后,您应该想出一种方法来验证1)您构建了您想要的所有内容2)您测试了客户要求的所有内容。有一些过程可以做到这一点,但如果你能找到一种对你有益的方法,那就去做吧!

RM比代码审查花费更少的时间,并捕获“非常大”的错误。

答案 6 :(得分:0)

如果您已经采用了TDD,CI和Agile并且无所事事,那么您可能是最幸福的人。)我认为您在TDD和敏捷实践方面有很大的流程改进领域。