关于软件开发流程中的风险分析,大家已经见得很多了,这方面也仁者见仁智者见智。下面我针对手机软件开发流程会出现的问题,简单的给出一些应对措施。

  把手机开发流程分为三个部分:初期,中期和后期

  初期是指硬件刚刚好,基本系统可以跑起来,硬件驱动基本可用,应用功能不完善,无定制系统。

  中期:软件应用以完善,系统优化期,定制期

  后期,即上市前的几周,软件要根据不同运营商进行定制

  初期的问题:会碰到各种各样的问题,也不知道是硬件问题还是软件问题,手机经常起不来,或压根不能工作,有时候却能工作,当出现某个问题了歇菜了。还有是应用软件功能不完善。所以这个时候要注意以下几种测试:

  1. 系统启动测试,因为基本系统平台不稳定性,boot很重要,可以模拟用户的几种boot方式,比如插电源开机,充电时开机,有/无sim卡关机,不/带sd卡开机,开机拔电池等等情况,模拟用户可能遇到的启动过程

  2. 系统关闭测试,同1,比如带充电器会怎么样,有无sim卡等,关机后功耗怎么样

  3. 硬件测试,这里很多需要测试的,因为驱动问题引起,有一小部分很可能是硬件本身有问题,所以这一块是初期的重点,列举如下:相机,按键,LED,GPS,距离传感器,加速器,听/话筒,USB控制器,电池/源,充电器,扩展卡,HDMI,收音机,wifi,BT,Touch screen,LCD display,震动,指南针等等。。。

  4. 软件功能迭代测试,因为功能不完善,而且是逐步开发过程中,所以引入迭代测试的方式,可以引入自动测试,对原来测试过的使用回归测试,重点放在新引入的小功能。这个测试会一直持续到中期。

  中期的问题,系统应用以基本齐全,但会碰见各种各样的问题,这些问题非功能性问题,或表现为不是轻易重现的随机死机或应用非法关闭的问题,系统软件运行缓慢等性能问题。针对这些可能出现的问题我们应该用以下方法应对:

  1. 建立记录机制,记录单次死机和非法应用关闭问题档案,进行初步分析,对可以排查时第三方程序问题的情况下,细致分析师否是系统问题,发到平台工程师解决。如果不是发到应用开发解决。所谓聚少成多,MTBF服务器可以用上,死在某个进程的次数完全要小心,这如果不解决可能会导致上市后用户大批的退机现象。对系统的process更加注意了,所谓聚少成多,没有用户喜欢手机没事自己重启玩。这一部分所占百分比不是很高,但是一定要把这一部分作为重点解决对象。

  2,性能优化,包括系统性能优化,比如开关机时间,蓝牙无线连接速度等等,还有应用程序性能优化,比如某厂商出了款手机,功能非常炫,是没人用,为啥?太慢,用户无法忍受黑屏好几秒才出现内容。一个好的应用,不光是功能好,速度还要快,要“立刻”出现,无需黑屏或者“请等待”半天无响应。针对这些做性能测试,促使开发尽快解决这些,免得后期无时间解决这些问题。有人可能要问性能重要还是稳定性重要。回答是稳定性重要,因为性能慢,对于智能手机,用户还可以选择市场上其他的应用代替之。要站在用户角度上考虑他要不要买你的手机。当然应用性能缓慢,用户用了才知道,会给出“下次打死我也不买你们的手机了,跟牛车一样”,当然他也不会推荐周围的朋友购买了,名誉扫地。

  3,系统稳定性测试,这一点很重要,不要到后才去解决系统稳定性问题,应该在中期做重点解决。

  4,IOT测试,和实网,现实环境,各种设备等的测试操作。

  5. 软件交互测试,因为软件的功能已经完善,这些测试没有必要在中期再重复测试,现在手机都是多任务操作系统了,启动多个应用进行测试,这个我在以前的博文中也说过,这里不多说了。

  6。 定制测试,根据运行商定制进行测试,属于系统测试。

  后期:手机上市前期了,那么几周的时间,很快要上市了,软件已经定型,不再有新的大的更新,即使有也是以后维护阶段更新。

  1。 运行商测试,这个时候要关心运行商的问题了,模拟用户习惯,用户操作环境,进行场景测试,可以编写一些小故事,定位不同使用人群等等,发现前期功能测试和系统测试未能发现的问题

  2。 稳定性问题,这个时候依然变得很重要,据经验,后剩的都是棘手的问题,所有的厂商都会有这种情况,开发人员懒得接,测试人员怕麻烦,头疼呀。