移动软件测试,移动软件测试教程

移动软件测试,移动软件测试教程缩略图

如何制作移动app测试方案及详细流程?

如何制作移动app测试方案及详细流程?

1分钟前

1.首先是测试 资源确认及准备

(1)产品需求文档,产品原型图 ,接口说明文档及设计文档应该齐全

(2)测试设备及测试工具 的准备:IOS和Android的不同年版本的真机,以及测试相关工具的准备

2.测试用例的设计及评审

(1)根据产品需求文档,产品原型图等文档,设计客户端的一般功能测试用例

(2)测试用例评审,修改与完善,评审过后着手进入正式测试阶段

3. UI测试

(1)确保手头的原型图与效果图为当前最新版本,符合产品经理及用户需求

(2)测试过程一切以效果图为准,若用户体验方面有建议,先以邮件的形式 与产品经理确认,确认通过后,可以正式的发出用户体验方面的问题

4.功能测试

(1)APP功能测试主要依据编写的功能 测试用例进行软件功能的遍历

(2)涉及的测试主要包括基本功能测试,安装,卸载,运行测试 ,异常处理(包括网络 突然中断或者网速 过慢,机器内存不足等异常情况的处理 )

5.中断测试

(1)软件运行 过程中接电话,收短信,锁屏,闹铃,充电,收到通知提醒后在 使用软件,软件任可以 正常运行

(2)运行软件时由前台切换到后台,再切换回前台 仍能继续运行

6.兼容性及适配器测试

(1)硬件的适配 :不同手机 厂商,硬件 性能,不同屏幕大小的适配

(2)OS版本的兼容

(3)不同屏幕分辨率的适配:移动端设备的屏幕分辨率多种多样 ,如果 app没有做合适的处理可能会显示不好,甚至影响功能的操作

(4)兼容性测试必须放在 一定数量的真机上运行 ,由于真机类型较多,兼容性测试 的时候可以选取典型的几种运用较多的真机进行兼容性测试

7.性能测试

(1)客户端性能测试注重安装卸载时间,启动时间,页面加载时间,主要功能占用的床铺,内存,流量,耗电量 等,以及与同类产品相比较是否具有优势

(2)至于服务器端的性能,主要利用接口对服务器进行加压,重点关注相应时间,吞吐量,并发数,事务通过率等

8.稳定性测试

(1)安卓app的稳定性常常使用 monkey进行测试,通过随机事件流模拟个人操作,对检查程序的内存溢出,空指针有很大的作用

9.检测分析及测试报告输出

以上各种形式的APP测试结束后,应该形成完整的分析及报告文档,输出给相关人员

TestBird

移动应用自动化测试主要类型有哪些?

移动应用自动化测试主要类型有哪些?

互联网产品的迭代速度远高于传统软件,尤其是移动APP不但更新频繁,还需要在不同硬件、系统版本的环境下进行大量兼容测试,这就给传统测试方法和测试工具带来了巨大挑战。为满足产品敏捷开发、快速迭代的app测试需求,自动化测试逐渐流行起来。自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。

自动化测试的优点很多,简单罗列几条:避免重复工作、提高测试效率、保证每次测试地一致性和可重复性、更好的利用资源、节省人力资源、增加软件信任度、缩短软件开发测试周期让产品更快投放市场、提高软件测试的准确度和精确度,添加软件信任度。

并不是任何应用产品都适合做自动化测试,选择自动化测试之前必须确认你的项目符合以下要求:软件需求变动不频繁、产品更新维护周期长、比较频繁的回归测试、自动化测试脚本可重复使用,否则光是准备大量的测试脚本就足以让测试人员崩溃。

自动化测试的主要类型

1、基于代码的自动化测试,在方法上可以分为白盒测试和灰盒测试

白盒测试的特点:

白盒测试深入被测代码的逻辑细节

白盒测试关注代码覆盖率和运行路径

白盒测试通过测试桩(Stub,Mock)实现代码隔离

白盒测试通过测试驱动(Test Fixture)执行测试用例

灰盒测试的特点:

灰盒测试关注接口与参数,不关注代码实现

灰盒测试适用白盒测试用例设计方法

2、基于界面的自动化测试

利用代码或工具模拟鼠标和键盘的操作

界面级自动化测试的核心是对象识别和操作

工具比较多,如:Selenium/QTP等

3、协议级自动化测试

代码级自动化测试更多的用于服务端

界面级自动化测试更多的用于客户端

协议自动化测试用于测试客户端和服务端的通信,弥补代码级和界面级的不足

协议级自动化测试更适合于可靠性、安全性、性能等测试

移动app自动化测试工具的选择

APP:

1、Android:

UIAutomator 谷歌官方提供,只能做原生APP的自动化测试,语言java

Monkey 理论上不算UI自动测试框架,更大作用测试app的稳定性

MonkeyRunner 可录制,但是脚本根据坐标轴定位,兼容性差

Robotium 使用的人较多,文档也比较齐全,也支持webview,不支持跨进程, 语言java

Appium 支持Hybrid app,也支持跨进程,可以用众多语言编写脚本java,ruby,python,c#……目前不支持安卓toast的获取

Calabash 语言Java ,底层Robotium 同样不支持跨进程

2、IOS

UIAutomation 苹果自家的

Appium 同时支持android, 提供的api也基本一致,代码复用率高

Calabash 同时支持android, 提供的api也基本一致,代码复用率高

TestBird

对移动APP测试,有标准的测试流程吗?

对移动APP测试,有标准的测试流程吗?

测静态还是功能?静态扫代码,功能根据需求白皮书测试,采用人工方式或借用工具.

移动app如何进行自动化和探索性测试?

在测试设计时最主要依据的就是测试金字塔的测试结构。如果在项目临近发布才开始测试并发现缺陷,这样修复缺陷的成本就会很高,项目的进度也会很不确定。所以,就开发阶段来说,如果把测试分层,在不同的开发阶段都进行测试,能很大程度上缓解这些问题。

测试分层的优势有以下几点:

1.测试的成本

单元测试的开发成本要远低于用户界面测试,如果在用户界面的测试中发现缺陷,修复缺陷的成本也是远高于通过单元测试和组件测试的成本。

这里的成本不单纯是开发人员修复缺陷所需要的资源和时间,还包括缺陷修复后测试人员进行回归测试所需要的资源和时间,以及项目延期等其他项目成本。

2.测试的效率

单元测试能很快地验证很小的功能或者方法,且运行时间短,反馈更为及时。

3.缺陷定位的难易

单元测试失败后,测试人员能够很容易知道是被测试的特定功能或者方法不正确;而如果是用户界面的缺陷,测试人员就需要花费更多的时间来进行排查,确定出现问题的功能模块,最后再进一步发现需要修复的功能和方法。

4.反映真实的业务需求

单元测试无法从全局观的角度了解系统模块之间的交互,也无法通过方法的组合帮助用户完成业务目的;而由于用户界面的测试描述的是从用户角度出发的用户使用场景,因此可以更容易地阐述用户的行为和业务需求。

5.更加接近业务

用户界面测试描述测试的层级更高,所以更接近业务;单元测试描述测试的层级更具体,所以更接近于实现。

从测试金字塔分层来看,不同层级的测试都很有必要,而我们也需要根据不同测试所处的层级及其特点来设计测试。

另外,实际测试设计时采用的测试金字塔具有更多更细节的分层。高层级的测试和低级别的测试相比,抽象程度更高,测试运行的时间更长,与更多的系统和模块有交互。反馈的周期更长,接近缺陷的成本也更高。

单元和组件测试的测试驱动开发TDD的基本循环步骤是:

1,测试失败;

2,测试通过;

3,重构;

由于测试驱动开发是针对单元和组件测试所使用的开发技术,所以在进行单元和组件测试时,测试人员只需要了解并评审开发人员在单元和组件测试中覆盖了哪些场景,并不需要完成其实现。

在测试金字塔的最高层级,是对于App的“探索性测试”。

1.探索性测试是针对于脚本测试提出的,但是两者并不是针锋相对的,而是相辅相成的。探索性测试,脚本测试和自动化测试之间可以相互转化,相辅相成。

2.探索性测试要求测试人员在执行测试时,如同用户旅程一样,首先设定好测试目标,然后规划出一段时间,使用启发式测试策略模型,通过测试人员的创造性思维,采取不同的测试路径,来达到测试目标的测试方法。

3,在探索性测试执行中,为了提高探索性测试的效率,并且能够重现所发现的问题,可以采用基于测程的测试管理。在App测试中也可以使用SBTM技巧进行探索性测试。

4,针对App测试,测试人员需要测试在低层级测试中不能覆盖的对于页面跳转和不同页面间数据流动和展示等需要涉及到多个页面的流程操作。

5,当进行App的探索性测试时,选择在真实设备上运行可以提高测试的真实性和加深对于用户使用场景的理解,从而不断促进探索性测试的发展和深入。

TestBird

移动app的UI和接口自动化测试怎么进行?

接口自动化测试:

接口自动化测试在后来出现,但现在大部分的互联网公司都喜欢用它作为测试工作辅助。原因很简单,UI自动化的缺点它都能进行弥补,但同时它也存在一个最大的问题:用户操作真实性不强。其实个人觉得接口自动化测试和UI自动化测试可以产生互补的测试。因为我们做接口测试时更多的是根据开发的技术进行测试HTTP\SOCKET等等(接口测试基本上不需要用到什么工具进行,如果一定需要的话建议是用SOAPUI),而非真实的进行对系统进行操作验证系统是否存在问题。

APP自动化测试:

APP的自动化测试应该也要分为UI和接口自动化测试,接口测试与上面说的一样都是技术层面上的事情就不说了。那么还是关注APP的UI自动化测试,APP的自动化测试工具方面也有很多,但也都不成熟,我选择了APPIUM,主要考虑到的它可以进行跨平台测试,但最大的问题还是不稳定。所以也不敢大面积的布置其自动化测试用例。APP刚才说过了主要分为NATIVE和WEBVIEW,NATIVE的对象还好获取,像android可以直接使用uiautomatorviewer进行获取。而WEBVIEW就比较麻烦,不能直接获取要么就让开发提供给你,要么就直接下代码自己找,还有就是通过google的一个方法进行获取…….

说了一下这三种技术的一些内容,其实我想说不管什么类型的自动化测试,我们测试的过程中都需要和开发进行紧密的结合,但测试优于开发的测试思想。另外这三种技术我们在实际的应用中更应该将其进行混合的测试:

UI(WEB)自动化测试走主流程的测试、接口自动化测试走全面的测试:先布置接口的自动化测试用于测试和回归测试,特别在敏捷测试中,接口自动化测试应该占主体。后布置UI自动化测试用于住流程的回归测试。

UI(WEB)自动化测试与APP自动化测试结合:需要一个自动化测试框架的协调,可以进行UI自动化测试到APP接口层的长流程场景自动化测试,也可以进行UI自动化测试到APPUI层的长流程场景自动化测试。

接口自动化测试与APP自动化测试结合:其实和UI与APP自动化测试长流程的交换一样的原理,需要自动化测试框架的支撑。先进行接口测试用例的执行后进行APP的UI和接口测试的用例执行。

TestBird

移动应用如何进行压力和性能测试?

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试. 负载测试和压力测试都属于性能测试,两者可以结合进行. 负载测试,通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力.在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力. 负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行. 压力测试,也称为强度测试、负载测试.压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定性等.

移动app性能和安全性测试需要注意哪些?

测试App连接网络的速度

一般采用在模拟Mock环境下进行测试,测试方法更多使用的是在App的log中添加时间戳的方式计算时间,例如使用Apple公司提供的iPhone Configuration Utility中Devices的Console查看App的log。

测试App在不同网络速度下操作的流程程度

测试可以使用在App的log中添加时间戳方法验证,也可以通过使用App的直观感受来验证App性能带给用户的体验。

测试App对于前台页面渲染的性能

测试可以使用在App的log中添加时间戳方法验证,也可以通过使用App的直观感受来验证App性能带给用户的体验。特殊的是,当App中使用WebView,测试人员可以快速地刷新当前页面或者在使用WebView的页面间进行切换,来验证App是否有性能问题甚至发生崩溃。

测试App操作数据库的性能

iOS操作系统在设备本地存储App数据时使用的是CoreData或者SQLite数据库;Android操作系统在设备本地存储App数据时使用SQLite数据库。如果操作的数据量很大,便有可能出现App的性能问题,此时App测试就很重要,对数据库操作的功能进行大数据量的测试。测试人员也可以和开发人员一起,遵照Web端数据库优化的一些原则,如数据库启用事务,使用索引,数据的批量操作等优化方法,提高数据库的性能。

测试App的会话session是否有过期设置

对于App的会话session是否有过期设置的测试,可以在App运行中切换到别的App或者桌面一段时间,然后再次进入App,看App是否需要输入密码等验证信息。值得注意的是不同App的合理session过期时间不一样,测试人员需要和产品经理、开发人员等确认之后制定出合理的测试用例。

测试App请求中是否包含了明文的用户信息

包含了明文的信息,如同App中标示用户应该使用UUID或GUID等转码后的信息,而不是直接的用户电话号码或账户信息,当然更不应该明文传送这些信息。测试人员可以使用Apple的iPhone Configuration Utility,Android SDK自带的DDMS,Charles和Fiddler这些工具来监控App发送的请求。

测试App的请求是否加密

一般App请求可以使用HTTP,但是关系到用户敏感信息的请求,需要使用HTTPS等加密传输。

测试SQLite数据库的存储是否安全

测试人员可以通过ADB连接到root的Android蛇别,并使用SQLite来查看具体的数据库保存的信息。显然,把用户实际的登录信息明文存储在数据库文件中是不安全的,最好不要存储,如果必须存储,最好对这些信息加密后再存储。

测试App使用WebView的安全性

由于WebView的请求和在Web端请求数据是一样的,所以任何适用于Web端的攻击方式和漏洞对于WebView来说都是通用的。

TestBird

求移动app的冲突测试流程?

交叉事件测试:在APP测试中又叫事件冲突测试,是指一个功能正在执行过程中,同时另外一个事件或操作对该过程进行干扰测试.如:App在前/后台运行状态时与来电、文件ixaz、音乐收听等关键运用的交互情况测试等.包括:多个App同时运行是否影响正常功能.App运行时前/后台切换是否影响正常功能.App运行时拨打/接听电话.App运行时发送/接收信息.App运行时发送/收取邮件.App运行时切换网络(2G/3G/WIFI).App运行浏览网页.App运行时使用蓝牙传送/接收数据.App运行时使用相机、计算器手机自带设备.App运行时插拔充电器.TestBird

对于移动应用的测试问题,目前感觉效率不高,怎么进行敏捷测试,更快捷的进行并完成测试?

通过自动化测试可以极大的提升回归测试、稳定性测试以及兼容性测试的工作效率,在保障产品质量和持续构建等方面起到举足轻重的作用.特别是在敏捷开发模式下,自动化测试是必不可少的. TestBird – 手游和App自动化测试平台

移动app和小程序在测试上重点是是什么?

从测试方面来说,测试手段肯定是有变化的 比如,app测试上会更重视app 的配适问题,也就是兼容性测试,其次才是app功能测试等;但小程序是基于微信的,那么它所配适的就不是设备了,更多的应该是ui和功能问题测试,其次是性能测试TestBird