当前位置: 首页 > news >正文

软件工程与计算总结(十九)软件测试

目录

​编辑

一.引言

1.验证与确认

2.目标

3.测试用例

4.桩与驱动

5.缺陷、错误与失败

二.测试层次

1.测试层次的划分

2.单元测试

3.集成测试

4.系统测试

三.测试技术

1.测试用例的选择

2.随机测试

3.基于规格的技术(黑盒测试)

4.基于代码的技术(白盒测试)

5.特定测试技术

四.测试活动

五.测试度量

​编辑


 

一.引言

软件设计的顺序是自顶向下,软件测试的顺序是自底向上~

1.验证与确认

软件测试是软件质量保障的方法之一:

  • 验证:检查开发者是否正确地使用技术建立系统,确保系统能够在预期的环境中按照技术要求正确地运行~
  • 确认:检查开发者是否反建立了正确的系统,确保最终产品符合规格

软件开发的验证与确认主要有两种手段:静态测试与动态设计~

  • 评审是最为常用的静态分析手段
  • 动态测试就是软件测试,它在软件能够运行时,考察软件运行时的表现,完成验证与确认任务的方法

2.目标

  • 向开发者和用户展示软件满足了需求,表明软件产品是一个合格的产品
  • 找出软件中的缺陷和不足

一个关于软测的定义:为评价与改进产品质量、标识产品缺陷和问题而进行的活动

  • 为目标1进行的测试是有效性测试,它使用用户希望的方式来测试软件系统,发现系统的缺陷并进行改进
  • 为目标2进行的测试是缺陷测试,它在软件测试中具有更大的重要性,目标是发现缺陷,只有发现了缺陷的测试才是成功的测试~

发现尽可能多的缺陷的测试才是成功的,这一点是毋庸置疑的~

3.测试用例

测试用例是一组输入数据与预期结果的组合

  • 输入数据:外界接受的数据or系统内部的状态数据
  • 输出结果:数据输出or运行表现

4.桩与驱动

  • 桩程序:被测试部件的交互环境,它扮演被测试部件需要调用的其他系统部件~(只是规格上与其他部件相同,内部实现代码要简单的多)
  • 驱动程序:负责创建被测试部件的执行环境,并驱动和监控被测试部件执行测试用例的过程,判定测试用例的执行结果~

5.缺陷、错误与失败

  • 缺陷:系统代码中存在的不正确的地方
  • 错误:如果系统执行到缺陷,就可能使得执行结果不符合预期且无法预测,表现出来的不稳定状态就称为错误。
  • 失败:错误的发生会使得软件的功能失效

(软件测试的目标是发现缺陷,但实际上发现的是失败~只有对失败进行分析调试才能发现错误并加以修复)

二.测试层次

1.测试层次的划分

通过测试对象测试目标两个维度来划分测试的层次~

2.单元测试

又称为模块测试,是对程序单元(软件设计的最小单位)进行正确性检验的测试工作

  • 在过程化编程中,一个单元就是一个函数与过程
  • 在面向对象编程中,一个单元就是类的一个方法

测试一个程序单元时,需要构建桩程序和驱动程序,将其与其他程序单元隔离~

3.集成测试

(主要采用白盒+黑盒,是为了检验系统功能)

又被称为组装测试,即对程序模块一次性或采用增量方式组织起来,对系统的接口进行正确性检验的测试工作——通常在单元测试之后,系统测试之前进行~

集成测试非常依赖桩程序和驱动程序,常见的集成策略包括大爆炸集成和增量集成,增量集成有自顶向下、自底向上、持续集成等多种方式~

4.系统测试

前两者更加关注技术上的正确性,重在发现设计缺陷和代码缺陷,系统测试更关注不符合需求的缺陷和需求自身的内在缺陷~

系统测试关注整个系统的行为,所以不依赖于桩程序and驱动程序~

三.测试技术

1.测试用例的选择

测试是有代价的(人力、时间、金钱成本),目标是发现尽可能多的缺陷,并不绝对要求发现所有缺陷~

软件测试人员要仔细选择测试用例,在代价尽可能小的情况下发现足够多的缺陷~

2.随机测试

基于软件工程师直觉和经验的技术,也是实践中最为广泛使用的测试技术~

但并不是最优的测试技术,有时可以发现其他技术不能发现的缺陷,但其测试到缺陷的几率却比其他技术要小的多~

3.基于规格的技术(黑盒测试)

把测试对象看做一个黑盒子,完全基于输入和输出数据来判定测试对象的正确性——使用测试对象的规格说明来设计输入和输出数据~

等价类划分:

把程序的输入域划分为若干部分,然后从每一个部分选取少数代表性的个体作为测试用例

  • 有效等价类:对于程序的规格说明来说是合理的、有意义的数据输入构成的集合
  • 无效等价类:与有效等价类的定义正好相反

边界值分析:对前者划分方法的补充——因为错误往往发生在边界而非内部~

决策表:为复杂逻辑判断设计测试用例的技术,决策表由条件声明、行动声明、规划选项和行动选项四个象限组成的表格

状态转换:专门针对复杂测试对象的测试技术,该类复杂测试对象输入数据反应是多样的,还需要依赖自身的状态才能决定,如果测试对象的状态不同,那么即使输入数据是一样的,输出也会有所不同~

4.基于代码的技术(白盒测试)

与黑盒不同,将测试对象看做透明的,不关心测试对象的规格,而根据对象内部的程序结构来设计测试用例进行测试工作~

语句覆盖:保证每一行代码都至少执行一次

(较弱的代码覆盖)

条件覆盖:每个判断结果至少都满足一次

(仍不能保证所有路径的覆盖)

路径覆盖:每条独立路径都至少执行一次

5.特定测试技术

  • 面向对象的测试
  • GUI测试
  • 基于web的测试
  • 基于组件的测试
  • 并发程序的测试
  • 协议遵从性测试
  • 实时系统测试

四.测试活动

  • 测试计划:按照工程的做法,在开始具体的软件测试活动之前,必须明确工作范围等计划
  • 测试设计:进一步明确需要被测试的对象,为被测对象设计用例集合
  • 测试执行:要严格按照测试用例来完成,并记录相应的测试结果
  • 测试评价:执行结束后,必须评价测试结果,以确定测试是否成功

五.测试度量

相关文章:

软件工程与计算总结(十九)软件测试

目录 ​编辑 一.引言 1.验证与确认 2.目标 3.测试用例 4.桩与驱动 5.缺陷、错误与失败 二.测试层次 1.测试层次的划分 2.单元测试 3.集成测试 4.系统测试 三.测试技术 1.测试用例的选择 2.随机测试 3.基于规格的技术(黑盒测试) 4.基于代…...

Tomcat设置IP黑名单和白名单server.xml

方式一&#xff1a; -- 只允许192.168.1.2和192.168.2.3 <Context path"" docBase"xxxAdmin" debug"0" reloadable"true" ><Valve className"org.apache.catalina.valves.RemoteAddrValve" allow"192.168.1.…...

【AI视野·今日NLP 自然语言处理论文速览 第五十五期】Mon, 16 Oct 2023

AI视野今日CS.NLP 自然语言处理论文速览 Mon, 16 Oct 2023 Totally 53 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers PromptRE: Weakly-Supervised Document-Level Relation Extraction via Prompting-Based Data Programming Au…...

k8s crd设置额外header

可以通过设置crd.spec.additionalPrinterColumns来实现&#xff1a; apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata:name: crontabs.stable.example.com spec:group: stable.example.comscope: Namespacednames:plural: crontabssingular: cr…...

电容笔好还是触屏笔好?便宜又好用的电容笔推荐

目前有哪些电容笔值得买&#xff1f;相比于之前的电容笔&#xff0c;现在的电容笔增加了很多新的特性功能&#xff0c;例如防误触、避免手指不小心触碰屏幕造成书写错误、笔画粗细可以自由调整等。苹果最初的Pencil现在售价一直高居不下。所以&#xff0c;如果你没有过多的预算…...

列表作为条件查询的参数

<if test"secucodeList ! null and secucodeList.size() > 0">...

elementui中el-select和el-tree实现下拉树形多选功能

实现效果如下&#xff1a; 代码如下&#xff1a; html中 <el-col :lg"12"><el-form-item label"可用单位" prop"useOrgListTemp"><div class"departAll"><el-selectref"selectTree"v-model"valu…...

手机怎么监控电脑?

随着企业对电脑监控需求的增加&#xff0c;越来越多的管理者意识到使用电脑监控电脑的不便性&#xff0c;一旦外出就无法实时查看监控。其实可以用手机实现监控电脑的需求&#xff0c;只需在被监控端安装电脑监控软件后&#xff0c;将电脑设备和员工信息进行绑定&#xff0c;使…...

职场题:有一件特别紧急的事,群众要办理,且联系不上领导,你怎么办?(2)

接1所写 如果无法联系上领导且有一项特别紧急的事情需要办理&#xff0c;以下是进一步的建议&#xff1a; 11. 尝试其他沟通渠道&#xff1a;除了直接联系领导外&#xff0c;尝试通过其他沟通渠道与领导取得联系。这可能包括电子邮件、即时通讯工具或其他内部通信平台。确保详…...

《深入理解java虚拟机 第三版》学习笔记一

第 2 章 Java 内存区域与内存溢出异常 2.2 运行时数据区域 Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途&#xff0c;以及创建和销毁的时间&#xff0c;有的区域随着虚拟机进程的启动而一直存在&#xff0c;有些…...

webGL编程指南 第三章 旋转三角形

我会持续更新关于wegl的编程指南中的代码。 当前的代码不会使用书中的缩写&#xff0c;每一步都是会展开写。希望能给后来学习的一些帮助 git代码地址 接着 上一节 接着做平移的转化。本案例是三角形的旋转 <!DOCTYPE html> <html lang"en"><head…...

网络安全是什么?一文认识网络安全

一、网络安全 1.概念 网络安全从其本质上讲就是网络上的信息安全&#xff0c;指网络系统的硬件、软件及数据受到保护。不遭受破坏、更改、泄露&#xff0c;系统可靠正常地运行&#xff0c;网络服务不中断。 &#xff08;1&#xff09;基本特征 网络安全根据其本质的界定&#…...

LeetCode 2897. 对数组执行操作使平方和最大【贪心,位运算,哈希表】2301

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…...

linux加密安全和时间同步

sudo实现授权 添加 vim /etc/sudoers luo ALL(root) /usr/bin/mount /deb/cdrom /mnt/ test ALL(root:ALL) ALL 在所有主机上 提权为root用户&#xff0c; 可以执行所有命令 户"test"被授权以"root"用户身份在任意主机上执行任意命令 切换luo用户使用 su…...

在Go中处理异常

引言 程序遇到的错误大致分为两类:程序员预料到的错误和程序员没有预料到的错误。我们在前两篇关于[错误处理]的文章中介绍的error接口主要处理我们在编写Go程序时预期的错误。error接口甚至允许我们承认函数调用发生错误的罕见可能性&#xff0c;因此我们可以在这些情况下进行…...

rust 全局变量

文章目录 编译期初始化静态常量静态变量原子类型 运行期初始化lazy_staticBox::leak从函数中返回全局变量 标准库中的 OnceCell 编译期初始化 静态常量 const MAX_ID: usize usize::MAX / 2; fn main() {println!("用户ID允许的最大值是{}",MAX_ID); }关键字是co…...

使用Python的qrcode库生成二维码

使用Python的qrcode库生成二维码 此二维码直接跳转对应的网址。 1、首先安装qrcode包 pip install qrcode2、运行代码 import qrcode# 需要跳转的URL url "https://blog.csdn.net/weixin_45092662?typeblog" img qrcode.make(url) img.save("qrcode.png&…...

MSQL系列(四) Mysql实战-索引分析Explain命令详解

Mysql实战-索引分析Explain命令详解 前面我们讲解了索引的存储结构&#xff0c;我们知道了BTree的索引结构&#xff0c;也了解了索引最左侧匹配原则&#xff0c;到底最左侧匹配原则在我们的项目中有什么用&#xff1f;或者说有什么影响&#xff1f;今天我们来实战操作一下&…...

FPGA软件【紫光】

软件&#xff1a;编程软件。 注册账号需要用到企业邮箱 可以使用【企业微信】的邮箱 注册需要2~3天&#xff0c;会收到激活邮件 授权&#xff1a; 找到笔记本网卡的MAC&#xff0c; 软件授权选择ADS 提交申请后&#xff0c;需要2~3天等待邮件通知。 使用授权&#xff1a; 文…...

饲料化肥经营商城小程序的作用是什么

我国农牧业规模非常高&#xff0c;各种农作物和养殖物种类多&#xff0c;市场呈现大好趋势&#xff0c;随着近些年科学生产养殖逐渐深入到底层&#xff0c;专业的肥料及饲料是不少从业者需要的&#xff0c;无论城市还是农村都有不少经销店。 但在实际经营中&#xff0c;经营商…...

前端框架选择指南:别再盲目跟风了!

前端框架选择指南&#xff1a;别再盲目跟风了&#xff01; 毒舌时刻 前端框架&#xff1f;听起来就像是前端工程师为了显得自己很专业而特意搞的一套复杂流程。你以为随便选个框架就能解决所有问题&#xff1f;别做梦了&#xff01;到时候你会发现&#xff0c;框架的坑比你想象…...

电子电路实战:PWM转DAC的滤波参数优化策略

1. PWM转DAC的基础原理 PWM&#xff08;脉冲宽度调制&#xff09;转DAC&#xff08;数模转换&#xff09;是嵌入式系统中常见的低成本解决方案。简单来说&#xff0c;就是通过调节数字信号的占空比来模拟不同的电压值。比如一个3.3V的PWM信号&#xff0c;50%占空比就相当于1.65…...

如何快速打造高效办公界面:Office功能区的终极定制指南

如何快速打造高效办公界面&#xff1a;Office功能区的终极定制指南 【免费下载链接】office-custom-ui-editor 项目地址: https://gitcode.com/gh_mirrors/of/office-custom-ui-editor Office Custom UI Editor 是一款由微软官方开源的强大工具&#xff0c;让您无需编写…...

N_m3u8DL-RE:突破流媒体下载限制的全场景解决方案 - 开发者与内容创作者的高效工具

N_m3u8DL-RE&#xff1a;突破流媒体下载限制的全场景解决方案 - 开发者与内容创作者的高效工具 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_…...

4个维度解析YetAnotherKeyDisplayer:开源实时按键可视化工具全指南

4个维度解析YetAnotherKeyDisplayer&#xff1a;开源实时按键可视化工具全指南 【免费下载链接】YetAnotherKeyDisplayer The application for displaying pressed keys of the keyboard 项目地址: https://gitcode.com/gh_mirrors/ye/YetAnotherKeyDisplayer YetAnothe…...

JAVA重点基础、进阶知识及易错点总结(13)File 类 + 路径操作

&#x1f680; Java 巩固进阶 第13天 主题&#xff1a;File 类 路径操作 —— IO 体系的第一块基石&#x1f4c5; 进度概览&#xff1a;从今天起&#xff0c;我们正式进入 Java IO 流体系。第一站&#xff1a;java.io.File。 &#x1f4a1; 核心价值&#xff1a; 文件操作基石…...

Serverless时代Java开发者必学的3种函数封装范式:POJO/Function/Consumer,第2种正在被淘汰!

第一章&#xff1a;Serverless时代Java函数计算的演进与定位Serverless 架构正深刻重塑 Java 应用的部署范式。传统 Java 应用依赖长生命周期的 JVM 进程与复杂中间件栈&#xff0c;而函数计算&#xff08;Function-as-a-Service, FaaS&#xff09;将执行单元收敛为无状态、事件…...

[Python3高阶编程] - 横跨同步异步的利器: asgiref.sync

一、asgiref.sync 是什么&#xff1f;asgiref.sync 是 ASGI&#xff08;Asynchronous Server Gateway Interface&#xff09;参考实现库 asgiref 中的核心子模块&#xff0c;主要用于安全地桥接同步代码与异步代码。&#x1f4cc; 一句话总结&#xff1a; 它让你在异步环境中调…...

Ostrakon-VL-8B辅助作业批改实战:识别手写公式与图表

Ostrakon-VL-8B辅助作业批改实战&#xff1a;识别手写公式与图表 每次批改理科作业&#xff0c;是不是都感觉眼睛快看花了&#xff1f;特别是面对几十份甚至上百份的手写作业&#xff0c;那些密密麻麻的公式、歪歪扭扭的电路图&#xff0c;还有各式各样的化学符号&#xff0c;…...

别再浪费手机性能了!Blackmagic Camera 搭配 LUT 滤镜包,解锁夜景和人物拍摄的隐藏技巧

Blackmagic Camera 与 LUT 滤镜包&#xff1a;解锁手机摄影的隐藏潜力 手机摄影早已不再是简单的记录工具&#xff0c;而是可以创作出专业级影像的利器。对于追求画质的摄影爱好者和小型工作室来说&#xff0c;Blackmagic Camera 这款专业级拍摄应用配合精心调校的 LUT 滤镜包&…...