我是靠谱客的博主 干净画笔,最近开发中收集的这篇文章主要介绍【软件测试】单元测试1.什么是单元测试?2.单元测试的目标和任务3.静态测试技术的运用4.动态测试技术的运用5.调试与评估6.单元测试的过程与文档管理7. 单元测试常用工具简介,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
1.什么是单元测试?
1.1 单元测试的定义
定义:
单元测试是对软件基本组成单元进行的测试。
时机:
一般在代码完成后由开发人员完成,QA人员辅助.
概念:
模块, 组件, 单元
1.2 为何要进行单元测试?
- 尽早发现错误
错误发现越早,成本越低.
开发人员过于自信,后期复杂
度高,发现解决BUG困难.
- 检查代码是否符合设计和规范
1.3 单元测试的背景
开发流程时间表与修改Bug代价的关系图如下:
编程过程中,每写100行代码会犯150个错误
编程与编译运行结束后,每100行代码中大约残留有1-3个Bug
寻找与修改程序错误的代价占总体开发投资的40%-80%
Bug在整个研发流程中被发现的越早,修改的代价就越低
编程与编译运行结束后,每100行代码中大约残留有1-3个Bug
寻找与修改程序错误的代价占总体开发投资的40%-80%
Bug在整个研发流程中被发现的越早,修改的代价就越低
2.单元测试的目标和任务
2.1 单元测试的目标
目标是单元模块被正确编码
- 信息能否正确地流入和流出单元;
- 在单元工作过程中,其内部数据能否保持其完整性,包括内部数据的形式、内容及相互关系不发生错误,也包括全局变量在单元中的处理和影响。
- 在为限制数据加工而设置的边界处,能否正确工作。
- 单元的运行能否做到满足特定的逻辑覆盖。
- 单元中发生了错误,其中的出错处理措施是否有效
2.2 单元测试的任务
2.2.1 任务1:模块接口测试
检查模块接口是否正确,checklist:
- 输入的实际参数与形式参数是否一致。
- 调用其他模块的实际参数与被调模块的形参是否一致。
- 全程变量的定义在各模块是否一致。
- 外部输入、输出
- 其它
检查局部数据结构完整性
Checklist:
2.2.3 任务3: 模块边界条件测试
Checklist:
- 不适合或不相容的类型说明。
- 变量无初值。
- 变量初始化或默认值有错。
- 不正确的变量名或从来未被使用过。
- 出现上溢或下溢和地址异常。
- 其它
检查临界数据处理的正确性
Checklist:
Checklist:
- 普通合法数据的处理。
- 普通非法数据的处理。
- 边界值内合法边界数据的处理。
- 边界值外非法边界数据的处理。
- 其它
2.2.4 任务4: 模块独立执行通路测试
检查每一条独立执行路径的测试。保证每条语句被至少执行一次。
Checklist:
Checklist:
- 算符优先级。
- 混合类型运算。
- 精度不够。
- 表达式符号。
- 循环条件,死循环。
- 其它
2.2.5 任务5:模块的各条错误处理通路测试
预见、预设的各种出错处理是否正确有效。
Checklist:
Checklist:
- 输出的出错信息难以理解。
- 记录的错误与实际不相符。
- 程序定义的出错处理前系统已介入。
- 异常处理不当。
- 未提供足够的定位出错的信息。
- 其它
2.3 Microsoft对单元测试的理解
2.3.1 单元测试具体分类
- 验证产品实现符合功能规格书
- 验证产品代码运行的正确性
- 边缘条件测试
- 产品安全性测试
- 从已有Bug增加的回归测试
- 产品代码覆盖度测试(Code Coverage)
- 产品代码注射测试(Code Injection)
- 异常测试
- 产品速度性能的比较测试
- 产品极限情况测试
- 产品与国际标准的兼容性测试
- 产品与以前版本的操作系统,文件格式的兼容测试
- 同一产品不同版本共同运行的兼容性测试
- 产品在不同语言操作系统下的运行测试
2.3.2 单元测试具体流程
- 测试过程从产品设计开始
Spec Review 非常重要
微软产品Spec Review演示
Sharepoint Server的应用
没有相随的DRT, Feature Area不算开发完
DRT不全部编译并100%通过,不允许Check-in
测试组的测试不100%编译并100%通过0级测试(BVT), 70%通过1级测试,不允许Check-in
微软产品Spec Review演示
Sharepoint Server的应用
- 测试代码编写由软件开发设计者(SDE)自己开始
没有相随的DRT, Feature Area不算开发完
DRT不全部编译并100%通过,不允许Check-in
测试组的测试不100%编译并100%通过0级测试(BVT), 70%通过1级测试,不允许Check-in
- 测试代码主体由软件测试工程师(SDET,STE)编写
- 测试从写软件测试规格书(Test Spec)开始
- Test Spec必须通过PM,Dev与同组Tester共同开会研究通过
- 测试代码根据不同测试的情景分为0-4级的优先级
- 0级测试称为BVT (Build Verification Test)
- 在Dev主要的功能实现Check-in前,0-1级测试代码必须已由测试工程师完成
- 在Dev进行Check-in时,0级测试必须100%通过
- 在Dev进行Check-in时,1级测试必须至少有70%通过
- Dev进行产品代码的Check-in
- Test进行测试代码的Check-in
- 产品编译由Build团队每日进行
- Test编译由测试团队在产品编译完成后进行
- 测试编译完成后,由测试自动化系统进行测试
- 在随后的代码优化与稳定期内,测试工程师编写2-4级测试代码,并报告产品Bug,Dev负责修改Bug,稳定并优化产品
3.静态测试技术的运用
3.1 静态测试技术的概念
静态测试技术: 不运行被测试程序,对代码通过检查、阅读进行分析。
三步曲:
3.2 编码的标准和规范
三步曲:
- 走查 (Walk Through)。
- 审查 (Inspection)。
- 评审 (Review)
标准:建立起来必须遵守的规则。
规范:建议最佳做法,推荐更好方式。
实施标准和规范的原因:
3.3 走查 (Walk Through)
规范:建议最佳做法,推荐更好方式。
实施标准和规范的原因:
- 可靠性。
- 可读性和可维护性。
- 可移植性。
3.3 走查 (Walk Through)
定义:采用讲解、讨论和模拟运行的方式进行的查找错误的活动。
注意:
3.4 走查与审查的比较
注意:
- 引导小组成员在走查前通读设计和编码。
- 限时,避免跑题。
- 发现问题适当记录,避免现场修改。
- 检查要点是代码是否符合标准和规范,是否有逻辑错误。
3.4 走查与审查的比较
3.5 评审 (Review)
定义:通常在审查会后进行,审查小组根据记录和报告进行评估。
注意:
注意:
- 充分审查了所规定的代码,并且全部编码准则被遵守。
- 审查中发现的错误已全部修改。
4.动态测试技术的运用
4.1 动态测试技术的概念
动态测试需要真正将程序运行起来,需要设计系列的测试用例保证测试的完整性和有效性。
4.2 白盒测试方法
- 白盒测试
- 黑盒(灰盒)测试
4.2 白盒测试方法
主要是逻辑驱动法和基本路径法。
语句覆盖。
判定覆盖。
条件覆盖。
判定/条件覆盖。
条件组合覆盖。
路径覆盖。
语句覆盖。
判定覆盖。
条件覆盖。
判定/条件覆盖。
条件组合覆盖。
路径覆盖。
4.3 黑盒测试方法
运行单元程序有时需要基于被测单元的接口,开发相应的驱动模块和桩模块。
驱动模块(drive):对底层或子层模块进行测试所编写的调用这些模块的程序。
桩模块(stub):对顶层或上层模块进行测试时所编写的替代下层模块的程序。
驱动模块(drive):对底层或子层模块进行测试所编写的调用这些模块的程序。
桩模块(stub):对顶层或上层模块进行测试时所编写的替代下层模块的程序。
4.4 黑盒常用方法
等价类划分法
边界值分析法 三种数据:
错误推测法 -- 正常数据
因果图法 -- 错误数据
功能图法 -- 边缘数据
另外还得考虑接口测试、性能测试、内存测试
性能分析
内存分析
边界值分析法 三种数据:
错误推测法 -- 正常数据
因果图法 -- 错误数据
功能图法 -- 边缘数据
另外还得考虑接口测试、性能测试、内存测试
性能分析
内存分析
5.调试与评估
调试与测试的对象及采用的方法有很大程度上的相似,调试还用到断点控制等排错方法,但其目的却完全不同。测试是为了找出软件中存在的缺陷,而调试是为了解决存在的缺陷。
- 软件单元功能与设计需求一致。
- 软件单元接口与设计需求一致。
- 能够正确处理输入和运行中的错误。
- 在单元测试中发现的错误已经得到修改并且通过了测试。
- 达到了相关的覆盖率的要求。
- 完成软件单元测试报告
6.单元测试的过程与文档管理
6.1 单元测试的过程
过程:
- 在详细设计阶段完成单元测试计划。
- 建立单元测试环境,完成测试设计和开发。
- 执行单元测试用例,并且详细记录测试结果。
- 判定测试用例是否通过。
- 提交《单元测试报告》。
6.2 单元测试的文档
- 《软件需求规格说明书》、《软件详细设计说明书》 ----> 《单元测试计划》
- 《单元测试计划》、《软件详细设计说明书》 ----> 《单元测试用例》
- 《单元测试用例》文档及《软件需求规格说明书》、《软件详细设计说明书》 ---> 《缺陷跟踪报告》/《缺陷检查表》
- 《单元测试用例》、《缺陷跟踪报告》、《缺陷检查表》 ---> 《单元测试检查表》
- 评估---> 《单元测试报告》
7. 单元测试常用工具简介
7.1 工具分类
静态分析工具
代码规范审核工具
内存和资源检查工具
测试数据生成工具
测试框架工具
测试结果比较工具
测试度量工具
测试文档生成和管理工具
代码规范审核工具
内存和资源检查工具
测试数据生成工具
测试框架工具
测试结果比较工具
测试度量工具
测试文档生成和管理工具
最后
以上就是干净画笔为你收集整理的【软件测试】单元测试1.什么是单元测试?2.单元测试的目标和任务3.静态测试技术的运用4.动态测试技术的运用5.调试与评估6.单元测试的过程与文档管理7. 单元测试常用工具简介的全部内容,希望文章能够帮你解决【软件测试】单元测试1.什么是单元测试?2.单元测试的目标和任务3.静态测试技术的运用4.动态测试技术的运用5.调试与评估6.单元测试的过程与文档管理7. 单元测试常用工具简介所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复