【问题标题】:Tracking and prediciting quality level跟踪和预测质量水平
【发布时间】:2009-04-07 16:31:03
【问题描述】:

人们推荐使用哪些技术来跟踪新程序的质量水平?他们是否会采用定义不明确的术语(例如“质量水平”),对其进行量化然后进行预测?目前我使用错误率和 S 曲线,但我正在寻找其他方法来评估、估计和预测质量水平。

【问题讨论】:

    标签: metrics prediction


    【解决方案1】:

    你在找this measure吗?

    更重要的是,对我而言,代码质量与可维护性有关:

    • 修复错误、添加/删除/修改功能是多么容易,
    • 重构有多容易:是否有可用的回归测试套件?
    • 多少钱technical debt

    记住你写了一次代码,但你读了好几遍。

    【讨论】:

      【解决方案2】:

      如果没有与之比较的东西,我不确定计算你的错误会做什么。如果你制作的软件非常难并且有很多边缘情况怎么办?你需要某种比较...

      即使其他答案之一显然是个笑话,代码审查也可能是一个好主意。如果您有太多错误,请雇用更好的工程师或让他们编写更少的代码。

      编辑:在考虑 cmets 后添加...

      每个虫子都像一个独特的吸雪花(吸雪花?)。它们对您的客户和开发人员有不同程度的影响。我至少会考虑到这一点。也许增加严重性(衡量客户推动修复的措施)和修复它所花费的工程时间可能有助于提高准确性。我想我担心的是,在开发软件时,这仍然是对“质量”的过度简化。

      可悲的是软件质量!= 产品质量。最近发布的一款名为 Fallout 3 的游戏赢得了大量奖项并赚了很多钱(至少我认为),但至少在 PC 上也是一大堆垃圾。

      只要确保您正在跟踪和优化正确的事情。跟踪 # 个错误与时间只是跟踪 # 个错误与时间。进一步阅读它需要某种程度的假设,无论正确或错误。

      你的目标是什么?错误只是软件质量的一部分。如果您想继续支持您的软件,可维护性是关键。很多时候,如果您的编码人员匆忙做某事,错误修复会使事情的可维护性降低。这反过来又使未来的修复和功能变得更加困难,并且修复可能会添加新的错误。

      【讨论】:

      • 一些人回答说他们不明白错误率的意义。在 Y 轴上,绘制发现的错误总数的图表。在 X 轴上,图表时间。在开发和测试过程中,图表会形成一个 S。平坦的曲线可以预测您何时没有错误的质量。
      • 衡量质量的不是错误率本身,而是它的演变,即它的派生。这表明代码变得更好(或更糟)。
      • 正如fuzzy所说,只有严格定义bug的概念才有意义,这既难做又愚蠢。
      【解决方案3】:

      这在很大程度上取决于您要进行什么样的比较。如果随着时间的推移您正在查看单个项目并且团队没有改变,那么错误率可能是有意义的。但是,如果您要比较不同的项目、不同的团队,则实际上无法比较诸如错误率之类的东西,因为您实际上是在比较 已知 错误的比率。一个团队可能比另一个团队更擅长识别错误,从而使他们的错误率看起来更高,但他们确实是软件质量更好的团队。

      【讨论】:

        【解决方案4】:

        你做单元测试吗? 单元测试的代码覆盖率可以作为质量衡量标准。

        【讨论】:

        • 是的,这是关于单元测试中代码覆盖率的一个好点。谢谢。我相信我听说过使用蒙特卡洛模拟作为预测器。有没有人真正使用过这种技术?它在现实生活中如何运作?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-11-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多