扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
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》 的一篇记录
(一)内部测试
测试人数上限最多100人。
第一步:构建可以使用的版本
第二步:添加测试人员
在“用户和访问”按要求添加人员
注意添加的测试人员的邮箱必须为appID
然后在内部测试下创建内部测试群组,可以往该群组里指定刚刚添加的测试人员测试该版本。
然后可以通过邮件发送测试邀请
(二)外部测试
在进行外部测试之前必须先填写测试信息和拥有可构建的版本才会出现“外部测试”
测试人员上限为10000
外部测试需要经过版本审核
第一步:填写测试信息
2、构建版本
3、版本构建完了以后会出现“外部测试”,可以和“内部测试”一样添加测试群组,通过邮件发送测试邀请
4、版本通过审核后,可以开启公开链接,用户可以通过点击链接通过testflight安装我们提供的版本。
a)开发者账号是必须的, 登录itunesconnect.apple.com, 创建相应的app
b)上传你的ipa文件到itunesconnect中。
c)进入到iTunes Connect 点击 我的APP 进入如下页面,
点击“TestFlight” 进入测试发布界面:
在上述图片第一行中你会看到有内部和外部之分, 这里要说明一下: 测试分两种 内部测试和外部测试, 本次讲解内部测试
d)首先在itunes Connect首页的用户和职能中加入iTunes Connect用户
点击用户旁边的“+”按钮出现如下界面,输入相关信息
完成输入后点击 下一页 会让你设置职能(就是一些权限), 我只选择勾选技术人员, 下一步-保存, 这样apple就会发送一封邮件到你的邮箱, 根据相应链接让你登录iTunes connect, 登录成功并授权之后在刚才的 iTunes Connect用户列表中就会出现你的邮箱账号了. 注意:该邮箱被授权成功后自动变成Apple ID了, 也成为了iTunes connect的用户, 当它登录后看到的模块就是刚才你授权给他的.
e)完成添加后, 在TestFlight添加测试版本的测试者
点击内部测试人员旁边的“+”按钮进入如下界面
勾选刚才你添加的用户。点击添加按钮即可完成。同时该用户邮箱就会收到一份TestFlight测试邀请, 点击链接就会自动打开TestFlight App(前提必须安装TestFlight App, ios8.0及以上), 他就会看到你此版本的app了,进行安装即可进行测试工作。
有,有存在bug上的差别还是一样的东西。
发布时间与更新频率不同:公测版、正式版的更新频率也不同。其中iOS13测试版和公测版更新频率比较一致,一般是一周或两周左右更新一次版本,而正式版则往往需要经历一个月,甚至更长的时间。
2、针对的用户群体不同:iOS13公测版与测试版类似,只不过相比测试版,发布时间更晚一些,相当于前期修复一些Bug之后,再放出来的版本,稳定性相比测试版略高一些,随着后续测试版和公测版折叠性非常高,往往是同一时间发布,或者仅间隔一两天,两者的差异其实并不大,主要针对的是尝鲜和备用机用户群体。
3、升级方式略有不同:无论是iOS13测试版、公测版和正式版,都可以通过刷机进行升级。稍显不同的是iOS13测试版和公测版在通过OTA在线方式升级的前,需要安装描述文件,而正式版则不需要安装描述文件。
扩展资料:
注意事项:
程序闪退问题:测试应用程序在Wi-Fi、3G(4G)和无网络的状态下的状况,网络测试主要测试在网络状态不好或者突然断网的情况下,app是否会闪退。
业务处理问题:在网络不稳定(3G网络环境下常见)时,测试app需要网络支持的功能是否能够正常实现。如果不能正常实现,程序是否会提示用户当前网络状况不佳。
其次重点测试程序是否出现闪退情况(程序一旦出现闪退,绝对无法上线),如果程序没有闪退,则关注操作后返回的提示信息和后台数据有无错误。
参考资料来源:百度百科-iOS公测版
参考资料来源:百度百科-iOS
参考资料来源:人民网-苹果或允许用户删除预装应用
本文对比两个iOS开发中常见的单元测试框架:OCUnit,被官方集成进XCode 4.x版本中;GHUnit,被推荐最多的测试框架,带GUI界面。初窥两款测试框架非常相似,而上手使用就会发现其中的区别。细节上的区别使两款框架在不同角度各有优劣。
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。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流