安卓测试基础知识

上一篇 / 下一篇  2015-01-07 14:10:22 / 个人分类:安卓测试

 

Android的熟悉过程讨论主题

1. 作为使用者

2. 作为开发者

3. 作为测试

 

 

作为使用者

作为使用者所要了解的Android平台的知识。首先使用Android手机通常是有经验的手机使用者,他们往往对Android手机及其扩展功能很爱不释手,这当然也是google开发这个应用的目的,就是使用应用商店下载很好玩的、很酷的应用程序,它的真正的魅力来自于一个开放的应用平台,和成千上万的应用软件,可以想象,那么有创新能力和软件开发实力的google能败给苹果应用商店吗,尽管现在开来软件数量和质量还远不如苹果,但是它有先天优势,可以笼络众多开发人员向他靠拢。

优势:开放性(价格更低);硬件丰富性;众多第三方应用(大家生而平等,不再受手机开发商制约了);无缝连接google应用(搜索巨人的大部分应用都能无缝链接,并且条目还在不断的增加中)。

特性:全屏触摸,而不是像S60,windows mobile那样需要选中某个很窄的区域进行拖拽。

多点触摸(类似苹果)将会在2.0以后实现。用户感受非常棒。

很多产品供选择:由于各个公司都会像这个产品倾斜,用户就不是必须选择iPhone才显得很酷。。。

扩展:应用商店

网络功能:非常好的用户感受,速度超快

搜索功能:集合手机内部搜索和google强大的网络搜索功能,再加上语音搜索,用户还可以自己下载图片搜索功能,以后说不定还有视频搜索呢

 

缺点:

某些应用太过于简单,还存在一些问题,不如MMS,还有蓝牙功能太简单,还有就是声音问题,不能同时在外部和耳机同时有声音(错过很多电话如果插上耳机)。

某些应用用户体验不是很好,远不如iPhone

 

作为使用者,常用的是

- 核心应用:接打电话,通讯录(在线、离线)

- Web Browser,这也是Android手机最强大的,用户体验非常好,需要改进的地方还有多点缩放,flash动画支持,文件下载支持,文件上传支持,gears全面支持,插件支持等等

- 搜索功能:手机内部搜索,web搜索,语音搜索

- 电邮功能:Gmail,POP,IMAP,Exchange(2.0以后)

- 公文处理:Officesuite,在线公文处理软件等

- 信息功能:SMS MMS

- 多媒体功能:照相摄像,音乐播放,视频播放,流媒体播放,相册管理

- SNS: facebook,twitter等等,应用软件还在不断增加

- IM:GTalk,MSN,AIM, ICQ,Yahoo, QQ, Fethion 等等

- 玩游戏:目前应用商店里面有一些游戏,相信以后大型的游戏还会不断增加中

- 地图:GPS导航,指南针

- 连接功能:蓝牙,wifi等

- 购物休闲。。。

- 其他扩展:应用商店里面很多应用

用户可能具备的知识:

应用程序切换和使用,常用设置,应用程序使用特点(和其他手机的不同点),怎样安装卸载软件,在SD卡安装应用。怎样管理用户数据。怎样清除用户数据。高级扩展方式(破解应用等)。

 

资料集合:

 

 

 

作为开发者:

首先开发者有两部分,其中大部份为上层应用的开发者,他们主要利用SDK进行开发,也就是我们平时看到的应用部分。也有一部分为库/驱动开发者,他们主要讲Android移植到自己的硬件上的工作,还有一些库文件的增加裁剪(需要注意地是为了考虑到Market上软件的兼容性,一般会只增加,很多问题也是由此而来),这些也直接决定一个系统的稳定性,这些开发人员要求对arm,linux驱动程序开发移植工作非常熟悉。

 

作为一个应用开发者:

1. 读读What's android

2. Android application的构成和运行机制

3. Development Tools

4. 研究一下Android Apps各组件的生命周期

5. 动手制作自己的Android app,对各个组件进行练习(APIDemo等也行),然后按照Notepad例子逐渐走下去

6. 熟悉Debug

 

作为一个底层开发者:

1. 从Bootloader开始

2. Linux内核裁剪和移植(http://wiki.kldp.org/wiki.php/AndroidPortingOnRealTarget?refresh=1)

3. 电源管理

4. 内核选项配置

5. 设备驱动

6. 根文件系统制作

7. 系统优化和调整

 

参考书目:

Android内核的简单分析http://blog.chinaunix.net/u2/85263/showart_1729098.html

分析Android 根文件系统启动过程(init守护进程分析)

http://www.hiapk.com/bbs/thread-6388-1-1.html

Android.Essential

設計招式之美(高焕堂)

Android_应用框架原理与程序设计(高焕堂)

Hello Android(Ed Burnette)

Android的Message Queue(高焕堂)

作为测试者:

作为测试者,我们就不仅要熟悉该平台上的应用程序,还要对相应的开发技术有所了解,我们不必要做到跟开发者一样熟悉,但是也必须对该平台上的API有所了解,一个应用程序最容易在什么地方出现问题很清楚,这样才更有针对性的去测试。

测试有很多种测试,如果按照V模型的话,最初的单元测试JUnit)一般有开发者自己完成,这根据公司的财力状况了,一般都是开发粗略的测一下。集成测试然后是系统测试,集成测试接触的不是很多,就不单独列出来讲了。说说系统测试吧。

就测试方法和传统应该来说没有什么改变,不过更有针对性,应该更有针对性,就是就Android应用的特征设计测试用例

针对这点首先我们必须了解这个平台的特点,下面列出要熟悉的技术:

1. 什么是Android?熟悉Android Architecture

2. Android手机应用都包含组件(Application Framework),各个应用的具体细节部分,和传统的手机功能的区别

3. 该平台最有特点的地方

4. Android手机应用程序的运行机制

     各个组件的特点

     各个组件的生命周期

     针对各个组件的测试方法

5. 可以练习开发一些应用以了解熟悉各个API的特点,这样有利于我们了解一个应用程序的在什么地方最脆弱,什么地方才是开发最容易忽视的地方。

6. 要熟练掌握各个抓log的工具的使用,各个log参数还有它们在什么时候使用

7. 要能够根据打出的log通过定位应用程序的问题(当然这个要开发把必要的log打出来)

8. Monkey压力测试工具

9. 各种shell命令(对android支持的linux命令需要熟悉他们的参数和用法。)

 

了解上面之后,我们才能在系统测试更有针对性的设计用例,比如对于相同content provider进行交互测试,看看应用程序对资源共享有无冲突等。

 

资料:

1. 安装android SDK 

     docs/sdk/index.html

2. What is Android?   /docs/guide/basics/what-is-android.html

3. Application Fundamentals  /docs/guide/topics/fundamentals.html

4. User Interface     /docs/guide/topics/ui/index.html

5. Intents and Intent Filters      /docs/guide/topics/intents/intents-filters.html

6. Data Storage     /docs/guide/topics/data/data-storage.html

7. Content Providers       /docs/guide/topics/providers/content-providers.html

8. Security and Permissions    /docs/guide/topics/security/security.html

9. Graphics      /docs/guide/topics/graphics/index.html

10. Audio and Video     docs/guide/topics/media/index.html

11. Location and maps     /docs/guide/topics/location/index.html

12. App Widgets    /docs/guide/topics/appwidgets/index.html

13. ADB用法   /docs/guide/developing/tools/adb.html

14. DDMS用法  /docs/guide/developing/tools/ddms.html

15. UI/Application Exerciser Monkey    /docs/guide/developing/tools/monkey.html

16. Notepad Tutorial      docs/guide/tutorials/notepad/index.html


TAG:

 

评分:0

我来说两句

Open Toolbar