测试体系介绍

一、测试体系介绍(L1)

1.1 软件测试基础概念

概念: 通过手工或者工具对 “被测对象”进行测试 ,验证实际结果与预期结果之间是否存在差异。
作用: 通过测试工作可以发现并修复软件当中存在的缺陷,从而提高用户对产品的使用信心 ;测试可以降低同类型产品开发遇到问题的风险。
缺陷: 软件缺陷被测试工程师和开发工程师们称作 bug;软件缺陷会导致软件不能正常运行,它的存在会在一定程度上导致软件不能满足用户的需求,甚至有可能破坏或泄漏用户的重要数据。
测试原则:

  • 测试显示缺陷的存在
  • 穷尽测试是不可能的
  • 测试尽早介入
  • 缺陷集群性(2/8原则)
  • 杀虫剂悖论
  • 测试活动依赖于测试内容
  • 没有错误是好是谬论

测试对象:

  • 需求分析阶段:需求文档、接口文档
  • 编码实现阶段:源代码
  • 系统功能使用:软件程序
    测试用例: 为特定的目的而设计的一组测试输入、执行步骤和预期的结果,以便测试产品否满足某个特定需求的文档。

1.2 软件开发流程

概念: 软件是与计算机系统操作有关的计算机程序、可能有的文档及数据。
生命周期:

  • 定义问题:搜集需求、可行性研究、需求分析;
  • 软件开发:概要设计、详细设计、编码、测试;
  • 软件维护:纠错性维护、改进性维护、报废;

软件开发流程: 为了使软件开发的工作系统化并且可控制;需要采用合适的软件开发模型和开发过程管理所有的活动。
开发模型: 瀑布模型敏捷开发模型Scrum敏捷开发模型XPDevOps
持续集成与持续交付(待更新…)

1.3 测试流程体系

1.4 测试技术体系

软件测试分类
image
黑盒测试: 又称数据驱动测试。完全不考虑程序内部结构和内部特性。注重于测试软件的功能需求。只关心软件的输入数据和输出数据。
白盒测试: 研究产品内部的源代码和程序结构。单元测试就是白盒测试的一种。
自动化分层测试体系: 70% 单元测试 + 20% 服务测试 + 10% 用户界面测试。
单元测试: Java: JUnit、TestNG; Python: unittest、pytest;
接口测试:

  • 接口全称 Application Programming Interface,一般称作 API。
  • 接口测试是针对软件对外提供服务的接口的输入输出进行测试。
    • 检查接口参数传递的正确性。
    • 接口功能实现的正确性。
    • 输出结果的正确性。
    • 对各种异常情况的容错处理的完整性和合理性。

UI测试:

  • 手工方法:人工查看、操作。
  • 自动化方法:Web:Selenium、App:Appium