《软件测试》--读书笔记

来源:互联网 发布:centos7 php配置文件 编辑:程序博客网 时间:2024/06/06 15:42
《软件测试》--读书笔记



        为什么要进行测试(测试的目的)?    两个主要原因:1. 反馈(对质量或可接受性做出判断)    2. 找BUG(发现问题)。具体
来说就是,功能性测试(黒盒的过程)侧重于反馈,确定置信度。而结构性测试(白盒的过程)侧重于查找缺陷。
        通常人们说:“测试的目的就是为了找BUG。” 这句话是否正确呢?答案应该是正确,但不完整。功能性测试的依据是需求规格,
主要目的是对质量、可靠性或是功能实现的有效反馈。次要目的是发现BUG(其实发现错误也是对程序质量的一种反馈)。
        为什么说发现BUG是次要目的呢?1.因为功能性测试本身可发现的缺陷是有限的(这与其依赖需求规格、只关注输入输出有很大
关系,也就是说容易产生遗漏)。2.而发现这些缺陷的成本相对要高(功能性测试很容易产生大量冗余的测试用例)。
       

软件测试的职能划分:
        QA:Quality Assurance ---> 质量保证:关注如何发现并减少开发过程中的错误做法;
        QC:Quality Control       ---> 质量控制:关注发现产品中的缺陷并反馈;
在很多小公司,其实是没有QA的概念的。测试人员只是做测试,而对于过程、方法等等的基本不涉及。


《软件测试》中提供的一个有用的异常列表:

输入/输出缺陷:

        输入:不接受正确的输入、接受不正确的输入、描述有错或遗漏、参数有错或遗漏;

        输出:格式有错、结果有错、在错误的时间产生正确的结果、不一致或遗漏结果、不合逻辑的结果、拼写/语法错误
                    修饰词错误;


逻辑缺陷:

        遗漏、重复、极端条件出错、解释有错、遗漏条件、外部条件有错、错误变量的测试、不正确的循环迭代、错误的操作字;


计算缺陷:

        不正确的算法、遗漏计算、不正确的操作数、不正确的操作、括号错误、精度不够、错误的内置函数


接口缺陷:

        不正确的中断处理、I/O时序有错、调用了错误的过程、调用了不存在的过程、参数不匹配、不兼容的类型、过量的包含


数据缺陷:

        不正确的初始化、不正确的存储/访问、错误的标志/索引值、不正确的打包/拆包、使用了错误的变量、错误的数据引用
        缩放数据范围或单位错误、不正确的数据维数、不正确的下标、不正确的类型、不正确的数据范围、不一致的数据


功能性测试(黒盒):
        功能性测试的固有弱点是漏洞和冗余性:有些内容没有被测试、而另外一些内容被测试多次。

    边界值分析:原理是大量错误出现在输入变量的极值附近。边界值分析的局限性是边界值分析假设变量是完全独立的,当变量存在
                            相互关联时,就容易造成遗漏。

    等价类分析:



结构性测试(白盒):












注:
    Software  Testing    A  Craftsman's  Approach(Second Edition) (美) Paul C.Jorgensen  著   韩柯  杜旭涛  译    机械工业出版社2003.7


0 0