软件质量保证

时间:2010-09-23 12:40:08

标签: software-quality

我是软件质量保证的新手。我的老板告诉我,我们可以在公司里找到它。请有人告诉我软件质量保证是什么以及我可以使用哪些开源工具进行软件质量保证。

6 个答案:

答案 0 :(得分:7)

你可以尝试阅读“伟大和美好”的博客,人们喜欢马丁福勒喜欢的'Bliki'和罗伯特马丁的叔叔鲍勃的Blatherings ......和Joel Spolsky现在已经不复存在的Joel On Software。所有人都对有关质量的意见有所了解。

目前正在使用Java和Macker和Findbugs等工具检查代码的正确性和遵守指南。

对于可重复性和请管理,单元测试由Hudson或Cruise Control等构建服务器自动运行,从源控制系统提取的代码是个好主意。它还将赋予'权力'一些指标,以便您可以展示您的代码构建,测试等等。

最终,这只归功于那些关心他们正在做什么的好人。

答案 1 :(得分:2)

这都是关于测试,测试和测试的。有许多工具可以帮助您实现这一目标,例如单元测试框架,代码分析器,内存分析器等。您将使用的工具取决于您公司用于其软件的编程语言和开发平台。

答案 2 :(得分:2)

正如其他人所说,测试是软件质量保证的重要组成部分。但我很惊讶没有人提到代码审查。看看如何将同行代码评审整合到您的开发过程中;这是提高整个团队代码质量和分享知识的好方法。您越早发现问题,修复它就越容易和便宜,因此请考虑对每个源代码更改进行代码审查。

如果您想要对QA进行全面而全面的介绍,请阅读Steve McConnell撰写的Code Complete第二部分和第五部分。事实上,阅读所有内容 - 它提供了如何提高代码质量的实际示例,以及解释不同QA技术优势的指标(您可以向管理层展示)。

我提到的章节包括以下主题:

  • 设计概念和实践以提高质量
  • 高质量的惯例
  • 防御性编程
  • 伪代码编程
  • 提高软件质量的技术(包括相对有效性的评估)
  • 何时进行质量保证
  • 协作构建(包括结对编程,代码检查)
  • 开发人员测试
  • 调试(包括心理因素)
  • 重构
  • 代码调整策略和技巧

引用麦康奈尔软件质量的一般原则:

  

提高质量可降低开发成本

答案 3 :(得分:1)

它还涉及使用的验证过程。您可以整天测试您的软件,但如果您不知道它的目的是什么以及预期的结果是什么,您可能会完全测试错误的东西。有一本真正好的书,它提供了一个坚实的框架(如果贵公司通过ISO认证,那么它也将涵盖任何ISO要求):http://www.amazon.com/Computer-System-Management-Validation-Cycle/dp/1932828095

答案 4 :(得分:1)

正如伯纳德上面所说,你需要做测试。如果您使用Java进行开发,则可以使用JUnit(NUnit在.Net中的工作方式类似)。单元测试只是一个开始,你可能会看一下代码覆盖率工具,以指示你的单元测试是多么完整(开源工具EMMA和Cobertura为Java提供了这个)。每当在源代码树中检查更改时,您也可以使用hudson自动执行这些测试(哈德森会告诉您开发的稳定性,测试用例通过率的大量波动表明您正在进行大量修改例如改变)。

在那之后,你可以看看像Findbugs for Java这样的东西来发现狡猾的做法。如果您正在使用Eclipse进行Java开发,那么您可以使用metrics插件对代码执行各种其他分析,但您需要知道这些指标实际指示的内容。

最终,您的产品质量将根据您是否能够可靠地引入实现其目标的变更而不会导致回归来定义。上面的工具只是一个开始,需要很长时间才能擅长测试(我自己不在那里),但如果你向你的组织介绍工具和实践,你可以从那里开始工作。

答案 5 :(得分:1)

总的来说,不要陷入普遍陷阱,认为这只是IT员工唯一的问题。显然,您不希望代码中出现错误,并且有许多工具/流程可以帮助实现这一点 - 质量保证实际上是一个更大的范围流程。如上所述,DBA_Alex,您需要知道您使用软件为业务解决了什么问题,并且在一天结束时,业务机构需要参与回答这个问题。确保您的最终解决方案包括IT和业务人员......