软件工程分析报告07测试计划书——基于Paddle的肝脏CT影像分割

目录

测试计划书

 1. 引言

 2. 测试目标

 3. 测试方法

3.1 黑盒测试

(1)等价类划分:

(2)边界值分析:

(3)因果图:

​编辑(4)错误推测法

3.2 白盒测试

测试用例!!

 4. 测试环境

 5. 测试计划

6.测试内容

(1)单元测试

(2)集成测试

(3)确认测试

(4)系统测试


测试计划书

 1. 引言

本测试计划书旨在描述基于Paddle框架、使用Unet语义分割网络进行CT影像中肝脏和肝脏肿瘤分割的测试策略和方法。通过该测试,旨在验证模型的准确性、稳定性和性能。

 2. 测试目标

本次测试的主要目标是评估Unet网络在肝脏和肝脏肿瘤分割任务上的性能。具体包括以下方面:

· 验证Unet网络对CT影像中肝脏的分割准确性,以IOU指标进行评估。

· 验证Unet网络对CT影像中肝脏肿瘤的分割准确性,以IOU指标进行评估。

· 验证Unet网络在不同数据集上的泛化能力和稳定性。

 3. 测试方法

本次测试将采用黑盒测试和白盒测试相结合的方式进行。

3.1 黑盒测试

为了对Unet网络进行全面的黑盒测试,我们将从以下几个方面进行测试:

(1)等价类划分:

根据输入数据的特点,将其划分为不同的等价类,并从每个等价类中选择代表性的测试用例进行测试。例如,对于CT影像数据,我们可以将其划分为正常肝脏、肝脏肿瘤、肝硬化等等等价类。然后,我们可以从每个等价类中选择代表性的测试用例,以验证Unet网络在不同情况下的分割效果。

 

(2)边界值分析:

针对输入数据的边界情况,设计测试用例进行测试,以验证系统在边界值处的表现。例如,对于肝脏和肝脏肿瘤的大小、形状、位置等边界情况,设计相应的测试用例进行测试。这有助于我们评估Unet网络在处理边缘情况时的性能和稳定性。

(3)因果图:

根据系统的功能和交互关系,绘制因果图,设计相应的测试用例进行测试。例如,根据Unet网络的输入、输出和内部处理过程,设计相应的测试用例进行测试。这有助于我们评估Unet网络在不同情况下的处理过程和结果。

(4)错误推测法

1. 数据预处理错误:将3D体数据转换成2.5D切片时,可能会出现数据丢失或者切片顺序不正确等问题。

2. 模型训练错误:在训练过程中可能会出现过拟合、欠拟合等问题,导致模型性能不佳。

3. 分割预测错误:在进行肝脏和肝脏肿瘤分割时,可能会出现模型无法准确识别肝脏和肝脏肿瘤区域的问题,导致分割结果不理想。

4. 用户上传数据错误:用户可能会上传错误的CT影像数据或格式不正确的数据,导致系统无法进行分割处理。

5. 系统后处理错误:在进行后处理步骤时,可能会出现算法错误或者数据处理错误,导致临床指标计算不准确。

6. 性能评估错误:在对分割模型的性能进行评估时,可能会出现评估指标不准确或者评估方法不恰当的问题。

7. 结果展示错误:在展示分割结果和临床指标时,可能会出现数据显示错误或者界面设计不合理的问题,导致用户无法正确理解结果。

针对上述可能存在的错误和特殊情况,可以进行错误推测法分析,设计如下测试用例:

1. 数据预处理错误:

a) 生成的切片数量不正确。

b) 切片顺序不正确。

2. 模型训练错误:

a) 过拟合或者欠拟合问题。

b) 训练过程中出现异常导致模型无法训练。

3. 分割预测错误:

a) 对于某些CT影像数据无法进行准确的分割。

b) 对于某些肝脏或者肝脏肿瘤形状、位置复杂的情况,分割结果不理想。

4. 用户上传数据错误:

a) 上传格式不正确的文件。

b) 上传大小超过系统能够处理的限制。

5. 系统后处理错误:

a) 临床指标计算错误。

b) 后处理算法出现异常。

6. 性能评估错误:

a) 评估指标计算不正确。

b) 评估方法不恰当。

7. 结果展示错误:

a) 数据显示错误。

b) 界面设计不合理。

3.2 白盒测试

项目路径概述:该程序有L1(sacdfgh),L2(sacbdfgh),L3(sacdfegh),L4(sacbdfegh)

语句覆盖,使得被测程序的每个可执行语句都至少执行一次,只需执行路径L1即可

判定覆盖,每个判定框的真假分支都至少执行一次,只需执行L2,L3

条件覆盖:使得被测程序的每个判定中的每个条件的所有可能可能取值都至少执行一次。只需L4,L3

判定/条件覆盖,每个条件的所有可能取值至少执行一次,同时每个判断的所有可能判断结果至少执行一次,只需执行L1,L4

条件组合覆盖,使得每个判断的所有可能的条件取值组合至少执行一次,只需L1,L2,L3,L4.

路径覆盖,使得被测程序的每条可能路径都至少执行一次,只需L1,L2,L3,L4

点覆盖,执行时至少经过程序图中每个节点一次

边覆盖,使得程序执行路径的每一个边执行一次

测试用例!!

测试用例编号:T001

测试项目:正常肝脏分割测试(L1)

标题:验证系统对正常肝脏CT影像的分割准确性

重要级别:高

预置条件:已有一张正常肝脏的CT影像和标准分割结果

输入:正常肝脏的CT影像

操作步骤:

1. 选择一张正常肝脏的CT影像进行分割;

2. 比较系统生成的分割结果和标准分割结果,计算IOU值;

3. 判断分割结果是否符合需求。

预期输出:系统生成的分割结果与标准分割结果相似,IOU值达到0.9以上。

测试用例编号:T002

测试项目:检测错误CT图像模块(L2)

标题:验证系统对错误CT图像的判断

重要级别:中

预置条件:错误的CT的图像

输入:一张错误的CT图像

操作步骤

  1. 选择一张错误CT图像输入
  2. 检测到CT图像错误,让操作者从新输入
  3. 输入正确CT图像

4.比较系统生成的分割结果和标准分割结果,计算IOU值;

5. 判断分割结果是否符合需求。

6.预期输出:系统生成的分割结果与标准分割结果相似,IOU值达到0.9以上。

测试用例编号:T003

测试项目:分割CT图像模块(L3)

标题:检测分割CT图像标签的准确性

重要级别:高

预置条件:准备根据不同分割标签的图像与专家验证结果

输入:一张需要特殊分割的CT图像

操作步骤:

  1. 选择一张需要特殊分割的CT图像
  2. 在分割失败后,调整分割标签选项
  3. 再次进行分割

测试用例编号:T004

测试项目:项目整体检测错误(4)

标题:验证系统对各模块错误的判断

重要级别:高

预置条件:准备需要特殊分割和错误的CT的图像

输入:一张需要特殊分割以及错误的图像

操作步骤:

  1. 输入上述图像
  2. 判断出CT图像错误,从新输入一张没错误而且需要特殊分割的图像
  3. 分割失败,调整分割标签选项
  4. 再次进行分割

 4. 测试环境

· 操作系统:Windows 10

· 开发工具:Python 3.7, Paddle框架

· 硬件要求:具备足够的计算资源和存储空间

·测试工具:pytest、coverage

 5. 测试计划

5.1 测试准备阶段

· 确定测试目标和测试方法。

· 安装配置测试环境。

· 准备测试数据集。

6.测试内容

本次测试包括单元测试、集成测试、确认测试和系统测试四个阶段。

(1)单元测试

• 按下图配置测试环境

• 编写测试数据

• 进行多个单元的并行测试

针对Unet网络的各个组件进行单元测试,确保其功能的正确性。

单元测试将针对系统中的各个模块进行测试,主要测试项如下:

·图像读取模块是否能够正确读取CT影像数据。

·模型加载模块是否能够正确加载训练好的模型。

·分割模块是否能够正确对肝脏CT影像进行分割。

·结果输出模块是否能够正确输出分割结果。

(2)集成测试

自顶向上集成

自顶向下集成

将Unet网络与其他模块进行集成测试,验证系统整体的功能和性能。

集成测试将测试系统中各个模块之间的接口和交互是否正常,主要测试项如下:

·图像读取模块和模型加载模块之间的接口是否正常。

·模型加载模块和分割模块之间的接口是否正常。

·分割模块和结果输出模块之间的接口是否正常。

(3)确认测试

1. 功能测试:对软件所有功能进行测试,验证其是否与需求规约一致,并能够满足用户需求。具体测试内容包括:

a) 用户登录:测试用户登录功能是否正常运行,能否正确识别用户身份并授予相应权限。

b) 上传CT影像:测试系统是否能够成功接受上传的CT影像文件,并将其进行后续处理。

c) 查看分割结果:测试用户是否能够顺利查看分割后的肝脏和肝脏肿瘤图像以及临床指标,并确认其准确性。

d) CT影像分割:测试系统使用2.5D Unet网络对上传的CT影像进行分割的准确性。

e) 后处理:测试系统是否能够顺利进行必要的后处理步骤,以提取有用的临床指标。

f) 性能评估:测试系统能否对分割模型的性能进行评估,计算IOU等指标。

2. 配置复审:对程序和文档配置进行复审,确保其齐全、分类有序,并包括了软件维护所必须的细节。具体测试内容包括:

a) 程序配置复审:测试程序的配置是否齐全、分类有序,并包括了软件维护所必须的细节。

b) 文档配置复审:测试文档的配置是否齐全、分类有序,并包括了软件维护所必须的细节。

c) 两者一致性检验:测试程序和文档配置是否一致,是否能够相互匹配。

3. α测试:由一个用户在开发环境下进行测试,验证软件的功能是否符合设计要求。具体测试内容包括:

a) 代码编译测试:测试是否能够成功编译程序代码,并输出正确的结果。

b) 单元测试:测试各个模块的正确性和稳定性,发现并修正潜在的错误。

c) 集成测试:测试各个模块之间的协同工作,确保系统整体功能的完整性和稳定性。

4. β测试:由软件的多个用户在一个或多个用户的实际使用环境下进行测试,验证软件是否能够正常运行,并满足用户需求。具体测试内容包括:

a) 功能测试:测试所有功能是否正常运行,并能够满足用户需求。

b) 兼容性测试:测试软件是否与不同操作系统、硬件设备、浏览器等兼容。

c) 性能测试:测试软件的响应速度、稳定性和负载能力等性能指标。

d) 安全测试:测试软件的安全性,包括数据安全、用户隐私保护等方面。

e) 用户体验测试:测试软件的用户体验是否良好,是否符合用户习惯和期望。

(4)系统测试

1. 功能测试:验证系统是否按照预期功能进行操作。包括以下几个方面:

   - 用户登录测试:确认系统能够正确验证用户身份和授予相应的权限。

   - CT影像上传测试:验证系统能够接受并正确处理上传的CT扫描图像文件。

   - 分割结果查看测试:确保用户能够正确查看分割后的肝脏和肝脏肿瘤图像。

   - 临床指标查看测试:确认系统能够正确计算和展示肝脏及肝脏肿瘤体积、肝脏肿瘤负担等临床指标。

2. 性能测试:测试系统在正常负载下的性能表现。可以包括以下方面:

   - 分割速度测试:验证系统在给定的硬件配置下,对CT影像进行分割的速度是否满足实际需求。

   - 资源利用率测试:检查系统在运行过程中对CPU、内存等资源的占用情况,确保系统资源利用合理。

   - 并发访问测试:模拟多个用户同时访问系统,测试系统对并发请求的处理能力。

3. 强度测试:测试系统在非正常工作条件下的稳定性和可靠性。可以包括以下方面:

   - 容错能力测试:在系统运行过程中,人为制造错误并观察系统是否能够检测到错误、修正错误并继续正常运行。

   - 安全性测试:评估系统中已存在的安全措施和保密措施是否有效,确保系统没有漏洞并能够保护用户数据的安全性。

   - 异常情况测试:模拟系统异常情况,如网络中断、数据库故障等,测试系统对这些异常情况的处理能力。

4. 可用性测试:评估系统的易用性和用户体验。可以包括以下方面:

   - 用户界面测试:验证系统的用户界面设计是否符合用户习惯,操作是否简单直观。

   - 错误处理测试:测试系统对用户输入错误或异常操作的处理能力,确保系统能够给出明确的提示信息。

   - 响应时间测试:测试系统对用户请求的响应时间,确保系统能够及时响应用户操作。

 5. 测试执行和记录

根据测试计划,执行各个阶段的测试,并记录测试过程中的关键信息,包括测试用例、测试数据、测试结果等。

 6. 缺陷管理

在测试过程中,发现的缺陷将记录在缺陷管理系统中,并按照优先级进行修复和验证。

肝脏和肝脏肿瘤分割系统进行了集成测试。测试主要覆盖了图像读取模块、模型加载模块、分割模块和结果输出模块等方面。经过测试,系统的各个模块都能够正常工作,没有发现明显的问题。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++历险记】STL之set详解

个人主页:兜里有颗棉花糖💪 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【C之路】💌 本专栏旨在记录C的学习路线,望对大家有所帮助🙇‍ 希望我们一起努力、成长&…

C++中关于多线程并发访问实例函数与静态函数

问题 1 C中多个线程共同执行一个实例函数,该函数是在线程的栈空间吗?对于函数中的多线程共享变量又是存储在哪里呢? example: 在该例子中线程绑定当前对象(this)的实例函数captureVideo, 并将int参数传递过去。但是对于captureVideo中多个线…

双写绕过 [极客大挑战 2019]BabySQL 1

打开题目 随便输入账号密码 根据报错信息可知这是单引号的字符型注入 那我们试试万能密码 1 or 11 页面报错 1 or 11 页面报错 而且根据报错内容显示是没有我们注入上去的or的 那我们就试试 1 order by 3 # 页面报错,根据报错显示页面过滤掉了or和by 那我们…

酷柚易汛ERP-购货订单操作指南

1、应用场景 先下购货订单,收货入库后生成购货单。 2、主要操作 2.1 新增购货订单 打开【购货】-【购货订单】新增购货订单。(*为必填项,其他为选填) ① 录入供应商:点击供应商字段框的 ,在弹框中选择供…

新版本Idea设置启动参数

1.进入配置页面 2.点击下图红框的部分,会看到有很多操作可选 3.选择添加VM参数即可 此时就会多出一个可以输入参数的框了,如下:

第 1 章 概述 习题

1-1 因特网的前身是 1969 年创建的第一个分组交换网()。 A. internet B. Internet C. NSFNET D. ARPANET 【答案】 D 【解析】 1-2 因特网上的数据交换方式是()。 A. 电路交换 B. 报文交换 C. 分组交换 D. 光交换 【答…

springcloud旅游网站源码

开发技术: jdk1.8,mysql5.7,idea,nodejs,vscode springcloud springboot mybatis vue 功能介绍: 用户端: 登录注册 首页显示搜索景区,轮播图,旅游攻略列表 点击攻…

计算机毕业设计选题推荐-体育赛事微信小程序/安卓APP-项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

echarts 地图点位图标为动图,且可以多个不同图标

根据项目需求,echarts地图点位图标要是动图,且可以设置不同图标,经过多方查找,找到解决方案,可以用svg使gif动起来 let myChartChina echarts.init(document.getElementById("myChartChina"), "transparent", {renderer: "svg"});其中transpare…

线程池参数该怎么配置?这可能是为数不多的好答案

前言 CPU 密集型 CPU 核数 1 IO 密集型 CPU 核数 * 2 相信这个公式可谓是线程池八股文中老生常谈的万能公式了,但现实却很骨感,我之前有个系统就是按照这个公式算出来的参数去配置的。结果效果并不好,甚至让下游系统直呼受不了。这个东西…

阶段七-Day01-SpringMVC

一、Sping MVC的介绍 1. 使用Front(前端)设计模式改写代码 1.1 目前我们的写法 目前我们所写的项目,持久层、业务层的类都放入到Spring容器之中了。他们之间需要注入非常方便,只需要通过Autowired注解即可。 但是由于Servlet整个生命周期都是被Tomca…

并查集详解(附例题和模板)

一、并查集 (1)处理问题的类型 1.将两个集合合并 2.询问两个元素是否在一个集合当中 询问 1.fa[x]a; 2.if(fa[x]fa[y]) o(1) 在o(1)的复杂度内进行两个操作 (2)基本原理 基本原理:每个集合用一棵树来表示&#…

振南技术干货集:深入浅出的Bootloader(5)

注解目录 1、烧录方式的更新迭代 1.1 古老的烧录方式 (怀旧一下,单片机高压烧录器。) 1.2 ISP 与ICP 烧录方式 (还记得当年我们玩过的 AT89S51?) 1.3 更方便的 ISP 烧录方式 1.3.1串口 ISP (是 STC 单片机成就了我们,还是我们成就了…

破解tomcat密码并上传webshell

tomcat基础认证爆破 暴力破解 进入vulnhub的tomcat8目录,启动环境 由于tomcat密码默认最大尝试错误次数为5次,需要修改server.xml,修改下面字段 failureCount"10000000000" lockOutTime"0"tomcat默认界面,…

一个破单机,也要用远程缓存?

大家好,豆小匠终于开始Coding了,这期来聊聊实战相关的杂谈。 正文开始! 作为编程萌新的时候,总想着把程序做复杂,堆技术栈。 但是程序是为场景服务的,比如,我想提高接口的响应速度&#xff0c…

传输层协议-UDP协议

目录 传输层再谈端口号端口号范围划分认识知名端口号 UDP协议UDP协议格式UDP数据封装UDP数据分用 UDP协议的特点面向数据报 UDP缓冲区UDP使用注意事项基于UDP的应用层协议 传输层 实际上我们应用层的数据并不是直接发给网络的,而是需要先将数据发送给传输层&#xf…

客户下单时如何自动匹配到最近的门店

有些商家有多个门店,当客户下单时,希望能够将客户下的订单分配给最近的门店。下面就具体介绍一下在采云小程中是如何实现的。 首先,为了简便起见,请确定门店高级设置保持着默认设定。因为单独的商品管理模式以及独享的商品信息模…

一篇博客读懂队列——Queue

目录 一、队列的概念和结构 ​二、队列的实现 2.1队列的初始化QueueInit 2.2队列的摧毁QueueDestroy 2.3插入结点QueuePush 2.4删除结点QueuePop 2.5返回队头QueueFront 2.6返回队尾QueueBack 2.7判断队列为空QueueEmpty 2.8统计队列数目QueueSize 一、队列的概念和…

Vue computed 计算属性

1.计算属性的相关知识 概念 :基于现有的数据,计算出来的新属性。依赖数据的变化,自动重新计算。 语法: ① 声明在 computed 配置项 中,一个计算属性对应一个函数 ② 使用起来和普通属性一样使用 {{ 计算属性名 …