zoukankan      html  css  js  c++  java
  • 软件测试读书心得(一)

    最近在看《软件测试的艺术》,算是对测试有了一点入门。

    借着看书,一边整理一下自己的思路,也有助于未来可能面试测试类的职位时能清晰地说出对测试的理解。

    书中强调的一个核心观点是:测试的目的不在于验证程序的正确性,而在于尽可能的找出程序的缺陷。对“测试成功”的定义也与我们通常理解的“成功”不同,甚至有些违背我们的心理观念。书中将软件测试同医生给病人看病做了较为恰当的类比,如果一个感到身体不适的人去找医生,如果医生没有找到任何病因,那么医生是不够称职的;同样的,面对一个规模较大的程序,它必然含有bug(这种论断想必没人会怀疑),那么测试人员的任务就是找到这些bug。

    那么如何找到这些bug呢?那么首先得对程序的bug进行明确的定义和划分,才能有的放矢地针对不同类型的bug去运用不同的测试方法。暂时不从系统的层面去谈测试(涉及到软件工程方面的各个环节,属于高层次的测试分析),而是从一个程序片段或者程序本身的功能实现上去寻找测试的方法。

    测试的主要方法有两种:白盒测试和黑盒测试。白盒测试是以逻辑为驱动的测试;而黑盒测试是以数据为驱动的测试。有必要针对这两种测试进行简要说明:

    白盒测试不太关注程序的接口,而关心程序在各种逻辑判断(if的“是否判断”,switch的各种case等)下(通过挑选各种测试用例),输出的结果和预期的差异。针对白盒测试有几种解读:

    1、语句覆盖 : 覆盖所有的语句(太难实现)

    2、判定覆盖 : 所有的判定被覆盖

    3、条件覆盖 : 所有条件语句被覆盖

    4、判定/条件覆盖 : 所有判定和条件均覆盖

    5、多重条件覆盖 : 各种条件之间的组合被覆盖

    6、路径覆盖 : 各个路径被覆盖(不同于语句覆盖)

    白盒测试只能检测代码是否实现了逻辑(这种逻辑可以通过流程图体现),但是并没有检验逻辑本身是否体现了程序应该实现的功能。而黑盒测试,则是把程序当作一个黑盒子去看待,带入测试用例,运行程序,看程序的输出是否和接口描述一致。

    用于黑盒测试的测试用例可以选取一般功能测试以及边界条件。(书中提及的因果图没细看)

    模块测试(单元测试)是针对一个模块而言的,通常采用先白盒测试再辅以黑盒测试。

    (暂时先记这一些,到时候再补充)

  • 相关阅读:
    C/C++ 编写一个通用的Makefile 来编译.c .cpp 或混编
    C/C++ 定义接口文件格式
    MySql存储过程例子1
    项目所遇问题
    linux下编译C++程序无法链接Mysql的问题
    linux 同步时间 调试core内核
    CentOS安装与更新git
    03 js基本数据类型、 js运算符1
    02 js运行原理 、js开发工具介绍 、js程序入门、 js基本语法
    01 js基本介绍
  • 原文地址:https://www.cnblogs.com/lumouren009/p/3179075.html
Copyright © 2011-2022 走看看