单元测试策略

本文为作者在使用Junit做单元测试时测试计划中的一部分,在这里共享出来,希望大家多指教。
测试策略
1、 类测试阶段
(1)确保类实例满足类的设计描述;
(2)测试驱动:使用Junit实现独立的测试类;
(3)类的实例方法没有和任何类交互的确保覆盖100%;
(4)先测试没有交互的类,然后逐步组合测试;
(5)使用Code Coverage工具进行类代码覆盖测试;
(6)类测试用例确定方法之一:
根据前置和后置状态确定测试用例(前置条件中可指定输入值,包括常见值和边界值,来增加测试用例的测试覆盖率),根据前置和后置条件的不同组合方式产生不同的测试用例具体测试方法体;
(7)类测试用例确定方法之二:
<1>根据代码确定测试用例。所有Public声明的方法都需要被测试(确定的);
<2>Protected和Frendly声明的方法有所选择的被测试(模糊的);
<3>所有Private声明的方法都被禁止测试(确定的)。
(8)类测试用例确定方法之三:
根据状态转换确定测试用例。
(9)用例命名方式:
<1>根据用例方法命令;
<2>根据前置条件和后置状态命名。
(10)尽量使测试代码不依赖于数据(不要因为外部数据不同而产生不同结果)。
(11)进行语句覆盖率分析。

2、功能确认与接口测试测试阶段
(1)用例按照需求描述(软件概要设计说明书和详细设计说明书)确定,再编写测试代码来满足需求描述的功能;
(2)验证程序和详细设计说明的一致性;
(3)功能确认与接口测试范围:单元接口、局部数据结构、重要的执行路径、错误处理的路径、影响上述几点的边界条件
(4)先是简单功能验证测试,通过后再进行该功能的复合功能测试;
(5)简单功能测试都通过则进行条件组合搭配测试,路径覆盖测试;
(6)测试边界条件:未初始化、Null值、最大最小值、临界值、初始值等;
(7)检验每个软件单元模块能否正确的实现其功能,满足其性能和接口要求;
(8)单元测试中测试每个单元模块,集成测试中进一步把单元组装成部件并测试其正确性;
(9)进行逻辑覆盖率分析。

3、 性能与效率测试阶段
(1)单个功能运行时间分析;
(2)选取典型测试用例使用JUnitPerf工具多线程持续运行观察运行情况;
(3)单个函数的性能分析、函数的调用频率分析、代码执行频率分析、响应时间、并发性;
(4)在源代码的入口与出口进行插桩,然后收集时间数据来测量代码的运行时间与调用次数;
(5)针对影响性能的代码段作优化处理;

4、 内存分析
(1)内存分配未成功,却使用了它
(2)内存分配虽然成功,但是尚未初始化就引用它
(3)内存分配成功并且已经初始化,但操作越过了内存的边界
(4)忘记了释放内存,造成内存泄露
(5)释放了内存却继续使用它
(6)使用全局测试工具分析(OptimizeIt,Jprobe等)
单元测试计划 版本: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 √ √ √ √ √             单元测试风险 【此处描述测试任务可能遇到的风险,以及规避的方法】 # 风险描述 可能性 风险影响 责任人 规避方法 【高、中、低】 【高、中、低】 单元测试策略 策略描述 【此处描述根据项目的具体特征所确定的代码走查及单元测试策略(如:代码走查在本项目重点关注的地方、测试可行性分析,测试方法确定,测试类型选择)】 类型 【此处描述单元测试选择的测试类型,一般建议有如下几种:】 代码走查 目标: 技术: 完成标准: 需考虑的特殊事项: 功能测试 测试目标: 技术: 完成标准: 需考虑的特殊事项: 边界测试 测试目标: 技术: 完成标准: 需考虑的特殊事项: 覆盖率测试 测试目标: 技术: 完成标准: 需考虑的特殊事项: 内存使用测试 测试目标: 技术: 完成标准: 需考虑的特殊事项: 测试方式 【说明手工测试的部分自动测试的部分】 测试用例估算 【说明对需要开发的测试用例数目的估算】 模块 类数目 测试类型 测试用例数 工具 【本次测试将使用的工具】 用途 工具 厂商/自产 版本 测试管理 测试执行 缺陷报告 进度及分工  【根据测试的模块,分解任务,计划工作量、时间、人员;制订该计划的同时请参考中层计划等相关计划估算文档;对于代码走查的人员安排一般要求架构师、高级工程师对工程师、助理工程师的代码进行走查,同时高级工程师、工程师 之间进行代码互查】 模块 任务 工作量 开始日期 人员 代码走查 用例设计 用例开发 用例执行 工作量合计 代码走查 用例设计 用例开发 用例执行 交付物 【描述单元测试需要交付的工作产品】 交付物名称 责任人 参与者 交付日期 测试计划 代码走查报告 测试用例 测试报告
子系统名:单元测试实例 模 块 名:单元测试实例模块 计划编号 用例编号 创建日期 测试要点描述 执行状态 数据输入、结果输出 预期结果 测试代码 是否通过 BUG号 覆盖率快照文件 覆盖率% 签名 PL-UT-MyCode-estimate UTC-MyCode-estimate-01 2005-7-31 id正确等价类:65535 未完成 "输入:id=65535 输出:return 1" 1 TestMyCode.testEstimatet1() 通过 / PL-UT-MyCode-estimate.jpc 100.00% 张三 UTC-MyCode-estimate-02 2005-7-31 id边界值:0 未完成 "输入:id=0 输出:return 0" 0 TestMyCode.testEstimatet2() 通过 / 张三 UTC-MyCode-estimate-03 2005-7-31 id边界值:1 未完成 "输入:id=1 输出:return 1" 1 TestMyCode.testEstimatet3() 通过 / 张三 UTC-MyCode-estimate-04 2005-7-31 id错误等价类:a 未完成 "输入:id=""a"" 输出:return 0" 0 TestMyCode.testEstimatet4() 通过 / 张三 UTC-MyCode-estimate-05 2005-7-31 id错误等价类:空 未完成 "输入:id="""" 输出:return 0" 0 TestMyCode.testEstimatet5() 通过 / 张三 PL-UT-MyCode-insertData UTC-MyCode-insertData-01 2005-7-31 增加记录正常 未完成 "输入:""2"",""111"",""m"" 输出:0" flag=0 TestMyCode.testinsertData1() 通过 / PL-UT-MyCode-insertData.jpc 83.10% 张三 UTC-MyCode-insertData-02 2005-7-31 id为空,insert失败 未完成 "输入:"""", ""111"", ""m"" 输出:1" flag=1 TestMyCode.testinsertData2() 通过 / 张三 UTC-MyCode-insertData-03 2005-7-31 id为1,重复,insert失败 未完成 "输入:""1"",""222"",""f"" 输出:2" flag=2 TestMyCode.testinsertData3() 通过 / 张三 UTC-MyCode-insertData-04 2005-7-31 name为空,insert失败 未完成 "输入:""3"", """", ""f"" 输出:3" flag=3 TestMyCode.testinsertData4() 通过 / 张三 UTC-MyCode-insertData-05 2005-7-31 sex不是m或f,insert失败 未完成 "输入:""4"", ""ggg"", ""h"" 输出:4" flag=4 TestMyCode.testinsertData5() 通过 / 张三 "填写说明: 1.该页面由开发人员填写 2.开发人员根据开发组长所填写的第二个sheet的内容设计单元测试用例,即,完成该sheet蓝色区域的填写。 3.开发人员执行测试用例,并执行过程中填写该sheet的紫色区域。"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值