UT-FT-ST测试

article/2025/9/13 16:24:16

单元测试(UT)、功能测试(FT)

目的:1、尽量避免写的代码测试人员频繁的来找你其他地方又出问题了;2、提供的接口不可用;3、一个bug修复了引入了其他的bug或者其他用例变红了;

理解:在实现函数功能的时候编写对应的测试代码,尽量保证”输入-输出”的正确性,在测试用例比较多的时候对系统有强身健体的功效,适用的人群是:非大牛者

优点:

保证函数基本功能

修改代码后批量跑UT保证修改的代码对其他逻辑无影响

修复bugs后增加用例代码,更加强壮

有利于代码重构

可以支持nightly build,检验前天代码质量,检查代码覆盖率

测试代码是函数的说明书,轻文档

减少bugs数量和排查修复时间精力

缺点:

需要花时间去搭建一个测试代码平台和维护

前期需要很多的时间维护UT,FT代码(但后期系统越大作用越明显)

 

UT是单元测试,Unit Test

单元测试任务包括:

1 模块接口测试;
2 模块局部数据结构测试;
3 模块边界条件测试;
4 模块中所有独立执行通路测试;
5 模块的各条错误处理通路测试。;

IT是集成测试,Integration Test

集成测试阶段是以**黑盒法**为主,在自底向上集成的早期,白盒法测试占一定的比例,随着集成测试的不断深入,这种比例在测试过程中将越来越少,渐渐地,黑盒法测试占据主导地位。

ST是系统测试,System Test

从技术角度看,系统测试是整个测试阶段的最后一步,所有的开发和测试在这一点上集中表现为生成一个具有一定功能的软件系统。该阶段主要对系统的准确性及完整性等方面进行测试。主要进行:功能确认测试、运行测试、强度测试、恢复测试、安全性测试等。系统测试的测试人员由测试组成员(或质量保证人员)或测试组成员与用户共同测试。在整个系统开发完成,即将交付用户使用前进行。在这一阶段,完全采用黑盒法对整个系统进行测试。

UAT是验收测试,User Acceptance Test

验收测试是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。

 

 软件开发中的完成测试环境所包括的环节包括:UT、IT、ST、UAT
            UT = Unit Test 单元测试
            IT = System Integration Test 集成测试
           ST = System Test 系统测试
           UAT = User Acceptance Test 用户接受测试(俗称:验收测试)

单元测试
单元测试是对软件组成单元进行测试,目的是检验软件基本组成单元的正确性,测试对象是软件设计的最小单位 - 模块,又称为模块测试
单元测试的实质是代码测代码
测试阶段: 编码后或者编码前(TDD,编码前属于测试驱动开发)
测试对象: 最小模块
测试人员: 白盒测试工程师或开发工程师(这一点很好的体现了代码测代码的实质)
测试依据: 代码和注释 + 详细的设计文档
测试方法: 白盒测试
测试内容: 模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试

 

集成测试
集成测试也称联合测试(联调)、组装测试,将程序模块采用适当的继承策略组装起来,对系统的接口(接口属于白盒)以及组装好的功能(功能属于黑盒)进行正确性检查的测试工作
集成测试的主要目的是检查软件单位之间的接口是否正确
测试阶段: 一般在单元测试以后
测试对象: 模块间的接口(单元测试的接口是指一个模块的接口,这里是强调模块间)
测试人员: 白盒测试工程师或者开发工程师
测试依据: 单元测试的模块 + 概要设计文档
测试方法: 黑盒测试和白盒测试的组合
测试内容: 模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响

 

系统测试
系统测试是将经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效地测试,以发现软件潜在的问题,保证系统的正常运行。
包括对功能、性能、以及软件所运行的软硬件环境进行测试
系统测试包括冒烟测试和回归测试
测试阶段: 集成测试通过之后
测试对象: 整个系统(软、硬件)
测试人员: 黑盒测试工程师
测试依据: 需求规格说明书
测试方法: 黑盒测试
测试内容: 功能、界面、可靠性、易用性、性能、兼容性、安全性等(来自于需求文档,非功能需求)

 

冒烟测试:
冒烟测试是一个准入标准, 是是否接受软件测试的依据
测试对象:每一个新编译的需要正式测试的软件版本
测试目的 : 确认软件基本功能正常,可以继续后续的正式测试工作
执行人员 : 测试人员
开发人员开发完毕后交给测试人员进行测试
测试人员进行冒烟测试,保证基本功能正常,不阻碍后续测试

 

回归测试:
回归测试的测试用例是从功能测试用例中提取的
回归测试是指修改了旧的代码以后,重新进行测试,确认修改没有引入新的错误,或导致其他代码产生错误,
自动回归测试将大幅度降低系统测试、维护升级等阶段的成本(自动化测试)
在整个软件测试系统中,占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试,随着系统的庞大,回归测试的成本也会越来越大,听过选择正确的回归测试策略来改善测试效率和有效性是非常有意义的
回归测试和冒烟测试都可以使用自动化测试
 一般的顺序是: 冒烟测试 -> 系统测试 -> 回归测试

 

验收测试(UAT)
验收测试是部署软件之前最后一个测试操作,他是技术测试的最后一个阶段,也称为交付测试,验收测试的目的是保证软件准备就绪
测试阶段: 系统测试通过之后
测试对象: 整个系统(包括软硬件)
测试人员: 需求方
测试依据: 用户需求、验收标准
测试方法: 黑盒测试
测试内容: 功能、界面、可靠性、易用性、性能、兼容性、安全性等(同系统测试)

 

 测试过程

区别

UT

FT

ST

定义

是对软件基本组成单元(软件设计的最小单位)进行正确性检测,如函数或一个类的方法。

(通常所说的接口联调)是单元测试的逻辑扩展。在单元测试的基础上,将所有模块按照HLD要求组装成为子系统或系统,验证模块间的接口是否正确的

已经集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试

测试依据

1、源程序本身,包括代码和注释

2、LLD

1、单元测试的模块

2、HLD

 

SRS

测试目的

与LLD是否符合

与HLD是否符合

与SRS是否符合

测试方法

属于白盒测试范畴

属于灰盒测试范畴

属于黑盒测试范畴

考察范围

主要测试单元内部的数据结构、逻辑控制、异常处理等

主要测试模块之间的接口和接口数据传递关系,以及模块组合后的整体功能

主要测试整个系统相对于需求的符合度

评估基准

逻辑覆盖率

方法:

TDD(测试驱动开发)

接口覆盖率

方法:

1.每个接口被覆盖的程度

2.每个接口的等价类、边界值被覆盖的程度

测试用例对需求规格的覆盖率

方法:

1.      等价类两两组合

2.      边界值分析

3.      业务流程法

4.      状态迁移法

5.      错误猜测法

6.      输出域覆盖

被测对象

一个或一组函数

子系统、模块间接口

完整的软件系统及系统交互的软硬件平台。

测试时机

编码之后,代码

已经通过编译之后

在单元测试之后

 

集成测试之后

 

测试人员

开发人员或

白盒测试工程师

函数间/模块内集成是开发人员;模块间集成是白盒测试员;子系统间集成是黑盒测试员;

黑盒测试工程师

 

测试

通过标准

1、单元测试用例的执行率为100%,通过率为95%

2、语句的覆盖率达100%

3、分支的覆盖率达85%

 

1、各个单元模块结合到一起能够协同配合,正常运行

2、测试用例的执行率为100%,通过率为95%

 

1、系统功能、性能等满足需求规格说明书中的要求

2、测试用例的执行率为100%,通过率为95%

 

测试策略

控制流测试、数据流测试、排错测试、分域测试等

 

大爆炸、自顶向下测试、自底向上测试、三明治

 

功能测试性能测试、随机测试等

 

 

一.分层测试策略

1.场景搭建难度大、测试代价大的ST,可以使用FT/UT补位;

2. ST用例已比较全面,

3.在团队文化层面鼓励FT/UT的开发,将UT编写列为开发人员的必备技能;

    我们团队ST自动化比例较高,在这种背景下。考虑到在这三类测试中,基于系统和场景的ST的测试结果可信度最高。为确保测试收益,又兼顾效率,团队依然是将主要精力放在增加ST自动化的覆盖率上。同时结合测试前移,在CI里集成冒烟、CRT测试,加快反馈速度;

 

UT/FT、ST测试用例比例示意图

二.用例设计原则

ST:基于系统、业务场景;

UT/FT:基于功能、模块、函数;

三.职责分工

 

四.测试分层的实施流程

 

分层测试的实施流程

五.收益

测试周期缩短;

需求实现的快速反馈;

测试和开发人员的编程能力提升;

六.测试计划

验收测试,集成测试,系统测试,外侧


参考互联网数据


http://chatgpt.dhexx.cn/article/ha0eAsLb.shtml

相关文章

unittest教程__测试报告(6)

用例执行完成后,执行结果默认是输出在屏幕上,其实我们可以把结果输出到一个文件中,形成测试报告。 unittest自带的测试报告是文本形式的,如下代码: import unittestif __name__ __main__:# 识别指定目录下所有以tes…

Pytest 分组测试

有时候需要针对不同的测试环境跑不同的测试用例,如:冒烟测试、sit、uat、prd,所以给自动化测试用例做标记分组是很有必要的,pytest.mark 可以轻松实现这个功能。首先需要注册自定义标记。 通过使用pytest.mark帮助程序&#xff0…

冒烟测试回归测试UATSIT

在软件研发中,冒烟测试其实是微软首先提出来的一个概念,和微软一直提倡的每日build(构建版本)有很密切的联系。具体说,冒烟测试就是在每日build(构建版本)建立后,对系统的基本功能进…

使用GIT提交代码流程

安装步骤:双击Git-2.27.0-64-bit.exe安装 双击TortoiseGit-2.10.0.2-64bit.msi安装 代码提交一般有五个步骤: 1.查看目前代码的修改状态 2.查看代码修改内容 3.暂存需要提交的文件 4.提交已暂存的文件 5.同步到服务器 登陆复制仓库的地址然后复制到下图的Directory…

Git提交代码的流程

企业级项目git远程仓库一般是由master/test/dev三个分支构成,开发人员是在dev上做开发,当需要发布测试环境或者生产环境时管理员会把开发人员提交的代码合并到test或者master上。 开发人员git操作步骤: 1.git clone 把远程dev上的代码克隆到本…

傻瓜式Git提交代码流程【写给初学者】

前言 Git是程序员工作中最最常用的分布式版本控制系统,为的就是解决那种多人协作、多次修改的问题,虽说Git可以应用于各行各业,但是实际上还是程序员用的最多了,应该说是程序员的必备技能之一了,如果你还不会Git&…

vs2019中git提交代码的步骤

目录 前言 一、在vs2019的git界面提交代码 二、使用git命令行提交代码 总结 前言 在vs2019中使用git提交代码的步骤和一些常见问题。 一、在vs2019的git界面提交代码 1.切换到需要提交代码的分支上,首先更新分支。 vs2019工具栏选择Git,点击更新。 2.…

IDEA使用git提交代码

1.将鼠标移动到需要提交的代码文件上;2.右键文件夹,找到Git选项;3.进入选项中的Repository;4.然后点击push就可以将暂存的代码提交到 Git 服务器上。

在Idea用Git提交代码

前提是安装了Git 1、右键选择如下: 2、选择提交前文件、描述提交信息、提交到本地仓库,操作如下: 3、确定是否提交 4、推送远程仓库,右键选择如下:

idea上git提交代码的正确步骤

IDEA中项目集成git提交代码详细步骤 一:pull代码 在提交代码之前,我们必须先对代码就行更新操作,这一步非常重要,如果不进行更新代码操作,当有其他小伙伴有更改的内容已经提交到代码仓库但是我们本地缺没有更新的话&…

idea中使用git提交代码步骤

目录 一、先更新代码二、更新代码后的2种情况三、代码添加到本地仓库四、代码提交到缓冲区五、代码提交到远程git仓库 lz部分截图参考此链接https://blog.csdn.net/u013452337/article/details/79956604 一、先更新代码 1、在提交项目之前必须先对项目进行更新(一定…

Git命令提交代码步骤

1.初始化:创建一个git仓库,创建之后就会在当前目录生成一个.git的文件 git init2.添加文件:把文件添加到缓冲区 git add filename3.添加所有文件到缓冲区(从目前掌握的水平看,和后面加“.”的区别在于,加…

idea git提交代码

0、新工程如何加入git管理 复制.gitignore文件进工程根目录 .gitignore文件内容为: HELP.md target/ !.mvn/wrapper/maven-wrapper.jar !**/src/main/**/target/ !**/src/test/**/target/### STS ### .apt_generated .classpath .factorypath .project .settings…

Git 提交代码步骤总结

第一步:拉取远程代码,更新本地代码,避免覆盖其他人的代码 指令:git pull (拉取远程master分支的代码) 截图: 指令: git pull origin cas (拉取远程cas分支的代码) 截图: 第二步:查看当前项目…

Git 提交代码步骤

第一步: 提交代码第一步:git status 查看当前状态 当你忘记修改了哪些文件的时候可以使用 git status 来查看当前状态, 红色的字体显示的就是你修改的文件。 第二步: 提交代码第二步:git add . 或者 git add xxx 如图1、如…

git提交代码的两种方法步骤

文章目录 一、Git Bash提交方式1.首次提交,先输入github/gitlab等的用户名和邮箱2.将路径改为需要提交的项目路径3.查看上次提交之后的是否有修改文件4.将修改文件存入暂存区5.提交修改文件6.拉取远程与本地合并7.推送本地到远程合并 二、VScode提交方式1.将文件存入…

git实验之代码提交

代码提交 代码提交一般有五个步骤: 1.查看目前代码的修改状态 2.查看代码修改内容 3.暂存需要提交的文件 4.提交已暂存的文件 5.同步到服务器 1. 查看目前代码的修改状态 提交代码之前,首先应该检查目前所做的修改,运行git status命令 a…

Git提交代码步骤

目录 1.Git提交代码步骤 1.1 第1步:同步远程仓库代码:git pull 1.2 第1步:查看当前状态:git status 1.3 第2步:提交代码到本地git缓存区:git add 1.4 第3步:推送代码到本地git库:git…

安卓手机备份_应用备份和还原,一个好用安卓手机工具APP

Hello,大扎好。今天我来和大家分享一个一直以来我在使用的手机工具APP,它的功能简单来说就是备份和还原手机上的个人APP和通讯录。优点是备份速度快、APP是备份为.apk的安卓手机安装文件,恢复的时候可以设置为自动恢复,完全不用认…

几款安卓人气手机数据备份软件体验

据相关数据调查机构最新研究报告称,截止2018年底,中国智能手机用户数量已经突破10亿,位居全球第一,与此同时,相当一部分用户需要手机数据备份的需求,小编为此搜集体验了在应用商店中下载量靠前的一些手机数…