软件测试基础知识(一)


1.软件测试的定义

  为了发现程序中错误而执行程序的过程

  使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。

2.软件测试的目的

  1)软件测试为了发现程序存在的代码或业务逻辑错误;

  2)软件测试为了检验产品是否符合用户需求;

  3)软件测试为了提高用户的体验;


 

  从用户角度出发,希望通过软件测试暴露软件隐藏的错误和缺陷,从而考虑是否接受该产品

  从软件开发者的角度出发,希望表明软件产品不存在错误和缺陷,验证软件能正确地实现用户需用户求,确立人们对软件质量的信心

  从软件管理者角度出发,希望花费有限的资源达到该软件的质量要求,经费和进度是其首要考虑的焦点

3.软件测试的原则

  • 所有的测试都应追溯到用户需求;

  • 测试显示缺陷的存在,但不能证明系统不存在缺陷;

  • 穷尽测试是不可能的,应设定及时终止的条件;

  • 测试应该尽早介入;

  • 缺陷具备群集特性;

  • 测试的杀虫剂悖论;

  • 测试的二八原则,测试发现的错误中80%很可能起源于20%的模块中;

  • 测试活动依赖于测试背景;

 

4.测试的分类

  1.按阶段划分:

  • 单元测试:单元测试(或模块测试)是对程序中的单个子程序或具有独立功能的代码段进行测试的过程;
  • 集成测试:集成测试是在单元测试的基础上,先通过单元模块组装成系统或子系统,再进行测试;重点是检查模块之间的接口是否正确;
  • 系统测试:系统测试是针对整个产品系统进行的测试,验证系统是否满足需求规格的定义,以及软件系统的正确性和性能等是否满足其需求规格的要求;
  • 验收测试:验收测试是部署软件之前的最后一个测试阶段。验收测试的目的是确保软件准备就绪,向软件购买者展示该软件系统能够满足用户的需求。

 

  2.按代码可见度:

  • 黑盒测试:

    ①定义:又称功能测试或数据驱动测试,是针对软件的功能需求,实现进行测试,通过测试来检测每个功能是否符合需求,不考虑程序内部的逻辑结构。

    ②分类:

    

 

 

 

  • 白盒测试:

    ①定义白盒测试也称结构测试或逻辑驱动测试,必须知道软件内部工作过程,通过测试来检测软件内部是否按照需求、设计正常运行 

  • 灰盒测试:是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。

 

  3.按是否运行划分

  • 静态测试:静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性,对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错;
  • 动态测试:动态测试是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性、健壮性、等性能;
    • 动态测试有三部分组成:构造测试用例、执行程序、分析程序的输出结果;
    • 大多数软件测试都属于动态测试;

 

  4.按测试对象划分

  • 性能测试:

    检查系统是否满足需求规格说明书中规定的性能。
    通常表现在以下几个方面:

      • 对资源利用(如内存、处理机周期等)进行的精确度量
      • 对执行间隔
      • 日志事件(如中断,报错)
      • 响应时间
      • 吞吐量(TPS)
      • 辅助存储区(例如缓冲区、工作区的大小等)
      • 处理精度等进行的监测
  • 安全测试:安全测试是一个相对独立的领域,需要更多的专业知识。如:WEB的安全测试、需要熟悉各种网络协议、防火墙、CDN、熟悉各种操作系统的漏洞、熟悉路由器等;
  • 兼容性测试:

    兼容性测试主要是指,软件之间能否很好的运作,会不会有影响、软件和硬件之间能否发挥很好的效率工作,会不会影响导致系统的崩溃。

    • 平台测试
    • 浏览器测试
    • 软件本身能否向前或向后兼容
    • 测试软件能否与其它相关软件兼容
    • 数据兼容性测试
  • 文档测试:

    计算机软件产品开发文件编制指南中共有14种文件,可分为3大类。

    开发文件:可行性研究报告、软件需求说明书、数据要求说明书、概要设计说明书、详细设计说明书、数据库设计说明书、模块开发卷宗。
    用户文件:用户手册、操作手册,用户文档的作用:改善易安装性;改善软件的易学性与易用性;改善软件可靠性;降低技术支持成本。
    管理文件:项目开发计划、测试计划、测试分析报告、开发进度月报、项目开发总结报告。
    在实际的测试中,最常见的就是用户文件的测试,例如:手册说明书等。
    文档测试关注的点:

    文档的术语
    文档的正确性
    文档的完整性
    文档的一致性
    文档的易用性

  • 易用性测试:易用性(Useability)是交互的适应性、功能性和有效性的集中体现。又叫用户体验测试;
  • 业务测试:测试人员将系统的整个模块串接起来运行、模拟真实用户实际的工作流程。满足用户需求定义的功能来进行测试的过程;
  • 界面测试:界面测试(简称UI测试),测试用户界面的功能模块的布局是否合理、整体风格是否一致、各个控件的放置位置是否符合客户使用习惯,此外还要测试界面操作便捷性、导航简单易懂性,页面元素的可用性,界面中文字是否正确,命名是否统一,页面是否美观,文字、图片组合是否完美等;
  • 安装测试:测试程序的安装、卸载。最典型的就是APP的安装、卸载。

 

  5.按测试实施的组织划分

  • α测试内测;
    • α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。
    • α测试的目的是评价软件产品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。  
  • β测试公测;Beta测试是一种验收测试。是一种后期测试,此时系统已通过内部测试大部分错误已修正即将正式发行,在一个或多个真实环境下发布版本,进行测试
  • 第三方测试介于开发方和用户方之间的组织测试

 

  6.按是否手工执行划分

  • 手工测试:手工测试是由人一个一个的输入用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的一种。
    • 优点:自动化测试无法代替探索性测试、发散思维类无既定结果的测试。
    • 缺点:执行效率慢,量大易错
  • 自动化测试:所谓自动化测试,就是在预设条件下运行系统或应用程序,评估运行结果。(预先条件包括:正常条件和异常条件)。简单来说,自动化测试就是是把人为驱动的测试行为,转化为机器执行的一种过程。

    自动化测试有:测试自动化、性能测试自动化、安全测试自动化。(一般情况下,我们说的自动化是指功能测试的自动化)
    自动化测试按照测试对象来分,还可以分为接口测试、UI测试等。接口测试的产出投入比要比UI测试高。

 

  7.其他

  • 随机测试根据测试者的经验对软件进行功能和性能抽查;

  • 冒烟测试:对象是每一个新编译的需要正式测试的软件版本,确认基本功能正常,可继续后续正式测试工作;

  • 回归测试:指错误被修正后或软件功能、环境发生变化后进行的重新测试,确认修改部分不会对其他功能造成影响。

 


作者:打不完哈欠的can,发布于:2020/07/27
原文:https://www.cnblogs.com/chengcan/p/13382601.html