测试-黑盒、白盒-集成-系统

本文深入讲解软件测试的各类方法,包括白盒、黑盒、单元、集成、系统和验收测试。探讨测试的目的、原则和常见错误类型,以及如何设计有效的测试用例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

测试

黑盒、白盒、单元测试、集成测试、系统测试、验收测试

开发人员:黑盒、白盒、单元
测试人员:黑盒、集成、系统
用户: 验收测试

  • 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。
  • 集成测试:测试模块之间的接口,测试重要业务功能。各模块联调。最简单的形式:把单元测试过的多个单元组合成一个组件,测试他们之间的接口。
  • 系统测试:站在用户的角度,模拟真实环境包括软件硬件外设网络等,是否符合需求。有问题提出解决方案,没有问题可以想出优化方案。测试后需要交付测试报告,说明测试数据、用例、结果。
    • 包含:验证性测试即验证前两个阶段的测试。功能性测试。健壮性。安全性。可维护性。各种性能参数的测试。

白盒测试

白盒测试:也称为结构测试、逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。是根据程序的控制结构设计测试用例。

主要用于

软件或程序验证。

特点

检查程序内部逻辑结构,对所有逻辑路径进行测试,是一种穷举路径的测试方法。
但即使每条路径都测试过了,仍然可能存在错误。

因为:

  • 穷举路径测试无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序。
  • 穷举路径测试不可能查出程序因为遗漏路径而错误。
  • 无法发现 与数据相关的错误

为了达到测试目的,做白盒测试遵循的原则

  • 保证一个模块中的所有独立路径至少被测试一次
  • 所有逻辑值均需测试 true/false 两种情况
  • 检查程序的内部数据结构,保证其结构的有效性
  • 在上下边界及可操作性范围内,运行所有循环
  • 白盒测试主要是检查程序的内部结构、逻辑、循环和路径

主要考虑:
分支、循环、边界条件

1. 测试覆盖率
  • 测试覆盖率:用于确认测试所执行到的覆盖项的百分比。其中的覆盖项是指作为测试基础的一个入口或属性,比如语句、分支、条件等。
  • 测试覆盖率可以表示出测试的充分性,在测试分析报告中可以作为量化指标的依据,越高越好。但是这只是一种手段,不是目标。
  • 测试覆盖率包含:功能点覆盖率和结构覆盖率
    • 功能点覆盖率:用于表示软件已经实现的功能与软件需求实现的功能之间的比例。
    • 结构覆盖率: 语句覆盖率、分支覆盖率、循环覆盖率、路径覆盖率等等。

Q: 如何保证项目完成了,或代码质量是好的?
A:单元测试、、、

2. 逻辑覆盖法

根据覆盖目标的不同,逻辑覆盖又可分为语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖。

  • 语句覆盖:选择足够多的的测试用例,是的程序中的每个可执行语句至少执行一次
  • 判定覆盖(分支覆盖):通过执行足够多的的测试用例,是的每个分支 true/false 都经历一次
  • 条件覆盖:设计足够多的的测试用例,使得程序中每个判定包含的每个条件的可能取值(true/false) 都至少满足一次。conditions中会有比如 a>10 && b<100 含有两个condition,那么每个condition都要覆盖。
    • :当整个流程里有多个分支,每个分支有多个条件,那么整体测试的用例而言 会有 2x2x …关系。
  • 组合覆盖:通过执行足够多的的测试用例,是的程序中每个判定的所有可能的条件取值组合都至少出现一次。
    • 满足组合覆盖的测试用例一定满足判定覆盖、条件覆盖和 判定/条件覆盖。

在这里插入图片描述

黑盒测试

被称为功能测试数据驱动测试
在测试时,把被测程序视为一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下进行。

目的

在已知软件产品所应具有的功能的基础上,进行:

  • 检查程序功能是否按照需求规格说明书的规定正常使用,测试各个功能是否遗漏,检查性能等特性要求是否满足。
  • 检查人机交互是否错误,检测数据结构或外部数据库访问是否错误,程序是否能适当地接收输入数据而产生正确的输出结果,并保持外部信息(如数据库和文件)的完整性。
  • 检查程序初始化终止方面的错误。

黑盒测试可用于发现以下类型的错误:

  • 不正确或遗漏的功能
  • 接口错误,如输入、输出参数的个数、类型等
  • 数据结构错误或外部信息(如外部数据库)访问错误
  • 性能错误
  • 初始化、终止错误

黑盒测试法的概念

  • 黑盒测试是依据软件的需求规约,检查程序的功能是否符合需求制约的要求
  • 主要的黑盒测试方法:设计测试用例的方法
    • 等价类划分
    • 边界值分析

案例:

  • 输入3个整数a,b,c。是否能构成三角形,那种三角形。

要求:
条件1:1<= a <= 100
条件2:1<= b <= 100
条件3:1<= c <= 100
条件4:a < b+c
条件5:b <a+c
条件6:c< a+b

实施:

  1. 等价类的做法:
    比如:a 的取值分成3类, 1,100分界。然后,在每个类中随便取个值 来代表这个等价类。

  2. 边界值方法,来设计测试用例
    程序出错高频:边界,比如for循环边界,数组index越界

参考

https://www.bilibili.com/video/BV1GE411T7xv?from=search&seid=14585900912808728980

- 黑盒测试的目的是验证软件系统的功能是否按照规格说明书的要求正常工作,而不需要了解系统内部的实现细节。测试人员根据输入和预期输出来设计测试用例,然后执行这些测试用例,验证系统是否能够正确地处理输入并产生正确的输出。 - 白盒测试的目的是验证软件系统的内部逻辑是否正确。测试人员需要了解系统的内部实现细节,通过检查代码、执行路径和数据流等来设计测试用例,然后执行这些测试用例,验证系统是否能够正确地执行各种情况下的代码路径。 - 沙箱测试的目的是测试软件系统在隔离环境中的行为。测试人员在隔离的环境中运行系统,以确保系统不会对外部系统或环境产生负面影响。 - 单元测试的目的是验证系统中的单个模块是否按照设计要求正常工作。测试人员编写测试用例来验证模块的输入和输出,以确保模块能够正确地处理各种情况下的数据和逻辑。 - 集成测试的目的是验证系统中各个子系统之间的交互是否按照设计要求正常工作。测试人员使用模拟数据和环境来测试系统的各个部分,以确保它们能够协同工作。 - 用户验收测试的目的是验证系统是否满足用户的需求和期望。测试人员使用真实数据和环境来测试系统,并且模拟用户的使用情况,以确保系统能够满足用户的需求,并且易于使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值