目录
测试计划书
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图像
操作步骤
- 选择一张错误CT图像输入
- 检测到CT图像错误,让操作者从新输入
- 输入正确CT图像
4.比较系统生成的分割结果和标准分割结果,计算IOU值;
5. 判断分割结果是否符合需求。
6.预期输出:系统生成的分割结果与标准分割结果相似,IOU值达到0.9以上。
测试用例编号:T003
测试项目:分割CT图像模块(L3)
标题:检测分割CT图像标签的准确性
重要级别:高
预置条件:准备根据不同分割标签的图像与专家验证结果
输入:一张需要特殊分割的CT图像
操作步骤:
- 选择一张需要特殊分割的CT图像
- 在分割失败后,调整分割标签选项
- 再次进行分割
测试用例编号:T004
测试项目:项目整体检测错误(4)
标题:验证系统对各模块错误的判断
重要级别:高
预置条件:准备需要特殊分割和错误的CT的图像
输入:一张需要特殊分割以及错误的图像
操作步骤:
- 输入上述图像
- 判断出CT图像错误,从新输入一张没错误而且需要特殊分割的图像
- 分割失败,调整分割标签选项
- 再次进行分割
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. 缺陷管理
在测试过程中,发现的缺陷将记录在缺陷管理系统中,并按照优先级进行修复和验证。
肝脏和肝脏肿瘤分割系统进行了集成测试。测试主要覆盖了图像读取模块、模型加载模块、分割模块和结果输出模块等方面。经过测试,系统的各个模块都能够正常工作,没有发现明显的问题。