紫影基地

 找回密码
 立即注册
查看: 286|回复: 0

iOS应用程序测试教程:手动和自动化

[复制链接]
阅读字号:

48

主题

55

帖子

2927

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2927
发表于 2021-10-28 15:27:01 | 显示全部楼层 |阅读模式
iOS应用程序测试教程:手动和自动化                            
                                                 什么是iOS应用测试? iOS应用程序测试是在真实的苹果设备上测试iOS应用程序,以检查它是否在特定的用户操作(如安装时间、用户界面、用户体验、外观、行为、功能、加载时间、性能、App Store列表、操作系统版本支持等)上正常工作的测试过程。
为什么选择iOS应用测试? iOS App测试是必需的,因为iOS是苹果的移动应用平台,于2007年6月29日发布。iOS和iOS应用程序只能安装在Apple设备上,因此,iOS应用程序必须与iOS版本和iOS设备兼容。
  这是开发人员创建iOS应用程序时的常见问题。 在设计和实现上投入多少时间并不重要,错误是不可避免的,错误也会出现。如下图所示。
应用程序崩溃 最令人沮丧的问题之一是,在使用苹果设备时,是应用程序在执行期间可能频繁崩溃。很多时候,应用程序崩溃是因为有一些错误或内存应用程序中的漏洞。
应用程序不兼容 iOS应用程序可以在当前的iOS版本上完美运行,但如果升级iOS,可能会因为不兼容而无法工作问题。
安全漏洞 iOS中存在一个安全漏洞,使得黑客能够攻击iOS设备,窃取私人信息。到目前为止,严重的iPhone在不同的IOS中发现安全漏洞版本。
内存泄漏 内存泄漏是程序不再使用的已分配内存块。内存泄漏会导致iOS应用程序崩溃。它们是错误,应该始终修复。
在本教程中,将了解-
  •   为什么要进行iOS测试?
  •   iOS测试思路图
  •   iOS测试报告
  •   iOS测试策略
  •   自动化测试
  •   使用OC Unit进行单元测试
  •   使用UI自动化进行UI测试
  •   手动测试
  •   探索性测试
  •   用户测试
    •     概念测试
    •     可用性测试
    •     测试版测试
    •     A/B测试
  •   iOS测试最佳实践
  •   关于iOS测试的误区
iOS测试思路图   如上图所示,iOS测试思维导图显示了测试人员在iOS上进行测试时需要考虑的所有事项。
iOS应用程序测试报告 此核对表是专门为测试iOS移动应用程序的特性而设计的。显然,它只测试通用应用程序特征,而不测试其功能。
  •   检查应用程序在设备上的安装时间。确保在可接受的时间内安装该应用程序。
  •   安装应用程序后,检查应用程序是否有应用程序图标和名称。此外,确保图标和名称都是不言而喻的,以反映应用程序的核心意图。
  •   启动应用程序并检查是否显示闪屏。
  •   检查闪屏超时和加载主屏幕时间。HO还检查内容是如何加载到主屏幕中的。
  •   应用程序的主要功能应该立即显现出来。它应该不言而喻。
  •   检查应用程序是否同时支持横向和纵向。应该相应地设置应用程序的用户界面。
  •   在没有互联网连接的情况下,启动应用程序。应用程序在启动时可能会崩溃,或者可能只显示一个空白屏幕。
  •   如果应用程序使用位置服务,则检查是否显示位置权限告警。此告警应该只向用户提示一次。
  •   如果应用发送推送通知,则检查是否显示推送通知权限预警。此告警也应该只向用户提示一次。
  •   启动应用程序,退出并重新启动。检查应用程序是否按照设计/期望运行
  •   通过轻触设备的主页按钮关闭应用程序,然后再次打开应用程序。检查应用程序是否按设计/期望方式工作。
  •   安装后,检查该应用程序是否列在iPhone的设置应用程序中。
  •   在应用程序上线后,检查是否可以在“App Store”中找到该应用程序。该应用程序将有受支持的操作系统版本。因此,确保该应用程序可以在那些受支持的操作系统版本设备的“应用程序商店”中找到。此外,应用程序不应列在不受支持的操作系统版本设备的“应用程序商店”中。
  •   检查应用程序在后台运行时是否进入休眠模式,以防止电池耗尽。
  •   如果应用程序性能较慢或正在加载内容,检查是否有进度状态图标(“正在加载…”)优选地,具有特定消息。
  •   在设备搜索栏中使用其名称搜索应用程序。检查应用程序是否已列出
  •   检查执行标准操作的按钮在APP中的外观是否没有改变(例如:刷新、组织、垃圾桶、回复、后退等)
  •   检查标准按钮是否未用于正常使用的其他功能
iOS测试策略 下图介绍了一些常见类型的IOS测试策略。
自动化测试 自动化测试是iOS测试的最大优势。它实现了自动化测试的好处,如下所示:
  •   自动化测试可以在多个设备上运行,从而节省时间
  •   自动化测试可以针对SDK。可以在不同的SDK版本上运行测试
  •   自动化测试提高了测试效率,节省了软件开发成本
  •   有许多开源测试框架支持iOS上的自动化测试
使用OCUnit进行单元测试 当最初的iOS SDK发布时,它缺乏单元测试功能。因此,苹果在iOSSDK版本2.2中重新推出了OCUnit单元测试解决方案。 OCUnit是Mac OS中的C-Objective测试框架。OCUnit框架的最大优势是可以紧密集成到XCode开发环境中,如下所示。
  OCUnit的一些优势如下图所示。
使用UI自动化测试   UI Automation是Apple Inc.提供的JavaScript库,可用于在真实设备和iOS模拟器上执行自动测试。使用UI Automation,不仅可以在模拟器上自动测试应用程序,还可以在真实设备上自动测试应用程序。
UI自动化带来以下优势:
  •   减少手动测试的工作量
  •   使用较少的内存来执行所有测试
  •   简化UI测试过程(只需按下一个或三个按钮,即可完全运行测试套件)
UIAutomation Instrument通过脚本工作,脚本是用JavaScript编写的。它模拟目标iOS应用程序上的用户事件。
  UI自动化缺点与优点
         UI自动化          优点          缺点     
           1.          很好地支持手势和旋转          它不是开源的,开发人员对它的支持较少     
         2.          可以在设备上运行UI自动化测试,而不是唯一的模拟器。          无法与其他工具很好地集成     
         3.          它由JavaScript开发,是一种流行的编程语言。         
     上图代表了UIAutomation框架中的一些常见类。
  •   UIAElement类是Automation上下文中所有用户界面元素的超类
  •   UIATarget类表示被测系统的高级用户界面元素
  •   UIALogger类提供有关检索功能的测试和错误信息
  •   UIAActivityView类允许访问和控制应用程序中的活动视图。
  •   UIAActionSheet类允许访问和控制应用程序中的操作表。
  •   UISlider类( 用户事件操作 )
  •   UIAButton类( 用户事件操作 )
  •   UIAKey类 ( 用户事件操作 )
  •   UIAKeyboard类 ( 用户事件操作 )
其他自动化测试框架
  •      MonkeyTalk:    一个自动化测试iOS、Android、HTML5和Adobe应用程序的工具。它是用于管理和运行测试套件的集成环境
  •      Frank:    iPhone和iPad的自动验收测试框架
  •      KIF:    是一个iOS集成测试框架。它通过利用操作系统为视力有障碍的人提供的辅助功能属性,实现iOS应用程序的轻松自动化。
手动测试 探索性测试 这是一次没有正式测试计划的测试。探索性测试是一种低成本的测试方法,但它可以忽略iOS应用程序中的潜在错误。
探索性测试优缺点对比
         探索性测试          优点          缺点     
           1.          需要的准备工作更少,及早发现严重的错误。          对测试人员的技能要求很高     
         2.          不需要测试计划加速错误检测。          测试覆盖率很低。它不能保证所有需求都经过测试。     
         3.          大多数错误都是通过某种探索性测试及早发现的          缺少测试文档      用户测试 用户测试是iOS上的一种手动测试。此测试的目的如下图所示,显示了四种类型的用户测试
概念测试 在向市场发布应用程序创意之前,评估用户对该应用程序创意的反应。iOS上的概念测试流程如下
可用性测试 可用性测试是对iOS应用程序易用性的测试。在iOS测试中,可用性测试可以被记录下来,以便记住或与他人分享。 有一些工具支持iOS上的可用性测试。
  Magitest, 一个针对网站和应用程序的简单iOS可用性测试。
  Delight.io, 此工具可以捕获iOS应用程序上的真实用户交互。
Beta测试 Beta测试是与真实数据的集成测试,以获得用户的最终反馈。要分发应用程序进行Beta测试,必须按照以下步骤操作。
    前提条件: 如果正在对最终候选版本进行Beta测试,确保在将应用分发给测试人员之前对其进行验证。
  通过服务发现测试 :可以从测试员那里收集设备ID,并将其添加到测试中心
  创建ad-hoc分发: ad-hoc分发允许测试人员在他们的设备上运行应用程序,而不需要XCode。此步骤包括2个子步骤
  •   创建分发证书
  •   创建临时调配配置文件
  等待测试员反馈 :测试员进行测试,并将bug报告发送给。在应用程序发布后,可以从iTunes connect获取报告。
A/B测试 A/B测试是评估iOS应用程序有效性的最有力的方法之一。它使用两种设备A和B进行随机实验。
  A/B测试主要包括三个步骤
  •   配置测试:准备了2个版本的iOS应用程序(A和B)和测试指标
  •   测试:在设备上同时测试2个以上版本的iOS应用程序。
  •   分析:测量并选择更好的版本进行发布
以下工具支持iOS上的A/B测试。
  •      Rise:    iOS和Android的A/B测试。它可以集成到iOS应用程序中,使测试过程更快。
A/B测试的最佳实践
  •   定义测试的目标。没有靶子,任何测试都是没用的。
  •   观看最终用户首次使用应用程序
  •   每个更新仅运行一个测试。在进行测试时可以节省时间
  •   仔细监控测试。可以通过监控测试来学习经验。
iOS测试最佳实践 以下是在组织iOS应用程序测试时应该知道的一些提示
  •   在真实设备上测试应用程序以了解真实的性能
  •   改进测试方法,因为传统测试方法已不足以覆盖iOS测试的所有测试
  •   使用控制台日志测试iOS应用程序。这是一项iOS功能,包括来自设备上每个应用程序的信息。
  •   使用内置屏幕短命令记录应用程序错误。它帮助开发人员了解错误是如何发生的。
  •   在测试应用程序时,崩溃报告是很有用的工具。它们可以检测崩溃并记录详细信息,因此可以轻松地调查错误。
关于iOS测试的误区 本节考察iOS测试的几个流行的神话和现实
  在iOS和Android上测试应用程序是一回事。
iOS和Android是由苹果公司和谷歌开发的两个平台。等测试环境、测试框架、编程语言等。
  在iOS模拟器上测试应用程序就足够了。
iOS模拟器不够强大,无法测试应用程序。因为IOS模拟器有一些限制:
  •   硬件限制(摄像机、麦克风输入、传感器)
  •   应用程序的UI可能看起来比在设备上运行更快、更流畅
  •   API限制
  •   某些框架不受支持(Media Player、Store Kit、Message UI..)
每个人都会在应用程序商店下载我的应用程序,因为它有很多功能。应用程序具有的功能越多,可能得到的错误就越多。如果应用程序仍然有很多缺陷,没有用户会下载它。
        
         

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|紫影基地

GMT+8, 2025-1-12 13:10 , Processed in 0.082971 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表