1703952172
1703952173
MVVM,让视图逻辑和业务逻辑完全分离,View层专注展示,ViewModel层专注业务,容易并行开发,优点是业务逻辑集中、模块结构相对统一、好维护、好上手,单元测试可以做到ViewModel层,不再跟UI纠缠不清,模块的复用度也更高。跟传统的MVC模式相比,MVC中的C不可避免地越来越胖,视图逻辑和业务逻辑混杂,导致各种问题,如单元测试不好做、开发不容易并行、模块结构不统一,导致维护成本高、新人上手困难,比如视图上几个控件联动,有用通知实现的,有用观察者实现的,也有手写联动代码的,比较混乱。
1703952174
1703952175
React Native,是Facebook在“React.js Conf 2015”大会上,推出的基于JavaScript的开源框架。它解决的问题是,只要学习一种框架,就能够在iOS、Android等平台上进行应用开发,真正做到“Learning once, write anywhere”,大家厌烦了各种各样的编程语言,如果有一种语言真的能够统一移动开发领域,对于所有人都是好事。
1703952176
1703952177
React Native结合了Web应用和Native应用的优势,可以使用JavaScript来开发iOS和Android原生应用。在JavaScript中用React抽象操作系统原生的UI组件,代替DOM元素来渲染等。
1703952178
1703952179
React Native使你能够使用基于JavaScript和React一致的开发体验在本地平台上构建世界一流的应用程序体验。React Native把重点放在所有开发人员关心的平台的开发效率上,开发者只需学习一种语言就能轻易为任何平台高效地编写代码。Facebook在多个应用程序产品中使用了React Native,并将继续为React Native投资。
1703952180
1703952181
国内多家互联网公司,也跟进了这一技术,将它应用到App开发当中,如图8-5所示,天猫移动端,就在多个应用模块中,采用了React Native。
1703952182
1703952183
1703952184
1703952185
1703952186
图8-5 天猫移动端ReactsNative应用
1703952187
1703952189
8.1.3 移动应用怎么测试
1703952190
1703952191
移动应用测试,有别于PC端应用测试的地方是,移动端应用有着更复杂的客户环境,因为用户的手机型号是种类繁多的,测试的时候要兼顾各厂家机型、操作系统版本等问题,这一节里,我们侧重在这方面,跟大家做介绍。
1703952192
1703952193
1.界面测试
1703952194
1703952195
首先,界面显示内容的检查。要关注完整性、一致性、准确性。完整性,指的是数据长度自适应,或者截断处理;一致性,即同一数据源时,保证一致;准确性,所有字段都有其明确意义。
1703952196
1703952197
其次,提示信息的检查。某些重要信息在输入、修改、删除时应有“确认”提示信息,同时有“取消”来撤销误操作;无网络时操作,给出友好提示;提示语通俗易懂,具有一定的指导性;页面切换数据加载时的动画提示。
1703952198
1703952199
再次,界面易用性的检查;在某些编辑页面,键盘展开和收起,键盘上字符是否符合编辑要求;按钮可点击、不可点击状态;用户可点击的触控区域合理。
1703952200
1703952201
最后,界面处理的检查。屏幕旋转是否影响界面布局,界面切换和跳转符合交互设计等。
1703952202
1703952203
2.功能测试
1703952204
1703952205
App杀进程后启动,进入初始状态,运行无异常;App前后台切换无异常;App运行中锁屏与解锁功能无异常;App运行中网络切换:Wi-Fi与移动网络(2G,3G,4G)时无异常;App网络较差环境下请求接口超时有提示;App运行中有来电或者消息推送时,操作无异常;App用到系统定位、相机和通讯录时,请求用户授权;系统设置不同时区、日期时间、语言环境时,查看App功能是否正常;App支持自动登录:用户在不主动退出账户的情况下一直处于登录状态;请求数据时自动登录成功后操作正常;App根据业务规则和数据交换情况,有些地方支持手动刷新,返回有些页面也需要刷新数据;App根据数据展示部分的逻辑,有些地方实时更新,有些地方需要缓存,然后定时更新;App不同系统版本下控件、动画效果、功能正常;在请求数据时允许/禁止用户做某些操作。
1703952206
1703952207
3.联合测试
1703952208
1703952209
由于客户端、接口和H5之间的依赖关系,跟客户端相关的接口和H5上线一定要考虑到客户端。由于“客户端发出之后不可覆盖,只能升级版本”的特殊性,要求接口和H5上线的宗旨是保证已发布客户端的稳定。因此,接口和H5上线应该注意以下几种情况:
1703952210
1703952211
接口/H5主动上线,与客户端联测。验证已发布版本的客户端,客户端验证通过后上线;客户端验证不通过时,必须修改接口来保证已发布客户端的质量。 客户端和接口/H5上线。接口考虑是否需要做版本控制;接口/H5上线应该保证已发布客户端的质量;接口/H5需要在新版本客户端发布之前上线。 4.兼容测试
1703952212
1703952213
系统版本主要是iOS和Android,其中iPhone客户端需要兼顾iOS5、6、7、8;Android客户端需要兼顾分辨率、iPhone3.5寸和4.0寸屏幕。客户端版本,包括正在开发中版本和已发布版本,机型包括Android市场主流机型。
1703952214
1703952215
5.客户端崩溃
1703952216
1703952217
根据调查的结果,移动App崩溃是最常见的移动App Bug,这是预料中的结果,因为很容易发现一个移动App崩溃。Android OS上一个写着“强制关闭错误”的弹出窗口跳上屏幕;当发生崩溃时,iOS中App屏幕突然消失。
1703952218
1703952219
常见崩溃场景:接口没返回字段,客户端未做处理;内存(256、512)手机容易内存溢出;信息列表加载多页,容易内存溢出;内存控制,未及时释放内存导致的溢出;版本控制,接口未做版本控制,造成老版本问题;客户端逻辑错误,某些操作未监听导致闪退。必现的崩溃在测试覆盖较全的情况下很大概率可以被发现,然而还是有些特定场景下的崩溃会被放到线上,此时可以通过Crashlytics等第三方产品,记录崩溃日志以便分析定位,解决问题。
1703952220
[
上一页 ]
[ :1.703952172e+09 ]
[
下一页 ]