实验06 持续集成测试

知识点

集成测试定义

  • 集成测试是将多个单元组合起来形成更大的单元,并测试它们是否能协同工作形成子系统。
  • 一种旨在暴露单元接口之间、组件/系统间交互或协同工作时所存在的缺陷的测试。

集成测试关注的问题

  1. 模块间数据传递是否正确。
  2. 一个模块的功能是否影响另一个模块。
  3. 全局数据结构是否有问题,是否会被异常修改。
  4. 块组合起来的功能是否满足要求。
  5. 集成后模块的累积误差是否会扩大。

典型集成 测试对象

  • 组件与组件是否能协同工作形成子系统
  • 全局数据结构
  • 组件之间的数据交换
  • 子系统内组件与组件的接口、子系统与外界的接口
  • .系统配置和配置数据

集成测试工作内容

  • 根据实际情况采用适当的集成测试策略,对系统接口及集成后的功能进行校验。
  • 集成测试主要是对组件之间的接口进行测试,以及测试一个系统内不同部分的相互作用。 

集成测试级别

  • 组件集成测试:测试不同软件组件的相互作用。一般在组件测试之后进行。
  • 系统集成测试:测试不同系统或软硬件间的相互作用。一般在系统测试之后进行。

集成测试的层次

  • 传统软件:模块内集成测试、子系统内集成测试、子系统间集成测试。
  • 面向对象应用系统:类内集成测试、类间集成测试。

集成测试的原则

  1. 所有公共接口必须被测试。
  2. 关键模块必须充分测试。
  3. 按一定层次进行集成测试。
  4. 考虑质量、成本和进度,选择合适的集成测试策略。
  5. 集成测试应尽早开始,基于概要设计。
  6. 测试人员与开发人员应充分沟通模块和接口的划分。
  7. 测试计划中的结束标准满足后,集成测试才能结束。
  8. 接口修改时,相关接口必须进行回归测试。
  9. 根据集成测试计划和方案进行测试。
  10. 项目管理者应保证测试用例经过审核。
  11. 测试执行结果应如实记录。

集成测试策略

  • 自底向上集成测试
  • 三明治集成测试
  • 持续集成测试
  • 大爆炸集成测试:先分别测试每个模块,再把所有模块按设计要求放在一起组成所要的程序,如大棒模式(Big-bang Integration)
  • 自顶向下集成测试

集成测试的辅助模块

  • 驱动模块(Driver):相当于被测模块的主程序。它接收测试数据,把这些数据传送给被测模块,最后输出实测结果。
  • 桩模块(Stub):代替被测模块调用的子模块。桩模块可以做少量的数据操作,不需要把子模块所有功能都带进来,但不允许什么事情也不做。

持续集成

  • 持续集成是软件开发越来越普遍的一种优秀实践,即团队开发成员经常集成他们的工作,通常每次新完成的代码至少集成一次,也就意味着每天可能会发生多次集成。

持续集成的内涵

  • 持续检查、构建、部署、验证/测试、集成环境、报告。

集成测试工具

  • Jenkins:开源软件项目,基于Java开发的一种持续集成/持续发布工具,用于监控持续重复的工作。
  • Travis CI:目前新兴的开源持续集成构建项目。
  • Hudson:一个用Java编写的持续集成工具。
  • GitLab:一个覆盖DevOps生命周期各个阶段的应用程序,使得组织不受工具链的约束,能够并发开展DevOps的工作。
  • buddybuild:将持续集成,持续交付和迭代反馈解决方案结合到一个单一、无缝的平台中。

实验

一 实验目的:

1、了解什么是持续集成环境。

2、理解持续集成测试的工作原理。

3、掌握Jenkins+Git+Maven持续集成部署环境的搭建。

二 实验环境

1、JDK8.0或以上;

2、Maven构建工具;

3、Git代码版本控制工具;

4、Jenkins持续集成工具。

三 实验准备

1、在Gitee注册账号,并创建私有仓库;

git init
git add .
git commit -m "Initial commit"
git remote add origin <Gitee仓库URL>
git push -u origin master

2、已安装Git工具,掌握Git基本操作;

3、在Linux环境下安装Docker;

4、在Linux环境下安装JDK1.8或以上;

5、在Linux环境下安装Maven构建工具;

6、在Linux环境下安装Tomcat服务器软件。

四 实验内容

(一)阅读以下材料,并完成以下内容。

针对网上蛋糕商城平台项目的开发,为了方便对系统的代码管理及后续更新升级的版本控制,使用Git工具进行代码版本控制,并将Gitee作为远程代码仓库。为了后续对系统进行更新发布,还需要搭建持续集成环境,请根据以下要求完成持续集成环境的搭建。

(1)将网上蛋糕商城项目利用GIT,push到Gitee的远程代码仓库上,并将上传成功后的Gitee仓库页面截图。

(2)在Docker容器中安装Jenkins,将Jenkins启动界面截图。

docker pull jenkins/jenkins:lts
docker run --name jenkins -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts

(3)请简述Jenkins的配置,并附上相关配置截图。

   

五 实验总结

(1)谈谈你对持续集成内涵的理解。

持续集成(Continuous Integration,简称CI)是软件开发中的一种实践,旨在通过频繁地将代码变更集成到主分支来提高软件质量和开发效率。以下是对持续集成内涵的几个关键理解:

  1. 自动化构建:持续集成的核心在于自动化,每次代码提交都会触发自动化构建过程,包括编译、测试等步骤。

  2. 早期发现问题:通过频繁集成,可以尽早发现集成过程中的错误和问题,减少后期修复的成本和复杂性。

  3. 持续反馈:开发人员可以快速获得关于代码变更的反馈,包括构建是否成功、自动化测试是否通过等。

  4. 代码质量保证:持续集成通过自动化测试来保证代码质量,确保新提交的代码不会破坏现有的功能。

  5. 版本控制:持续集成通常与版本控制系统(如Git)紧密结合,以追踪每次提交和变更。

  6. 快速迭代:支持敏捷开发中的快速迭代,开发人员可以频繁地提交代码,快速地进行功能验证和集成。

  7. 环境一致性:持续集成确保所有开发人员使用相同的构建和测试环境,减少因环境差异导致的问题。

  8. 部署自动化:除了自动化构建和测试,持续集成还可以包括自动化部署,将代码部署到测试或生产环境。

  9. 持续交付的基础:持续集成是实现持续交付(Continuous Delivery)和持续部署(Continuous Deployment)的基础。

  10. 团队协作:它促进了团队成员之间的协作,因为每个人都可以看到其他人的代码变更和它们对项目的影响。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3250164.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

python如何调用matlab python package库matlab转python安装包调用使用简单示例

说明(废话) 之前没有进行python调用过matlab&#xff0c;前面用matlab engine for python可以通过调用matlab的源码文件的形式可以调用工程&#xff0c;但是这又有一个问题&#xff0c;就是在运行的时候必须提供python和matlab的全部源码 该文章是通过matlab源码转python pack…

uniapp form表单校验

公司的一个老项目&#xff0c;又要重新上架&#xff0c;uniapp一套代码&#xff0c;打包生成iOS端发布到App Store&#xff0c;安卓端发布到腾讯应用宝、OPPO、小米、华为、vivo&#xff0c;安卓各大应用市场上架要求不一样&#xff0c;可真麻烦啊 光一个表单校验&#xff0c;…

C++编程逻辑讲解step by step:使用对话框与控件(1)

对话框是实现人机交互的重要工具&#xff0c;Visual C的对话框类似于VB或Delphi的form&#xff0c;对话框和各种控件的结合使用&#xff0c;可以建立形形色色的功能十分强大的应用程序窗口界面&#xff0c;这就是所谓的对话框编程技术。 应用程序中需要各种各样的对话框&am…

易保全参与起草的两项区块链全国团体标准正式发布

在数字化转型浪潮席卷全球的今天&#xff0c;区块链技术以其去中心化、透明性、不可篡改等独特优势&#xff0c;正逐步成为重塑各行各业信任机制与业务流程的关键力量。 近日&#xff0c;中国通信工业协会正式发布了《区块链服务 基于区块链的去中心化标识符技术要求》与《区块…

IIS安装配置教程图文教程(超详细)

「作者简介」&#xff1a;冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础对安全知识体系进行总结与归纳&#xff0c;著作适用于快速入门的 《网络安全自学教程》&#xff0c;内容涵盖系统安全、信息收集等12个知识域…

2024年中职大数据实验室建设及大数据实训平台整体解决方案

随着大数据时代的到来&#xff0c;中等职业学校&#xff08;中职&#xff09;的大数据实验室建设和实训平台打造成为了培养新一代信息技术人才的重要环节。本方案旨在为2024年中职大数据实验室建设提供一套全面、可行的整体解决方案&#xff0c;旨在培养学生的大数据分析能力、…

Postfix+Dovecot+Roundcube开源邮件系统搭建系列5:Roundcube安装配置(含Nginx+PHP部署配置)

1. PHP安装配置 参考wordpress 6.5.2版本安装记录 中关于PHP安装方法&#xff0c;此处不再详述。 修改php-fpm的启动用户和组为vmail&#xff0c;这一步是和nginx配置相呼应。配置文件/etc/opt/remi/php83/php-fpm.d/www.conf 下面几个配置&#xff1a; user vmail group vm…

【电路笔记】-放大器的输入和输出阻抗

放大器的输入和输出阻抗 文章目录 放大器的输入和输出阻抗1、概述2、输入和输出阻抗的定义3、阻抗的重要性4、阻抗设置5、设置方法6、总结1、概述 从非常简单的角度来看,放大器由一个“盒子”组成,实现输入信号和输出信号之间的放大功能。 输入进入系统和输出离开系统的方式…

数电基础 - 555定时器

目录 一. 简介 二. 工作原理 三. 应用场景 四. 结成施密特触发器 五. 结成单稳态触发器 六. 结成多携振荡器 七. 优缺点 一. 简介 555 定时器是一种集成电路芯片&#xff0c;在电子电路中应用广泛。 它包含两个比较器、一个基本 RS 触发器、一个放电三极管以及分压器等…

Leetcode二分搜索法浅析

文章目录 1.二分搜索法1.1什么是二分搜索法&#xff1f;1.2解法思路 1.二分搜索法 题目原文&#xff1a; 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返…

【BUG】已解决:raise KeyError(key) from err KeyError: (‘name‘, ‘age‘)

已解决&#xff1a;raise KeyError(key) from err KeyError: (‘name‘, ‘age‘) 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xf…

“社群+”生态下的开源AI智能名片源码:驱动商业与社会连接的新引擎

摘要&#xff1a;在“社群”生态日益成为主流趋势的今天&#xff0c;开源AI智能名片源码作为技术创新与社群运营的深度融合体&#xff0c;正逐步展现出其重塑商业格局、深化社会连接的巨大潜力。本文旨在深入探讨开源AI智能名片源码的技术特性、在“社群”生态中的具体应用、对…

VisualRules-Web案例展示(一)

VisualRules单机版以其卓越的功能深受用户喜爱。现在&#xff0c;我们进一步推出了VisualRules-Web在线版本&#xff0c;让您无需安装任何软件&#xff0c;即可在任何浏览器中轻松体验VisualRules的强大功能。无论是数据分析、规则管理还是自动化决策&#xff0c;VisualRules-W…

【D3.js in Action 3 精译_016】第二章 DOM 的操作方法

当前内容所在位置 第一部分 D3.js 基础知识 第一章 D3.js 简介&#xff08;已完结&#xff09; 1.1 何为 D3.js&#xff1f;1.2 D3 生态系统——入门须知1.3 数据可视化最佳实践&#xff08;上&#xff09;1.3 数据可视化最佳实践&#xff08;下&#xff09;1.4 本章小结 第二章…

数据结构(Java):优先级队列(堆)堆的模拟实现

目录 1、优先级队列 1.1 概念 1.2 PriorityQueue底层结构 2、 堆 2.1 堆的概念 2.2 堆的存储结构 3、优先级队列&#xff08;堆&#xff09;的模拟实现 3.1 堆的创建 3.1.1 向下调整算法建完整堆 3.2 堆的插入 3.2.1 向上调整算法 3.3 堆的删除 3.4 堆排序 1、优先…

51单片机嵌入式开发:12、STC89C52RC 红外解码数码管显示

STC89C52RC 红外解码数码管显示 1 概述2 HX1838原理2.1 原理概述2.2 原理概述 3 HX1838代码实现3.1 工程整理3.2 工程代码3.3 演示 4 HX1838总结 1 概述 HX1838是一种常见的红外接收模块&#xff0c;用于接收和解码红外遥控器发送的红外信号。 HX1838具有以下特点和功能&#…

二、BIO、NIO、直接内存与零拷贝

一、网络通信编程基础 1、Socket Socket是应用层与TCP/IP协议族通信的中间软件抽象层&#xff0c;是一组接口&#xff0c;由操作系统提供&#xff1b; Socket将复杂的TCP/IP协议处理和通信缓存管理都隐藏在接口后面&#xff0c;对用户来说就是使用简单的接口进行网络应用编程…

HarmonyOS根据官网写案列~ArkTs从简单地页面开始

Entry Component struct Index {State message: string 快速入门;build() {Column() {Text(this.message).fontSize(24).fontWeight(700).width(100%).textAlign(TextAlign.Start).padding({ left: 16 }).fontFamily(HarmonyHeiTi-Bold).lineHeight(33)Scroll() {Column() {Ba…

使用Docker 实现 MySQL 循环复制(三)

系列文章 使用Docker 实现 MySQL 循环复制&#xff08;一&#xff09; 使用Docker 实现 MySQL 循环复制&#xff08;二&#xff09; 目录 系列文章1. 在主机上安装MySQL客户端2. 配置循环复制拓扑2.1 进入容器2.2 创建复制用户并授予复制权限2.3 复位二进制日志2.4 配置环形复…

信息安全工程师题

物理隔离技术要求两台物理机物理上并不直连&#xff0c;只能进行间接的信息交换。所以防火墙不能实现网络的物理隔离Web应用防火墙可以防止SQL注入、xss攻击、恶意文件上传、远程命令执行、文件包含、恶意扫描拦截等&#xff1b;可以发现并拦截恶意的Web代码&#xff1b;可防止…