软件测试基础知识

一、概念  

  软件测试,描述一种鉴定软件的正确性、完整性、安全性和质量的过程,实际上就是一种输出与预期输出之间的审核或者比较的过程。

  基本概念:

  软件=程序+文档,软件测试=程序测试+文档测试

  “程序”是指能够实现某种功能的指令集合,“文档”是指软件在开发、使用和维护过程中产生的图文集合。

二、测试分类

  从是否关系软件内部结构和具体实现的角度划分(实现上就是按测试人员是否可以看到代码)

  1、白盒测试:访问代码,通过检查代码的线索来协助测试(通常由程序员自己测试)

  2、黑盒测试:又叫功能测试或者行为测试,只需考虑各个功能,不需要考虑整个软件的内部结构及代码

  3、灰盒测试:介于白盒测试与黑盒测试之间的一种测试,灰盒测试用于继承阶段,不仅关注输出、输入的正确性,同时也关心内部的情况。

  从是否执行的角度看

  1、静态测试:测试软件不运行的部分,只检查和审核

  2、动态测试:使用和运行软件进行测试

  从软件开发的过程按阶段划分

  1、单元测试

    单元测试又称模块测试,是针对软件设计的最小单位——程序模块或组件、也可以包括函数或者类,进行正确性检验的测试工作。其目的发现各个模块内部可能存在的各种差错。

  2、集成测试

    又称组装测试、联合测试。在单元测试的基础上,需要将所有模块按照设计要求组装称为系统,测试的是单元之间的接口、。

  3、确认测试

    又称为有效性测试。任务是验收软件的功能和性能及其它特性是否与用户要求一致。

  4、系统测试

    系统测试就是操做或模拟运行软件系统,已验证系统是否满足产品的质量要求,特别是能否满足事先定义的系统功能特性和非功能特性。系统测试主要是指系统功能测试、系统兼容测试、系统性能测试和系统可靠性测试。
    系统测试的目的在于通过与系统的需求定义作比较, 发现软件与系统的定义不符合或与之矛盾的地方。

  5、验收测试

    验收测试是以用户为主的测试。一般是根据产品说明书,严格检查产品。

  6、回归测试

    回归测试指在软件维护阶段,为了检测代码修改而引入的错误所进行的测试活动。

三、测试模型

  1.V模型

     

  概念:V模型是软件开发瀑布模型的变种,主要反映测试活动与分析和设计的关系,从左到右,描述了基本的开发过程和测试行为。V模型的策略既包括低层测试又包括了高层测试,低层测试是为了源代码的正确性,高层测试是为了使整个系统满足用户的需求。

  局限性:把测试作为编码后的最后的一个阶段,最后测试的实际上就是程序本身,可能会出现需求阶段的一个错误到最后才能发现。忽略了测试不应该是程序本身,没有明确指出对需求和设计的测试。

  2、WW模型  

   概念:V模型中增加软件各开发阶段应同步进行的测试,演化为一种W模型,实际上开发是“V”,测试也是与此相并行的“V”。W模型可以说是V模型自然而然的发展。它强调,测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。   

  局限性:仍把开发活动看成是从需求开始到编码结束的串行活动,只有上一阶段完成后,才可以开始下一阶段的活动,不能支持迭代测试。

  3、H模型

  

  概念:将软件测试从软件开发中独立出来,使测试流程形成一个独立的流程;

  局限性:太过模型化,对软件开发没有实际的指导意义。

  4、X模型

   

   概念:针对单独的程序片段进行相互分离测编码和测试,频繁的交接,最后集成形成独立的程序;

  局限性:对程序员的要求较高,探索测试可能会造成资源、时间和财力的浪费。

四、测试流程

  1、制定测试计划
  2、编辑测试用例
  3、执行测试用例
  4、发现并提交BUG
  5、开发组修正BUG
  6、对已修正BUG进行返测
  7、修正完成的BUG将状态置为已关闭,未正确修正的BUG重新激活
原文地址:https://www.cnblogs.com/leilei0327/p/8109815.html