zoukankan      html  css  js  c++  java
  • 软件测试基础知识

    一.在软件测试基础之前,我先了解计算机基础知识:

    1.为什么需要计算机?

    每天都要处理的信息是巨大的,如果是人工来对这些数据进行处理,效率是很低的。因此使用计算机来提高处理数据的速度。

    2.计算机是什么?

    是可以自动高效地完成计算的电子设备,俗称电脑(PC)

    二.软件测试基础:

    1.为什么需要软件测试:

    (1)一款软件的诞生会经历很多的开发阶段,由于不同的人来参与开发,最终产出的软件功能会存在问题。这时我们采用测试,对软件进行测试,所以保证了软件的功能可用。

    (2)不管是软件是否容易上手,执行效率是否高等一些列的要求,所以这也需要我们对软件进行大量的测试。

    2.为什么选择软件测试:

    想要让这款产品变得更加的完善,让用户用起来更加利索、方便,把错误率降到最低,所以需要测试。

    3.软件测试定义:
    通过手工或工具对“被测对象”进行测试操作,从而验证实际结果与预期结果之间是否存在差异

    4.测试原则:

    (1)测试证明软件存在缺陷:不管在执行什么样的测试操作都保能当前软件是否有缺陷的。

    (2)不能执行穷尽测试:有些功能是没有办法将所有的测试情况逻列出来,任何的测试操作都有结束的时间

    (3)缺陷存在群集现象:对于软件功能来说,核心功能占20%,非核心功能占80%,我们会集中测试20%的核心功能

    (4)某些测试需要依赖特殊的环境

    (5)测试应尽早介入:为了更多的发现和更好的解决软件中的缺点

    (6)杀虫剂现象:同一样的测试不能多次测试,因为软件会对它产生免疫
    (7)不存在缺陷谬论:任何软件不可能是完美的

    5.测试级别(最常见的一种级别分类,如下)

    (1)单元测试:软件中的最小可测试单元进行检查和验证,一般就是类、函数、组件。

    (2)集成测试:在单元测试基础上,将多个单元模块组合在一起,进行集成测试。
    (3)系统测试:测试人员充当用户然后对软件功能的主体进行测试(是当前行业做的最多的一种测试)

    (4)验收测试(分为了两种测试):1.内侧、2.公测

    6.系统测试分类:

    (1)功能测试:验证当前软件主体是否可用

    (2)兼容性测试:验证当前软件在不同的环境下是否可用

    (3)安全测试:验证软件是否只能授权用户提供的功能使用

    (4)性能测试:相当于当前软件消耗的资源、它的产出能力

    7.常见的系统测试方法:

      1.按测试对象进行分类:

      (1)白盒测试:主要测试软件的底层代码(也就是看代码进行测试)

      (2)黑盒测试:主要测试软件外在主体是否可用(也就是不看代码,直接进行测试)

      (3)灰盒测试:介于二者之间的测试

      2.按测试对象是否执行分类:
      (1)静态测试:不执行

      (2)动态测试:在真实的环境下进行测试

      3.按测试手段进行分类:

      (1)手工测试:人员手动对被测试的对象进行测试,优点是灵活的改变测试操作环境

      (2)自动化测试(主要有两种形):1.自己写测试脚本,2.通过第三方的工具对被测试对象进行测试,优点是在高效率的执行有些人工无法的操作

    8.软件开发过程模型:
      瀑布模型:

      (1)先是图片介绍:

       (2)瀑布模型的优缺点:

        优点:

         开发的各个阶段比较清晰

         早期计划及需要调查

         适合需要求稳定的产品开发。

        缺点:

         依赖于早期的需求调查,不适合需求的变化。

         单一流程不可逆

         风险往往在后期才显露,失去纠正的机会,导致后期的时间不够用

      (3)在瀑布模式的基础上,优化了瀑布模式,这个模式叫快速原型模式

        第一:快速原型模型的图片介绍

         第二:快速原型模式的优缺点

           优点

            克服瀑布模型的缺点

           缺点

            不适合大型系统的开发

            适合小型的、灵活性高的系统

    9.测试模型:

    (1)V模型

      第一:V模型图片展示

      

       (2)解析当中V模型的设计、测试等

        需求分析:用户需求、需求规格说明书

        概要设计:模块与模块之间的接口、系统架构、模块的划分

        详细设计:模块中的内部的逻辑与方法

        编码:实现上面的设计

        单元测试:检查开发的代码是否符合详细设计要求

        集成测试:测试过的各组部分是否能玩好的组合到一起

        系统测试:测试已经集成在一起的产品是否符合规格说明书打的要求

        验收测试:测试产品是否符合用户的要求

      (3)V模型的优点:

        包含了高层测试:底层测试(单元测试)、高层测试(系统测试)

        采用自顶向下的方法把整个开发过程分成不同的阶段,每个阶段的工作都很明确,当所有的阶段都完成之后,那开发的过程也随之结束

      (4)V模型的缺点:

        是由于自身的顺序性所导致的,很多前期的错误直到测试阶段才发现,甚至无法发现,随着往往无从修改

        模型灵活性比较低

      (5)W模型:

        第一:W模型的图片介绍:

       第二:W模型优缺点

        优点

          早期就进入测试,可以尽早的解决缺陷,把错误率降到最低

          还便于控制整个项目过程

        缺点

          复杂性提高,对需求和设计的测试要求很高

      (6)H模型

        第一:H模型图片的展示

         第二:H模型优缺点

          优点

            测试活动可以尽早准备、尽早执行、具有很强的灵活性

            被测物的不同而分层次、分阶段、分次序的执行,同时也可以被迭代

          缺点

            管理型要求高、技能要求高、对于整个项目组的人员要求非常高、测试就绪点分析困难

    10.等价类划分法:

      是一种重要的、常用的黑盒测试,不需要考虑程序的内部结构,只需要考虑程序的输入规格即可

    11.边界值(边界值分析法也是一种常用的黑盒测试方法):

      确定边界值情况、选取正好等于、刚刚好大于或者刚刚小于边界值作为测试数据、闭两边、开中间

    12.因果图法的定义:

      (1)特点:

      考虑输入条件的相互制约及组合关系

      考虑输出条件对输入条件的依赖关系

      (2)因果图的核心:

      因果图的“因”——输入条件

      因果图的“果”——输出条件

      (3)基本符号:

      

      恒等含义:若原因出现,则结果出现; 若原因不出现,则结果也不出现

      非含义:若原因出现,则结果不出现; 若原因不出现,则结果出现

      或 含义:若几个原因中有一个出现,则 结果出现;若几个原因都不出现,则 结果不出现

      与含义:若几个原因都出现,则结果 才出现;若其中一个原因不出现, 则结果不出现

     (4)约束条件:

  • 相关阅读:
    SQLAlchemy教程-第二章-SQL常用查询的ORM写法
    弹性数组
    C++模板
    typedef 函数名
    typedef 函数指针
    备忘录:“#ifdef __cplusplus extern "C" { #endif”的定义
    linux mmap 内存映射
    生成模型与判别模型(转)
    DL反向传播理解
    UFLDL(Unsupervised Feature Learning and Deep Learning)
  • 原文地址:https://www.cnblogs.com/zhang1314/p/13070875.html
Copyright © 2011-2022 走看看