APP开发质量管理

随着移动互联网产品开始兴起,深刻改变了人们的生活习惯(机不离手),比如:人们可以不带现金,但不可以不带手机。这背后都离不开APP,所以说质量在决定一个APP产品的生命周期的长短中起着非常关键的作用,那么APP开发的质量管理就很重要了。这里以一个基层管理的视角去看待整个流程,力求在需求开发,研发,测试,发版等各个环节去控制自己的节奏,尽量避免在各团队衔接或者流程控制上影响APP质量。

一、前言

敏捷开发的总体原则适用于移动互联网行业“唯快不破”的要求,但敏捷开发弱化了知识文档沉淀和过程审计,由于它的简化和灵活而容易出现质量管理的疏漏,所以如何在快速迭代中打造有竞争力的产品,需要在敏捷开发的基础上思考如何优化开发模式和质量管理方式,以便更好地满足移动互联网用户的要求。强调的是:敏捷开发并不意味着不需要文档沉淀,不需要质量管理,这是对敏捷开发的最大误区,恰恰相反,敏捷开发对质量标准的实施、团队运作管理、人员素质提出了更高的要求。

二、研发阶段

每个公司都有算已的开发流程,也不好判断究竟是哪个流程更好,只能说各家有各家的打法,各家有各家的烦心事。以下为自已在项目开发中运用到的手法:

2.1 需求准备

由产品经理及开发主管或组长对需求进行核对及全生命周期管理,通过对需求的收集、分解、规划和实施,帮助团队快速理解。

2.2 排期

开发主管或组长根据产品需求拆分成各功能模块,对并各模块的工期有个大概的日程;召集软件开发工程,讲解需求及各模块要做的工作,并适当的讨论;然后,开始分工,把每个任务分到每个具体开发人员头,通常会给开发工程师2-3天的时间,详细评估技术点,并给出日程。最后开发主管或组长汇总项目开发日程,这中间有可能做下适当的调整。

模块化分工是一门技术活,要求管理者对每一位工程师都了解,仅仅技术上的了解,还包括性格等方面。在确保“让合适的人做合适的事”。

2.3 开发进度跟踪

开发主管或组长根据项目日程,每到节点,跟进下各模块的完成情况,如果卡壳的问题,要及时调整,以便项目顺利进行。作为管理人员还得不定期Review下员工提交的代码,对于不规范的提交要及时校正。

三、测试阶段

对比过有的公司没有测试团队,而是让开发人员自测,然后产品经理或客户验证,这是非常不靠谙的事情。根据自已这几年带团队及跟项目所观察到的情况,测试团队在敏捷开发流程中不可或缺的地位。

测试需要做以下几个方面工作:

  • 功能性系统与功能需求或逻辑相一致的程度
  • 性能系统的响应能力或能在一定时间内处理的事件数
  • 可靠性系统在意外或者错误面前,维持正常功能特性的能力
  • 可用性系统能够正常运行,不出现故障的时间比例
  • 易用性系统对用户来说完成任务的难易程度
  • 健壮性系统能够承受的环境压力或者代码变更能力

对项目所处理不同阶段还要细分为:

  • 功能点测试:项目刚完成,需要跑测试例,反馈功能和UI的问题
  • 自由测:模拟用户,随机使用和测试,以用户的角度来思考APP,主要反馈用户体验的问题
  • 迭代测试:新版本更新,可使用迭代测试,也有称为差分测试,验证提交的有效性及影响
  • 压力测试:针对某个问题做边界压力测试、重复执行某个动作的压力测试,验证某个问题出现的概率等

当前存在的问题:

APP应用测试还得考虑手机的差异性和兼容性,特别是Android手机,厂家N多,各种各样的尺寸,导致UI适配问题,还有WiFi、BT的兼容性问题。另外APP的业务逻辑不像PC端那么简单,花了很大力气整理完测试例,,但是发现下一个版本来的时候,大部分都用不了,需要重新写一遍,这实际上是很痛苦的过程。

数据是不全导致我们解决问题困难,每个问题描述什么样的手机,是什么样的环境,是怎么操作的。否则去找一句话的问题在哪儿,这个过程很痛苦,整个问题的发现到分析到解决,大部分时间都集中在分析这个阶段,最后解决那一下可能一行代码或者几行代码就搞定了。

过程质量问题的度量依托于流程、工具、方法的支撑配合。必须要有一个缺陷管理流程和产品研发平台对研发过程缺陷数据进行度量分析,缺陷在过程管理中的初始状态为“新”,结束状态为“关闭”,中间状态有“接受处理”、“已解决”、“已拒绝”和“重新打开”四个环节。

四、运维阶段

产品上架或发布后,并不意味着项目结束,应该来说真正的考验才开始呢,要通过整个线上的监控和度量体系,及时把握用户使用情况,如Crash概率、UI体验等等。

统计报告:通过丰富的可视化的实时数据统计报表,帮助团队及时了解团队表现,并不断改进提升。

五、总结

移动互联网处于开放竞争的时代,越来越多的产品存在高度竞争压力,更快地发布版本,更快地响应用户需求,以及良好的质量,已成为在当前竞争环境下脱颖而出的取胜之道。


待续