实验06 持续集成测试

news2024/11/24 13:51:49

知识点

集成测试定义

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

集成测试关注的问题

  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://www.coloradmin.cn/o/1928888.html

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

相关文章

[iOS]内存分区

[iOS]内存分区 文章目录 [iOS]内存分区五大分区栈区堆区全局区常量区代码区验证内存使用注意事项总结 函数栈堆栈溢出栈的作用 参考博客 在iOS中&#xff0c;内存主要分为栈区、堆区、全局区、常量区、代码区五大区域 还记得OC是C的超类 所以C的内存分区也是一样的 iOS系统中&a…

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑频率不同响应阶段的惯量评估优化策略》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

嵌入式人工智能(6-树莓派4B按键输入控制LED)

1、按键 按键的原理都是一样&#xff0c;通过按键开关的按下导通&#xff0c;抬起断开的情况&#xff0c;GPIO引脚来检测其是否有电流流入。GPIO有input()方法&#xff0c;对于GPIO引脚检测电流&#xff0c;不能让其引脚悬空&#xff0c;否则引脚会受周边环境电磁干扰产生微弱…

《昇思25天学习打卡营第15天|计算机视觉-SSD目标检测》

FCN图像语义分割&ResNet50迁移学习&ResNet50图像分类&ShuffleNet图像分类&SSD目标检测 SSD目标检测 模型简介 SSD&#xff0c;全称Single Shot MultiBox Detector&#xff0c;是Wei Liu在ECCV 2016上提出的一种目标检测算法。使用Nvidia Titan X在VOC 2007测…

重塑水利未来:智慧水利解决方案的探索与实践,从物联网、大数据到人工智能,科技如何赋能水利行业,实现智慧化管理与决策

本文关键词&#xff1a;智慧水利、智慧水利工程、智慧水利发展前景、智慧水利技术、智慧水利信息化系统、智慧水利解决方案、数字水利和智慧水利、数字水利工程、数字水利建设、数字水利概念、人水和协、智慧水库、智慧水库管理平台、智慧水库建设方案、智慧水库解决方案、智慧…

达梦数据库的系统视图v$systeminfo

达梦数据库的系统视图v$systeminfo 在达梦数据库&#xff08;DM Database&#xff09;中&#xff0c;V$SYSTEMINFO 是一个系统视图&#xff0c;用于显示数据库实例的系统信息。这个视图提供了关于数据库实例的运行状态、配置参数、资源使用情况等重要信息&#xff0c;对于数据…

linux端口,进程管理,主机状态监控

linux端口&#xff0c;进程管理&#xff0c;主机状态监控 一、端口 1、什么是端口?2、端口的划分2、查看端口占用 二、进程 1、什么是进程2、查看进程信息2、关闭进程 三、主机状态监控 1、查看资源占用2、磁盘信息监控3、查看网络情况 四、命令总结 一、端口 1、什么是端口…

【089】基于SpringBoot+Vue+小程序实现的在线点餐小程序

系统介绍 基于SpringBootVue小程序实现的在线点餐小程序 基于SpringBootVue小程序实现的在线点餐小程序采用前后端分离的架构方式&#xff0c;系统分为管理员、员工、用户三种角色&#xff0c;实现了用户点餐、订单生成、模拟支付、菜单管理、账号管理、角色管理、分类管理、菜…

什么是边缘计算技术和边缘计算平台?

随着物联网、5G技术和人工智能的不断发展&#xff0c;数据的规模和种类也在快速增加。在这种背景下&#xff0c;传统的云计算模式面临着一些问题&#xff0c;例如延迟高、网络拥塞等&#xff0c;这些问题限制了数据的处理速度和效率&#xff0c;降低了用户的使用体验。为了解决…

GraphRAG→必然桥梁or过渡折中?

GraphRAG→是未来符号与连接主义的必然桥梁 or AGI深度推理的过渡折中&#xff1f; 随着微软前几天发布开源的GraphRAG&#xff0c;进而又带动了领域GenAI的热潮&#xff0c;借着这股热潮&#xff0c;结合之前自己对LLM复杂推理的思考说一下自己关于LLM与泛RAG的理解延展&#…

DDei在线设计器-数据格式说明

数据格式说明 DDei的所有设计数据都以文件为单位保存在一个JSON对象中。JSON对象包含了全量的页签、舞台、图层、控件的位置以及属性信息。开发人员可以存储这个JSON到服务端数据库中&#xff0c;从而轻易的实现保存功能&#xff1b;也解析这个JSON&#xff0c;将其转换成自己业…

莆田外贸建站公司推荐的商会wordpress主题

垂钓用品wordpress外贸模板 钓鱼佬们用的东西鱼饵、鱼竿、支架、钓箱、渔线轮、鱼竿等垂钓用品wordpress外贸模板。 https://www.jianzhanpress.com/?p3973 户外灯具wordpress外贸站模板 米泡、路灯、地脚地砖灯、草坪灯、太阳能灯、投光灯户外灯具wordpress外贸站模板。 …

GNSS技术干货(34):天灵灵 地灵灵 不如C/N0灵

在GPS接收机研发测试过程中&#xff0c;作为硬件射频工程师最关心的测试项目是传导载噪比C/N0&#xff08;carrier-to-noise ratio&#xff09;值&#xff0c;因为它是非常重要的参数指标&#xff0c;可以评估接收机端收到的卫星信号强度&#xff0c;反映硬件射频链路的质量&am…

C语言中的指针:掌握内存的钥匙

C语言中的指针&#xff1a;掌握内存的钥匙 引言 C语言是一种结构化编程语言&#xff0c;它提供了对硬件底层的直接访问&#xff0c;其中最强大的特性之一就是指针。指针允许程序员直接操作内存地址&#xff0c;这对于理解程序的内部工作原理以及优化代码性能至关重要。本文将深…

python如何判断变量是否可迭代

python如何判断变量是否可迭代&#xff1f;方法如下&#xff1a; 方法一&#xff1a; 适用于python2和python3 >>> from collections import Iterable >>> isinstance("str", Iterable) True 方法二&#xff1a; 适用于python3 s "hello …

『 Linux 』命名管道

文章目录 命名管道与匿名管道命名管道特点命名管道的理解命名管道实现两个毫无关联的进程间通信 命名管道与匿名管道 命名管道是管道的一种,数据流向为单向故被称为管道; 与匿名管道相同属于一种内存级文件; 区别如下: 名字 匿名管道 没有名字,只存在于内存当中(类似内核缓冲…

【Visual Studio】Visual Studio使用技巧及报错解决合集

目录 目录 一.概述 二.Visual Studio报错问题及解决方法 三.Visual Studio操作过程中遇到的问题及解决方法 四.Visual Studio编译优化选项 五.Visual Studio快捷键 一.概述 持续更新Visual Studio报错及解决方法&#xff0c;包括Visual Studio报错问题及解决方法、Visua…

mac电脑pdf合并,macpdf合并成一个pdf

在数字化办公和学习的今天&#xff0c;pdf文件因其跨平台兼容性强、格式稳定而成为了最受欢迎的文档格式之一。但随之而来的问题也接踵而至&#xff0c;如何将多个pdf文件合并为一个&#xff1f;这不仅关系到文档的整洁性&#xff0c;更是时间管理的重要环节。今天&#xff0c;…

STM32+TMC2209控制步进电机正反转。

STM32F103ZET6TMC2209控制步进电机正反转 1. 步进电机介绍2 驱动器TMC2209介绍2.1 引脚图及其功能2.2 细分介绍2.3 TMC控制驱动器接法 3 控制器介绍3.1 确定控制引脚3.2 UBEMX配置3.2.1 GPIO配置3.2.2 NVIC配置3.2.3 RCC配置3.2.4 SYS配置3.2.5 USRAT2配置&#xff08;PS:没用上…

【JS红宝书学习笔记】第25章 客户端存储

第25章 客户端存储 Cookie HTTP是无状态的&#xff0c;也就是说&#xff0c;你这次访问服务器&#xff0c;关闭后再次访问服务器&#xff0c;服务器是意识不到又是你来访问的。 登录时&#xff0c;浏览器需要帮我们在每一次请求里加入用户名和密码&#xff0c;这样才能做到保…