测试模块的编写

比起写好所有的程序后整体调试,单元测试显示了它的优势,比如在深度学习的代码中,比较重要的两大块是:数据集模块、网络结构模块。pytorch中,写好数据集模块时,会测试‘__getitem__功能,这个时候可以用到unittestIPython

以下时今天写的要给关于眼底的数据集测试:

import sys 
import unittest 

# 如果没有此条,会出错
# 
sys.path.append("D:/4I/retina-images/Mycode")  

from config import cfg 
from data.transforms import build_transforms 
from data.build import build_dataset 
from data import make_data_loader 

"""
测试数据集
"""

class TestDataSet(unittest.TestCase):
    def test_dataset(self):
        train_transform = build_transforms(cfg, True)
        train_set = build_dataset(cfg, train_transform, True)
        from IPython import embed 
        embed()

if __name__ == "__main__":
    unittest.main()

unittest介绍

需要什么学什么!!!这个很重要!!所以,这里不是系统的介绍unittest,只是带一笔

了解4个概念就可以用la

  1. 编写单元测试时,需要编写一个测试类,这个测试类继承于unittest.TestCase
  2. 类中的测试方法必须以test开头,不以test开头的方法,测试时候不会执行。
  3. 如何运行单元测试??
    1. 直接在命令行中运行python -m unittest mydict_test, 推荐使用这种方法。
      1. 程序末尾添加,以下代码,然后运行脚本代码即可
if __name__ == "__main___":
		unittest.main()
  1. 单元测试中两个特殊的方法,setUp(), tearDown(),在执行test_方法前,先执行setUp(),执行test_之后,执行tearDown()方法。(这个试一下就很好理解)

IPyhon中的embed

前面代码中的embed(),程序执行到embed()时就会进入Ipython交互界面,此时可以在命令行中,查看程序中的变量,Ctrl+D退出交互界面,程序继续执行,所以这种方法相当管用。其他关于IPyhon知识,以后遇到在说吧!!

调试

关于调试的其他的方法,还有loggingpdb,或者时IDE中间的端点,下个星期会 总结一下logging、pdb,方法有好几种,每种功能性其实差不多,最主要的熟悉一种自己喜欢的。

2019/7/9日
每日遇到的问题都记录啦,一个星期、或者两个星期汇总一次

单元测试计划 版本:V1.3 文 档 编 号 保 密 等 级 作 者 最后修改日期 审 核 人 最后审批日期 批 准 人 最后批准日期 修订记录 日期 版本 修订说明 修订人 目 录 1 导言 2 1.1 目的 2 1.2 背景 2 1.3 范围 2 2 进入条件 2 3 退出条件 2 4 代码级别标准 2 5 代码分级清单 3 6 单元测试风险 3 7 单元测试策略 3 7.1 策略描述 3 7.2 类型 3 7.2.1 代码走查 3 7.2.2 功能测试 4 7.2.3 边界测试 4 7.2.4 覆盖率测试 4 7.2.5 内存使用测试 4 7.2.6 测试方式 4 7.3 测试用例估算 4 8 工具 5 9 进度及分工 5 10 交付物 5 导言 目的 【描述该代码走查及单元测试计划的目的。】 背景 【描述代码走查及单元测试计划的背景,活动目的。如无特殊背景信息,可裁剪。】 范围 【说明该代码走查及单元测试计划在整个项目周期的适用范围】 进入条件 【描述项活动的测试依据和满足该阶段测试进入的条件和约束。】 退出条件 【描述满足该阶段测试退出的条件,编写时特别要根据 《项目量化管理计划》列举一些量化的退出指标,例如 致命和严重级别的缺陷清除率达到 100%】 代码级别标准 【请参考组织级文档《代码分类级别指南》,中规定进行分类,质量经理可根据项目情况,对级别和通过标准做适当调整,将最后确定的通过标准记录在以下表格中】 级别 检查项 通过标准 A 代码编写格式检查 B 代码编写质量检查 C1 代码走查 C2 C3 D1 测试用例代码覆盖率检查 D2 D3 D4 E 内存泄漏检查 代码分级清单 【由架构师根据代码级别标准,划分】 模块 代码 A B C D E C1 C2 C3 D1 D2 D3 D4 √ √ √ √ √             单元测试风险 【此处描述测试任务可能遇到的风险,以及规避的方法】 # 风险描述 可能性 风险影响 责任人 规避方法 【高、中、低】 【高、中、低】 单元测试策略 策略描述 【此处描述根据项目的具体特征所确定的代码走查及单元测试的策略(如:代码走查在本项目重点关注的地方、测试可行性分析,测试方法确定,测试类型选择)】 类型 【此处描述单元测试选择的测试类型,一般建议有如下几种:】 代码走查 目标: 技术: 完成标准: 需考虑的特殊事项: 功能测试 测试目标: 技术: 完成标准: 需考虑的特殊事项: 边界测试 测试目标: 技术: 完成标准: 需考虑的特殊事项: 覆盖率测试 测试目标: 技术: 完成标准: 需考虑的特殊事项: 内存使用测试 测试目标: 技术: 完成标准: 需考虑的特殊事项: 测试方式 【说明手工测试的部分和自动测试的部分】 测试用例估算 【说明对需要开发的测试用例数目的估算】 模块 类数目 测试类型 测试用例数 工具 【本次测试将使用的工具】 用途 工具 厂商/自产 版本 测试管理 测试执行 缺陷报告 进度及分工  【根据测试模块,分解任务,计划工作量、时间、人员;制订该计划的同时请参考中层计划等相关计划和估算文档;对于代码走查的人员安排一般要求架构师、高级工程师对工程师、助理工程师的代码进行走查,同时高级工程师、工程师 之间进行代码互查】 模块 任务 工作量 开始日期 人员 代码走查 用例设计 用例开发 用例执行 工作量合计 代码走查 用例设计 用例开发 用例执行 交付物 【描述单元测试需要交付的工作产品】 交付物名称 责任人 参与者 交付日期 测试计划 代码走查报告 测试用例 测试报告
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值