ios开发如何测试,ios测试代码

ios应用程序开发怎么进行单元测试

本文对比两个iOS开发中常见的单元测试框架:OCUnit,被官方集成进XCode 4.x版本中;GHUnit,被推荐最多的测试框架,带GUI界面。初窥两款测试框架非常相似,而上手使用就会发现其中的区别。细节上的区别使两款框架在不同角度各有优劣。

创新互联建站制作网站网页找三站合一网站制作公司,专注于网页设计,网站建设、成都网站设计,网站设计,企业网站搭建,网站开发,建网站业务,680元做网站,已为上千多家服务,创新互联建站网站建设将一如既往的为我们的客户提供最优质的网站建设、网络营销推广服务!

OCUnit

OCUnit是XCode 4.x集成的单元测试框架,OCUnit中的测试分为两类,一类称为Logic Tests,另一类称为Application Tests。Logic Tests更倾向于所谓的白盒测试,用于测试工程中较细节的逻辑;Application Tests更倾向于黑盒测试,或接口测试,用于测试直接与用户交互的接口。

• 添加单元测试

OCUnit是XCode集成的,所以其与工程的结合理应是最好的,添加到工程中的成本也理应最低。使用XCode创建新工程的流程中就有一个“Include Unit Tests”的选项(如图1),新的工程就会自动生成一个Logic Tests。

向已存在的工程中添加OCUnit Logic Tests也不复杂,只需要添加一个类型为:“Cocoa Touch Unit Testing Bundle”的Target即可(如图2)。

向已有工程中添加一个测试Target时,XCode会自动生成一个Scheme,运行单元测试用例和Build原工程需要切换不同的Scheme。如果认为切换Scheme非常麻烦,也可以在添加Target之前,在“Manage Scheme”菜单中取消“Autocreate schemes”(如图3)。

Application Tests要基于Logic Tests做一些修改。一般来说一个工程既需要Logic Tests也需要Application Tests,所以建议按照上述方法添加一个单独的Target,然后执行以下操作(如图4):

1. 在Build Settings中搜索“bundle loader”,设置为:$(BUILT_PRODUCTS_DIR)/APP_NAME.app/APP_NAME(APP_NAME是应用名)

2. 再搜索“test host”,设置为:$(BUNDLE_LOADER)

3. 在Build Phases-Target Dependencies中添加依赖,选择主程序Target

创建测试用例

OCUnit的测试用例最常用的方法有三个

1. - (void)setUp:每个test方法执行前调用

2. - (void)tearDown:每个test方法执行后调用

3. - (void)testXXX:命名为XXX的测试方法

添加Target之时XCode已经自动创建了一个测试用例类:UnitTestDemoTests,其中UnitTestDemo是工程的名字,该类中已经包含了setUp,tearDown和testExample三个方法。

通过command+n,选择“Objective-C test case class”创建一个新的测试用例类(如图5)。通过XCode创建的测试用例类是一个继承自SenTestCase(OCUnit由SEN:TE公司开发,因此基类命名为SenTestCase)的空类,需要模仿UnitTestDemoTests编写测试方法。

开发者可以自己实现无返回值,且命名规则为testXXX的实例方法,并使用框架提供的大量断言方法。

Logic Tests与Application Tests的区别主要在setUp方法,Logic Tests只需在setUp方法中初始化一些测试数据,而Application Tests需要在setUp方法中获取主应用的AppDelegate,供test方法调用。

值得注意的是,OCUnit的test bundle是侵入主应用的,因此在使用过程中要十分注意,不要让单元测试的资源覆盖主应用资源,造成诡异的Bug。

• 运行测试

由于OCUnit是集成在XCode中的框架,因此在XCode中运行也比较方便。切换到单元测试的scheme(如果与工程共用scheme则无需切换),Product-Test(或直接使用快捷键command+u),框架会自动查找所有工程中SenTestCase的子类,运行其中全部命名类似testXXX的无返回值方法。

• 测试反馈

OCUnit的失败方法会通过Console和XCode Issues两个位置反馈,通过XCode Issues可以直接定位到出现错误的单元测试代码行。Issue的提示信息就是在单元测试断言方法中定义的description。

GHUnit

GHUnit是一款Objective-C的测试框架,除了支持iOS工程还支持OSX的工程,但OSX不在本文的讨论范围。GHUnit不同于OCUnit,它提供了GUI界面来操作测试用例,而且也不区分Logic Tests和Application Tests。

• 添加单元测试

与集成进XCode的OCUnit相比,GHUnit的添加过程略显复杂。首先在上下载GHUnit的框架包,当前的For iOS的最新版本是0.5.6,解压后是一个GHUnitIOS.framework的文件夹。

打开已经存在的工程,添加一个EmptyApplication Target,并在新Target中添加刚刚下载的GHUnitIOS.framework

在Build Phases中添加非官方框架并不会把框架文件拷贝到工程目录,而是只做一个链接,所以建议在添加之前先把框架拷贝到工程目录下。

接下来用相同的方法添加框架依赖的其他库:“QuartzCore.framework”。

在Build Settings中搜索“linker flags”,设置Other Linker Flags - Debug - 添加一个支持全架构和全版本SDK的标示“-ObjC -all_load”(如图8)。

删除Tests Target中的AppDelegate(.h和.m一起删除)。修改main函数,支持GHUnitIOS,导入GHUnitIOSAppDelegate代替原来的AppDelegate,修改UIApplicationMain的参数(如图9)。

至此已经完成了GHUnit的添加,选择新建Target同时创建的scheme,直接Build and Run即可在设备或Simulator中启动一个新的App(如图10),即该单元测试的App。

[图]苹果的iOS开发者是怎样对软件兼容性进行测试

这个其实说难也不难的,IOS开发对软件兼容性测试是分步骤的:最开始是从源代码的,因为IOS形同的版本不同和屏幕的不同,所以代码编写时只需考虑这两点就行了不像安卓好要考虑品牌的一些特性,在代码编写时可以再ios模拟器先进性测试,最后在真机调试,当然你如果有开发者账号就可以直接在真机上调试了

苹果软件开发如何做精准测试

苹果iOS是由苹果公司开发的移动操作系统。苹果的Mac OS X与iOS 操作系统一样,它也是以Darwin为基础的,因此同样属于类Unix的商业操作系统。iOS 具有简单易用的界面、令人惊叹的功能,以及超强的稳定性,已经成为 iPhone、iPad 和iPod touch 的强大基础。iOS 内置的众多技术和功能让苹果设备始终备受欢迎。iOS所拥有的应用程序是所有移动操作系统里面最多的。

然而,针对苹果系统的专业测试平台和软件却非常少。目前,针对苹果系统的测试方法主要是手工黑盒测试,但黑盒测试只能完全依赖于人对软件输入、输出的判断,没有先进的智能技术对质量进行可视化的精准评估。例如:TestFlight主要针对上线前的App应用Beta测试,MQC主要支持iOS的兼容性测试、功能测试,AWS Device Farm主要侧重在自动化和性能测试方面。由于用户场景差异、环境差异等因素,很多应用上线后才会暴露缺陷。

星云测试Paw-iOS/OSX Edition云平台(以下简称Paw),是首款专门针对苹果开发与测试团队最前沿的精准化测试专业平台。它支持苹果应用从开发、迭代、维护全流程的可视化精准测试跟踪和测试分析。Paw支持苹果移动端APP应用、MacOSX系统下的各种应用软件、智能汽车软件等苹果全系列软件平台。Paw使企业级苹果应用在优化品质与运维方面,产生量级加速度。

对于敏捷开发者来说, PAW可以自动去分析苹果应用版本变更所影响的功能点的范围与影响度,使得版本更新更加省时省力。而一旦该应用出现了缺陷,来自Paw内置的测试漏洞分析系统就会起效,通过对应用的静态信息和动态分析,直接定位和摘选高风险的漏测点。如果测试时间紧迫,团队不能对实施100%的全面测试,Paw还可以直接定位和检出风险最高的缺陷,而无需对所有的模块和功能点进行逐一的排查。并且所有版本的测试数据,支持累计的合并计算。Paw将多个敏捷局部测试的数据汇总到最新代码视图上统一展示。还可以任意选择版本合并,观察任何时间节点的累积数据,进行版本对比,更快更精准的快速排除BUG。

Paw内置的软件示波器能够在测试过程中,自动分析程序运行的一些数据指标,以波形的形式进行实时输出,能够跟踪显示程序执行的逻辑块的速率指标、程序执行的条件数速率指标等。因此当程序的行为发生明显变化的时候,示波器可以很精准的分析出来,测试人员就可以通过示波器快速定位到问题所在,快速解决。示波器提供多种覆盖率分析和图形分析等,使整个测试过程可视化,精准把控每一步的测试情况,从而轻松把控产品质量。

Paw提供了一套“静态“+“动态”全景的代码逻辑结构视图,以解决测试和开发之间沟通效率低下的问题。研发人员也可以看到测试详情,即可以通过PAW的代码结构图、 控制流程图等信息进行代码的静态审查,同时可在代码结构图上直接看到代码运行的运行逻辑信息,能清晰的看到每个功能点完整的执行路径, 当鼠标悬停在某个执行路径上的条件表达式上的时候,Paw可以展示每个子条件的运行详细情况。同时它也支持自动化从代码到功能逻辑的投影分析, 它可以根据历史的运行经验数据,自动分析某个代码模块被功能点调用的情况,开发人员根据这些数据可以进行一致性的修改,避免修改某个功能 由于考虑不全而引起其他功能的缺陷。完美实现开发和测试的一体化。

开始用Swift开发iOS 10 - 24 使用TestFlight进行Beta测试

Beta测试 是在产品发布之前所进行的软件测试活动,它是技术测试的最后一个阶段,通过了验收测试,产品就会进入发布阶段。

在iOS 8 时,Apple发布 TestFlight 用于 Beta测试 。之前 TestFlight 一直是独立用户mobile app测试的mobile平台,在2014年2月,Apple收购的 TestFlight 母公司Burstly。现在 TestFlight 已经集成到 iTunes Connect 中,允许开发只通过邮件地址邀请 Beta测试 用户。

在上传app之前,必须要在 iTunes Connect 中有 App Record 。

这一步主要选择一下App分类的类别。

这一步主要添加截图、app描述、app图标、联系信息等信息

这边的App Store 图标要求是1024x1024 pixels,不能包含隐藏元素。

回到Xcode,确认版本数字与 iTunes Connect 中一致。

可以在Finder中直接复制 AppIcon.appiconset 目录替代即可。

在上传app到 iTunes Connect 之前,如要创建app包,这在Xcode 8之后已经非常容易了。

点击 Validate ,之后可能需要一段时间:

以前是最大限制2000,现在可以邀请10000名外部测试人员。外部测试用户不需要事先添加。

Beginning-iOS-Programming-with-Swift

此文是学习 appcode 网站出的一本书 《Beginning iOS 10 Programming with Swift》 的一篇记录

ios开发的app怎么测试它的稳定性

做压力测试,兼容性测试,容量测试,交叉事件测试,功能模块测试等等。

如何进行iOS 性能测试

性能测试分为两种

一种是后台服务器性能测试,通过向服务器发送请求进行性能测试,这个时候ios软件相当于前台浏览器,其实质测试的还是后台服务器性能,可以使用性能测试工具loadrunner,jmeter之类

另一种是前端app测试,这个时候测试的是app在平台上运行时资源的占用,如cpu,内存,网络,流量这一类指标,可以使用苹果的开发工具xcode自带的instrumentation进行测试,不过需要mac系统


新闻名称:ios开发如何测试,ios测试代码
文章分享:http://csdahua.cn/article/dsddopj.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流