Ste*_*iks 6 java software-quality robustness
我正在撰写关于测量产品质量的论文.本案例中的产品是一个网站.我已经确定了几个质量属性和测量技术.
一个质量属性是"健壮性".我想以某种方式向我保证,但我找不到任何有用的信息如何以客观的方式做到这一点.
是否存在可以确保稳健性的静态或动态指标?即,就像单元测试覆盖一样,有没有一种方法可以确保这样的稳健性?如果是这样,是否有任何(免费)工具可以做这样的事情?
有没有人有这种工具的经验?
最后但并非最不重要的是,也许还有其他方法可以确定稳健性,如果您有任何想法,我会全神贯注.
非常感谢提前.
Bra*_*ugh 13
嗯,简短的回答是"不".强大可能意味着很多事情,但我能想出的最佳定义是"在任何情况下都能正确执行".如果您将错误的HTTP标头发送到健壮的Web服务器,它不应该崩溃.它应该返回正确的错误类型,并且应该以某种可配置的方式将事件记录到某处.如果一个强大的Web服务器运行很长一段时间,它的内存占用应该保持不变.
系统强大的许多因素是它处理边缘情况.良好的单元测试是其中的一部分,但很可能不会对系统存在的任何问题进行单元测试(如果这些问题已知,开发人员可能会修复它们,然后才添加测试) .
不幸的是,几乎不可能测量任意程序的健壮性,因为为了做到这一点,你需要知道该程序应该做什么.如果你有一个规范,你可以编写大量的测试,然后作为测试对任何客户端运行它们.例如,查看Acid2浏览器测试.它以简单,可重复的方式仔细衡量任何给定的Web浏览器符合标准的程度.那就是你能得到的尽可能接近,人们用这种方法指出了许多缺陷(例如,一个程序会更频繁地崩溃,但是根据规范更加强大,还会做一件额外的事情吗?)
但是,您可以使用各种检查作为系统健康状况的粗略数值估计.单元测试覆盖率非常标准,其兄弟姐妹,分支覆盖范围,功能覆盖范围,语句覆盖率等等.另一个不错的选择是像FindBugs这样的"lint"程序.这些可以表明存在问题的可能性.开源项目通常根据发布的次数和最近的提交或发布的次数来判断.如果项目有错误系统,您可以测量已修复的错误数量和百分比.如果您正在测量的程序的特定实例,尤其是具有大量活动的程序,则MTBF(平均故障间隔时间)是稳健性的良好衡量标准(参见Philip的答案)
但是,这些测量并不能真正告诉您程序的稳健性.他们只是猜测它的方法.如果很容易弄清楚程序是否健壮,我们可能只是让编译器检查它.
祝你的论文好运!我希望你能想出一些很酷的新测量!
| 归档时间: |
|
| 查看次数: |
5606 次 |
| 最近记录: |