跟踪和预测质量水平
人们推荐哪些技术来跟踪新程序的质量水平? 他们的方法是采用“质量水平”这样定义不明确的术语,对其进行量化,然后做出预测吗? 目前我使用错误率和 S 曲线,但我正在寻找其他方法来评估、估计和预测质量水平。
What techniques do people recommend to track the quality level of a new program? Are their ways to take a poorly defined term like "quality level", quanitify it and then make predictions? Currently I use bug rates and S curves but I am looking for other ways to evaluate, estimate and predict quality levels.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您是否在寻找这项措施?
更严重的是,对我来说,代码质量与可维护性有关:
请记住,您编写了一次代码,但您却阅读了多次。
Are you looking for this measure?
More seriously, for me code quality is about maintainability:
Remember that you write code once, but you read it several times.
我不确定如果没有可以比较的东西来计算你的错误会做什么。 如果您制作的软件非常困难并且有很多边缘情况怎么办? 你需要某种比较......
即使其他答案之一显然是一个笑话,代码审查也可能是一个好主意。 如果您有太多错误,请雇用更好的工程师或让他们编写更少的代码。
编辑:在考虑评论后添加...
每个错误都像一个独特的糟糕的雪花(一个糟糕的雪花?)。 它们对您的客户和开发人员有不同程度的影响。 我至少会考虑到这一点。 也许增加严重性(衡量客户推动修复的措施)和修复问题所花费的工程时间可能有助于提高准确性。 我想我担心的是,在开发软件时,这仍然是对“质量”的过度简化。
可悲的是软件质量!=产品质量。 最近发布的一款名为《辐射 3》的游戏赢得了大量奖项并赚了很多钱(至少我认为如此),但至少在 PC 上也是一堆充满缺陷的垃圾。
只要确保您正在跟踪和优化正确的事情即可。 跟踪错误数量与时间的关系只是跟踪错误数量与时间的关系。 进一步阅读它需要一定程度的假设,无论正确或错误。
你的目标是什么? 错误只是软件质量的一部分。 如果你想继续支持你的软件,可维护性是关键。 很多时候,如果你的编码员匆忙做事,错误修复会让事情变得更难以维护。 这反过来又使未来的修复和功能变得更加困难,并且修复可能会增加新的错误。
I am not sure what counting your bugs is going to do with out something to compare it with. What if the software you made was very hard and had lots of edge cases? You need some kind some kind of comparison...
Even though one of the other answers was clearly a joke code reviews are also probably a good idea. If you have too many bugs hire better engineers or have them write less code.
Edit: Added after considering comments...
Every bug is a like a unique sucky snow flake (a suckflake?). They have different levels of impact on your customers and developers. I would at least take this into account. Maybe adding severity (a measure of customer push for fix) and engineering hours spent fixing it might help improve accuracy. My concern I guess is that this is still over simplification of "quality" when it comes to developing software.
Sadly software quality != product quality. A recently released game called Fallout 3 won tons of awards and made lots of money (at least I assume) but was also a buggy hunk of junk on PC at least.
Just make sure you are tracking and optimizing the correct thing. Tracking # bugs vs time is just tracking # of bugs vs time. Reading any more into it requires some level of assumption however correct or incorrect.
What are your goals? Bugs are but one part of software quality. If you want to continue you to support your software maintainability is key. A lot of times bug fixes can make things less maintainable if your coder did things in a rush. This in turn makes future fixes and features harder and fixes can add new bugs.
这在很大程度上取决于您想要进行什么样的比较。 如果您随着时间的推移查看单个项目并且团队没有变化,那么错误率可能是有意义的。 但是,如果您要比较不同团队的不同项目,则实际上无法比较错误率等内容,因为您实际上是在比较已知错误率。 一个团队可能比另一个团队更擅长识别错误,这使得他们的错误率看起来更高,但他们实际上是软件质量更好的团队。
This depends a lot on what kind of comparisons you're trying to make. If you're looking at a single project over time and the team doesn't change, then bug rates might be meaningful. However, if you're comparing different projects, with different teams, there's really no way to compare things like bug rates, because you are really comparing the rate of known bugs. One team may be much better at identifying bugs than the other, making their bug rate look higher, but they're really the ones with better software quality.
你做单元测试吗?
单元测试的代码覆盖率可以作为质量的一个不错的衡量标准。
Do you do unit testing?
Code coverage on unit tests can be a decent measure of quality.