iOS开发——单元测试

本文介绍了iOS开发中的单元测试概念,如模块测试、代码覆盖率和测试内容,包括模块接口、局部数据结构、路径测试、错误处理和边界测试。此外,讨论了测试环境、测试方法,如用例设计和测试优化,以及测试评估。最后,讲述了测试实施过程,包括使用Xcode自带的单元测试框架UnitTest,以及常用的断言方法,并提到了OCMock和GHUnit这两个测试工具。
摘要由CSDN通过智能技术生成

单元测试

闻名不如见面!在某技术交流群里问了下iOS开发的人,貌似写单元测试的程序猿不多,查了些资料写了demo,发现单元测试还是挺有用的,第一次用就确实测试出了运行成功语法没错,但是存在问题的方法!初次见面还是印象不错,那还是从概念开始深入认识吧

一.概念

单元测试又称模块测试,属于白盒测试,是最小单位的测试。模块分为程序模块和功能模块。功能模块指实现了一个完整功能的模块(单元),一个完整的程序单元具备输入、加工和输出三个环节。而且每个程序单元都应该有正规的规格说明,使之对其输入、加工和输出的关系做出名明确的描述。

覆盖率:代码的覆盖程度,一种度量方式。针对代码的测试覆盖率有许多种度量方式,定义如下:
语句覆盖(StatementCoverage):也称为行覆盖(linEC),段覆盖(segmentcoverage)和基本块覆盖(bAS)。它度量每一个可执行语句是否被执行到了。icblockcoverageoverage
判定覆盖(DecisionCoverage):也被称为分支覆盖(branchcoverage),所有边界覆盖(all-edgescoverage),基本路径覆盖(basispathcoverage),判定路径覆盖(decision-decision-path或DDPtesting)。它度量是否每个BOO型的表达式取值true和false在控制结构中都被测试到了。

二.测试内容

单元测试的对象是软件设计的最小单位——模块或函数,单元测试的依据是详细设描述。测试者要根据详细设计说明书和源程序清单,了解模块的I/O条件和模块的逻辑结构。主要采用白盒测试的测试用例,辅之以黑盒测试的测试用例,使之对任何合理和不合理的输入都能鉴别和响应。要求对所有的局部和全局的数据结构、外部接口和程序代码的关键部分进行桌面检查和代码审查。在单元测试中,需要对下面5个方面的内容进行测试,也是构造测试用例的基础。

1.模块接口

正确地输入和输出:

(1)模块及其子模块,输入及其输出的行参实參在个数、属性、顺序上是否匹配;

(2)全局变量的定义在各模块中是否一致;

(3)限制是否通过形式参数来传送。

2.局部数据结构测试

(1)检查不正确或不一致的数据类型说明;

(2)使用尚未赋值或尚未初始化的变量;

(3)错误的初始值或错误的默认值;

(4)变量名拼写错误或书写错误;

(5)不一致的数据类型。

3.路径测试

对基本执行路径和循环进行测试,查找错误计算及其错误控制流

常见的不正确的计算有:

(1)运算的优先次序不正确或误解了运算的优先次序;

(2)运算的方式错误(运算的对象彼此在类型上不相容);

(3)算法错误;

(4)初始化不正确;

(5)运算精度不够;

(6)表达式的符号表示不正确等。

常见的比较和控制流错误有:

(1)不同数据类型的比较;

(2)不正确的逻辑运算符或优先次序;

(3)因浮点运算精度问题而造成的两值比较不等;

(4)关系表达式中不正确的变量和比较符;

(5)“差1错”,即不正确地多循环或少循环一次;

(6)错误的或不可能的循环终止条

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值