知识点
集成测试定义
- 集成测试是将多个单元组合起来形成更大的单元,并测试它们是否能协同工作形成子系统。
- 一种旨在暴露单元接口之间、组件/系统间交互或协同工作时所存在的缺陷的测试。
集成测试关注的问题
- 模块间数据传递是否正确。
- 一个模块的功能是否影响另一个模块。
- 全局数据结构是否有问题,是否会被异常修改。
- 块组合起来的功能是否满足要求。
- 集成后模块的累积误差是否会扩大。
典型集成 测试对象
- 组件与组件是否能协同工作形成子系统
- 全局数据结构
- 组件之间的数据交换
- 子系统内组件与组件的接口、子系统与外界的接口
- .系统配置和配置数据
集成测试工作内容
- 根据实际情况采用适当的集成测试策略,对系统接口及集成后的功能进行校验。
- 集成测试主要是对组件之间的接口进行测试,以及测试一个系统内不同部分的相互作用。
集成测试级别
- 组件集成测试:测试不同软件组件的相互作用。一般在组件测试之后进行。
- 系统集成测试:测试不同系统或软硬件间的相互作用。一般在系统测试之后进行。
集成测试的层次
- 传统软件:模块内集成测试、子系统内集成测试、子系统间集成测试。
- 面向对象应用系统:类内集成测试、类间集成测试。
集成测试的原则
- 所有公共接口必须被测试。
- 关键模块必须充分测试。
- 按一定层次进行集成测试。
- 考虑质量、成本和进度,选择合适的集成测试策略。
- 集成测试应尽早开始,基于概要设计。
- 测试人员与开发人员应充分沟通模块和接口的划分。
- 测试计划中的结束标准满足后,集成测试才能结束。
- 接口修改时,相关接口必须进行回归测试。
- 根据集成测试计划和方案进行测试。
- 项目管理者应保证测试用例经过审核。
- 测试执行结果应如实记录。
集成测试策略
- 自底向上集成测试
- 三明治集成测试
- 持续集成测试
- 大爆炸集成测试:先分别测试每个模块,再把所有模块按设计要求放在一起组成所要的程序,如大棒模式(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)是软件开发中的一种实践,旨在通过频繁地将代码变更集成到主分支来提高软件质量和开发效率。以下是对持续集成内涵的几个关键理解:
-
自动化构建:持续集成的核心在于自动化,每次代码提交都会触发自动化构建过程,包括编译、测试等步骤。
-
早期发现问题:通过频繁集成,可以尽早发现集成过程中的错误和问题,减少后期修复的成本和复杂性。
-
持续反馈:开发人员可以快速获得关于代码变更的反馈,包括构建是否成功、自动化测试是否通过等。
-
代码质量保证:持续集成通过自动化测试来保证代码质量,确保新提交的代码不会破坏现有的功能。
-
版本控制:持续集成通常与版本控制系统(如Git)紧密结合,以追踪每次提交和变更。
-
快速迭代:支持敏捷开发中的快速迭代,开发人员可以频繁地提交代码,快速地进行功能验证和集成。
-
环境一致性:持续集成确保所有开发人员使用相同的构建和测试环境,减少因环境差异导致的问题。
-
部署自动化:除了自动化构建和测试,持续集成还可以包括自动化部署,将代码部署到测试或生产环境。
-
持续交付的基础:持续集成是实现持续交付(Continuous Delivery)和持续部署(Continuous Deployment)的基础。
-
团队协作:它促进了团队成员之间的协作,因为每个人都可以看到其他人的代码变更和它们对项目的影响。