|
本人从事手机软件测试多年,希望能交更多的朋友,共同探讨手机软件测试。以下是关于手机软件测试的一些粗浅心得,新手请参考,高手请不要嘲笑,并请给予指导和补充。这里先行谢过了!
手机软件测试的话题比较广,限于篇幅和时间,计划分多次敬献给各位。
(本文直接在论坛上编辑,格式编排上不利于阅读,请谅解!)
第一章:引言
目前国内几乎所有的手机设计公司都是“二次开发”,芯片方案和通信协议由国外公司提供,且软件系统的基本架构都已搭好,设计公司多数要做的是MMI的完善和AL(应用层)的开发,同时手机又是典型的“嵌入式系统”,基于这些因素,手机软件的开发和测试(与传统意义上的软件开发和测试相比)有其特殊性。以下简单介绍一下手机软件系统的特点:
1、软件子系统规模庞大:目前一般的手机软件子系统(按源代码统计)一般有1200~3000个文件,代码行超过300万行。
2、软件子系统模块众多:按软件层次分,主要有OS、HW Diver、Communication-Protocol、MFW、AL、MMI,按功能划分(主要讲Protocol、AL),主要有Call、SMS(EMS)、MMS、Record、Setting、PhoneBook、Call_Option、Security、Scene、Tools、Java、Camera、WAP、STK、MP3、Others。
3、二次开发导致难度增加:原因一需要平台提供方紧密支援,比如OS、Protocol、MFW完善;原因二需要对平台进行消化吸收,包括开发环境、软件架构、源代码和注释、Spec,这个过程一般需要2个月以上(新平台甚至需要半年到一年),如果公司开发人员流动比较频繁,将给项目造成致命的打击。
4、第三方软件的集成导致复杂度增加:光是平台提供方的基础上开发是难满足市场需求的,一些高级应用如QQ、WAP、MP3、Java等等需要集成第三方的软件,这将导致软件子系统复杂度增加(最直接的后果就是项目进度更加不可控、软件质量大大下降)。
5、面向对象的编程语言几乎无用武之地:该特点也是嵌入式系统的共同点,一般平台都是老老实实用C/C++编程(建议新手好好熟悉C/C++),VC也成了调试小段代码的一个工具。
6、功能强大的调试和测试工具无法派上主要用场:据业界统计,自动化测试水平做的最好的也不过覆盖了20%以下的测试用例。还有就是白盒测试难实施,多数公司只能开展黑盒测试(原因容后分析)。
7、软件开发模型大多采用“迭代开发”:因为是“二次开发”,软件架构基本搭好(并且很难更改),手机开发的里程碑不能按照“瀑布模型”来定,而是有她自己的要求,一般来讲主要有FTA、CTA、试产、量产转移等阶段,不同的阶段有不同的要求,我们只能根据手机开发的里程碑来确定我们软件子系统的迭代开发需求(手机开发的4个主要阶段容后说明)。
8、软件子系统过程质量难控制:业界最头痛的设计文档的输出,在手机软件子系统的开发过程中表现得尤为突出,原因之一是产品立项开始,时间就规划得非常紧(时间的竞争比质量的竞争更为残酷),来不及让开发人员“从从容容”写文档;原因之二是开发人员本来(对文档)具有很强的“抵抗性”,“你的文档还没写完,我的开发就已经完成了,写文档不是多此一举吗(这里姑且不论这种观点正确与否,也不讨论其引起的后果)”。
9、模块通用性强:如果新平台做的很稳定以后,那接下来系列产品的开发就很Easy了,这个就归功于同一平台模块的通用性强了,因为手机的基本功能也就是那么十几二十多个模块,而差异模块(两宽相邻机型间)不超过2~3个。
(未完待续……)
--耕,2005/5/19,22:50--
[ Last edited by tianyuswtest on 2005-5-19 at 22:55 ] |
|