1、开发与测试技术,北测教育软件测试职业教育基地,李翔东 摩托罗拉 新产品介绍+软件测试 10年+,北京邮电大学 计算机专业 通信设备 (终端、网络) 软件测试技术 应用软件 服务器,经常被问到的两个问题?,进入软件行业后,特别是做了测试工程师后该如何面对工作机会的选择? 工作中遇到很多开发的工作和不会的技术问题?,从偶像开始,目录,背景:手机制式和无线技术的发展 基础:手机的构成和智能手机操作系统 Symbian OS简单介绍 Windows Mobile简单介绍 Mac OS(iPhone)简单比较 Android开发与测试技术 手机测试技术,无线技术发展阶段,1G(first generat
2、ion)表示第一代移动通讯技术。代表为现已淘汰的模拟移动网。 2G(second generation)表示第二代移动通讯技术。代表为GSM。以数字语音传输技术为核心。 2.5G/2.75G是基于2G与3G之间的过渡类型。比2G在速度、带宽上有所提高。可使现有GSM网络轻易地实现与高速数据分组的简便接入。 3G是英文3rd Generation的缩写,指第三代移动通信技术。我国3G牌照已于今年发放。 2G网络提供的带宽是9.6Kpbs。2.5G增加到56Kpbs。3G/3.5G将具有更宽的带宽,其传输速度将达到384Kbps到42Mbps。 4G(LTE/WIMAX) 展望,达到100Mbps
3、。,2010年国内通信制式的份额,国内3G技术的标准和市场份额,TD-SCDMA WCDMA CDMA-EVDO,手机的构成和主要概念,手机的基本架构可分为:射频(RF,RADIO FREQUENCY)中频(IF,INTERMEDIATE FREQUENCY)基频(BB,BASEBAND)三大部分以及机壳、按键、PCB、电池等周边零部件。 射频(RF):主要功能为收发手机与基站之间高频讯号的工作,主要元件包括功率放大器(PA)、低噪声放大器(LNA)、射频多任务器(DIPLEXER)、多任务器(DUPLEXER)、表面声波滤波器(SAWFILTER)等。,手机构成和主要概念,中频(IF):主要
4、功能为将RF进来的讯号经过降频处理后供基频(BB)使用。主要元件有锁相回路(PLL)、电压控制震荡器(VCO)、温度控制震荡器(TCXO)、调变调节变器()、表面声波滤波器(SAW FILTER)等。 基频(BB):主要功能为信息的处理与储存,主要零组件包含数字讯号处理器(DSP)、微控制器(MCU)、模拟数字转换器(AC/DC CONVERTER)、FLASH、SRAM等。,手机构成和主要概念,手机软件及主要技术,手机软件结构,物理层软件、通讯协议软件和应用层软件。 物理层软件(Layer 1)定义了DSP的操作方式和规则,以及与DSP沟通的语言和规则,是手机最核心的知识产权。通讯协议层软件
5、在物理层软件之上,是Layer2-3层。通讯协议就是通讯系统的规则和标准。应用层软件就是Layer4、5、6、7层软件。这四层软件中以MMI(Man-Machine Interface,人机界面)最为重要。,手机操作系统,嵌入式系统 嵌入式系统一直被广泛应用于各种设备当中,大到车、船和卫星,小到家用电器。大部分的嵌入式系统并不需要操作系统,如洗衣机、微波炉等特点 以应用为中心 软件和硬件集成在一起 体积小,嵌入在实际系统中 嵌入式操作系统早期的中低端手机:功能简单,大部分没有操作系统,而是一些简单的控制程序 高端手机才有操作系统,智能手机,具备普通手机的全部功能,能够进行正常的通话,发短信等手
6、机应用。 具备无线接入互联网的能力,即需要支持GSM网络下的 GPRS或者CDMA网络下的CDMA 1X或者3G网络。 具备PDA的功能,包括PIM(个人信息管理),日程记事,任务安排,多媒体应用,浏览网页。 具备一个具有开放性的操作系统,在这个操作系统平台上,可以安装更多的应用程序,从而使智能手机的功能可以得到无限的扩充。,目前主要的手机操作系统和平台,Symbian Linux 开放源码Android(Google) Mac OS (Apple) Microsoft Windows Mobile 封闭 Non-java, Better UI, Larger developerBREW(Qu
7、alcomm)MTK Platform (Nuclears)RIMPalm OS (HP 2010/04 1.2B $),智能手机市场份额 ( 2008年),智能手机操作市场占有率( 2009年第三季度数据),智能手机操作市场占有率( 2010年第三季度数据),给自己提几个问题,Symbian OS的优点,低功耗(电池供电) 健壮性好 抢先式多任务微内核 基于组件完全面向对象 可靠性好 开放性,Symbian操作系统界面的划分规则,Series 60、 Series 80、 Series 90、 UIQ MOAP,Symbian OS 体系结构,23,Symbian OS 将UI与引擎和服务分
8、离, 从而允许被授权人(像Nokia)为手机开发它们自己的UI,Symbian OS 体系结构,Symbian OS 工具链和开发环境,构建工具(Build Tool) WINSCW 创建一个运行在Windows模拟器上的x86格式的二进制文件 GCCE 或 ARMV5 创建运行在手机硬件上的二进制代码 - 分别使用GCCE和RVCT编译器构建 硬件构建(Hardware Build) 32位指令集 (即ARM) 16位指令集(称为THUMB) 安装程序到手机硬件上 Symbian OS 模拟器,Windows Mobile介绍,Microsoft Windows CE Handheld PC
9、 1.0 Windows Mobile Pocket PC Smartphone Windows 7 Microsoft ActiveSync,WM应用程序开发工具,eMbedded Visual Tools eMbedded Visual C+/Basic, Visual Studio .NET SQL Server CE Pocket SDK / Smartphone SDK,iPhone系统简介,Mac OS Mac OS X 使用基于 BSD Unix 的内核Mac OS X 有着绚丽多彩的用户界面 iPhone应用开发环境Mac下开发工具XcodeiPhone SDKiPhone手机
10、/iPod Touch,Gphone 和 iPhone的简单比较,Android开发与测试技术,Android基础知识 三种Android的开发者搭建Android开发测试环境 Android平台的结构分析 如何成为Android高手,基础知识,Android是包括一个操作系统(Linux)、中间件和关键应用的移动设备的一个软件堆。,2003年美国Android开发手机平台的小公司 2007年11月5日 发布的开源平台,谷歌开放手机联盟的Android平台架构,开放式手机开发,传统手机的开发: 厂商制作手机出售 开放式手机的开发: 厂商制作手机出售 第三方开发手机应用,Android的双重开发
11、模式,Android的双重开发模式:各厂商在统一开放平台开发手机 第三方开发手机应用 Android的市场: http:/ 全开放智能手机平台 多硬件平台的支持 使用众多的标准化技术 核心技术完整,统一 完善的SDK和文档 完善的辅助开发工具,开放性 平等性 无界限 门槛低 丰富应用,Android开发与测试技术,Android基础知识 三种Android的开发者 Android平台的结构分析 搭建Android开发测试环境 如何成为Android高手,Android的三种开发,手机厂商移植开发手机系统 终端应用商应用程序开发 系统订制(CMCC/播思)Android系统开发,Android的
12、开发工作,开发Android应用程序,开发Android应用程序,开发Android手机系统,开发Android手机系统,Android应用开发者素质,Android的知识结构(SDK方面): JAVA语言知识 应用程序架构 GUI设计基础知识 各种视图的使用 2D/3D图形API 应用程序的设计思想,Android平台的结构分析 应用程序层介绍,Android核心应用程序,第三方app 所有的应用程序都是使用JAVA语言编写的 应用程序包括 联系人 短信 电话 地图 日历 email ,Android平台的结构分析 体系结构,丰富而又可扩展的视图(Views) 内容提供器(Content P
13、roviders) 资源管理器(Resource Manager) 通知管理器 (Notification Manager) 活动管理器( Activity Manager),Android平台的结构分析 类库和虚拟机,扩展库 标准 C 系统函数库 媒体库 图形库 Webkit SQLite Android Runtime Android 运行库 Dalvik,Android平台的结构分析 核心系统组件,Android 的核心系统服务依赖于 Linux 2.6 内核 安全性 内存管理 进程管理 电源管理 驱动模块 Linux 内核也同时作为硬件和软件栈之间的抽象层,搭建Android开发环境,
14、Java JDK http:/ Eclipsehttp:/www.eclipse.org Android SDK http:/ Android ADT http:/dl- 一些重要概念,Life Cycle Activity Intent (Intent filters & Broadcast Intent Receiver) Service Content Provider,Android应用程序的构成,Android应用程序的构成,如何成为Android高手,1,从Android源码中学习 2,精通Android 体系架构、MVC、常见的设计模式、控制反转(IoC) 3,编写可重用、可扩展
15、、可维护、灵活性高的代码 4,高效的编写高效的代码 5,学会至少一门服务器端开发技术,Android的源代码使用语言,Android的知识结构(源代码方面): Linux操作系统知识 Linux内核知识(C语言) Linux驱动程序知识(C语言) Android底层库(C语言、C+) Dalvik虚拟机(C+、JAVA) Android GUI系统(C+、JAVA) 音频、视频和多媒体(C语言、C+、JAVA) 电话部分的(C语言、C+、JAVA) 连接部分(C语言、C+、JAVA) 传感器部分(C语言、C+、JAVA),手机测试,PCB板测试 通信测试 应用软件测试 认证测试 综合测试,了解
16、手机软件组成,了解手机软件特性,功能性 指程序执行满足其在软件需求规格说明书中规定的各项功能需求的能力。 易用性 是指人们学习、操作、准备输入和解释程序输出(输出结果和出错信息)的难易程度 可靠性(稳定性) 指在规定的运行环境中,在规定的运行时间内或规定的运行次数下,程序运行各种不同测试用例的成功概率。,了解手机软件特性,效率(性能) 指在规定或隐含的条件下,其程序完成规定功能所需要的时间。 安全性 指软件的各项配置能控制非授权人员对其进行存取和识别的能力 兼容性 指软件在特殊的硬件、软件、操作系统或网络环境下的工作能力,手机软件测试内容,白盒测试,黑盒测试,外场测试,功能性,可靠性,易用性,
17、效率性能,安全性,兼容性,手机功能测试内容,电话本/名片夹 短消息/广播短消息 通话记录/通话计时 情节模式 来电转接 手机设置(显示设置/通话设置/网络设置/安全设置/时间设置) 游戏 商务功能(闹钟/计算器/记时本/世界时/日程安排/辞典 STK 网络(WAP) GPRS 数据业务,Android手机功能测试方法,并行事件(通话、闹钟、来电、短消息、告警) 相关性操作(闹钟、日程安排、密码) 极限测试(电话本容量、最大长度) 边界测试(数值、日期、时间) 状态停留 重复测试 异常输入,手机外场测试,找网能力、呼损率 通话(音量/背景噪音/清晰度/连续性) 短消息/广播短消息 兼容性(网络/SIM卡) 其它功能测试,手机的用户体验测试,手持舒适度 界面舒适度 操作速度 系统稳定性 连接能力 按键舒适度 网络浏览顺畅度 通话信号 多媒体能力 电力续航,回到问题,选择新工作的技巧掌握快速学习的方法,Q&A,路的尽头不是终点,而是超越。-叔本华,