发布新日志

  • 静态质量分析

    2007-06-06 17:02:34

    静态结构分析常需使用软件工具进行,包括控制流分析、数据流分析、接口分析、表达式分析

    产生的图表有:系统结构图、函数调用关系图、文件调用关系图、模块控制流图、类关系图

    规则(Metrics):量化的行为规范
    分类标准(Criteria):由一系列质量规则组成
    质量因素(Factor):依据各分类标准取值组合权重来计算

    Line复杂度、Halstead复杂度、McCabe复杂度

    经验显示:McCabe圈复杂度与错误发生率密切相关
    圈复杂度可以很好的预测
    错误发生的可能性
    代码可被理解的程度
    维护的工作量
    调试的容易程度

    基本复杂度(Essential Complexity) ev(g)
    依照结构化原则简化模块流程后,模块的复杂度,用于衡量程序非结构化程度
    优点:
    量化了软件结构化的程度
    显示了代码的质量
    预测维护时的工作量
    有助于软件的模块化设计

    规则Kiviat图

    分类标准Kiviat图,得出function_testability,function_stability,function_changeability,function_analyzability,synthesis

  • [转]等价类划分准则

    2007-06-05 11:16:18

    等价类划分准则:

    • 如果输入条件规定了取值范围,可定义一个有效等价类和两个无效等价类
    • 如果输入条件代表集合的某个元素,则可定义一个有效等价类和一个无效等价类
    • 如规定了输入数据的一组值,且程序对不同输入值做不同处理,则每个允许的输入值是一个有效等价类,并有一个无效等价类 (所有不允许的输入值的集合)。
    • 如果规定了输入数据必须遵循的规则,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
    • 如已划分的等价类各元素在程序中的处理方式不同,则应将此等价类进一步划分成更小的等价类
  • [转]Late Discovery Bug

    2007-05-27 10:37:45

    Late Discovery Bug则是QA之痛。用质量的术语来说,就是漏检。每个Release都会发现无数上个版本测试没有发现的Bug。通常这也会达到20%到30%。
     
    产生Late Discovery Bug的主要原因是:
    测试覆盖率。通过黑盒测试,要想做到100%分支的Cover率,是不可能的。这样,总会有漏掉的Bug。
    灯下黑,就是个人的测试盲区。每个人都有脑筋死角或盲区,先入为主的认识会让人们不能发现很明显的问题。
     
    解决的方法有:

    增加Ad Hoc测试,就是不按照事先设计好的Case执行的测试。
    交叉测试,减少测试误区。
Open Toolbar