App项目开发流程总结

一、产品开发流程

正常的互联网开发app的流程大致如下:

产品规划,定产品方向

定需求,定产品交互原型

UI根据线框图设计视觉稿

线框图定好以后,产品与研发进行讨论,修改定稿

研发根据视觉稿搭建UI框架

研发根据视觉稿定义API协议文档

APP端与服务端各团队小组定制任务计划

研发APP端与服务端根据API文档并行开发功能

APP端与服务端按照项目计划的时间对接API与测试

研发修复回归测试反馈的bug,提交beta版

测试通过,提交给运营发布到渠道上线

【注意:接口文档定义好了,代表两端已经都很熟悉需求了,只需要在

开发周期严格按照接口文档的来,并且共同更新和完善这个接口文档】


二、快速搭建项目

定开发规范

版本管理

搭建UI框架

选用开发库集成(或自造轮子)

第三方服务集成(视情况而定)

1.定义开发规范

一个项目一般不会只有一个人独立开发,就算是独立开发,我们也应该定一下开发规范,一般会有什么样的规范?

命名规范

代码规范

代码管理规范

2.命名规范

命名规范包括:

项目命名

包命名

类命名、成员变量命名

资源文件命名

3.代码规范

代码规范视语言而定,例如:开发android使用的是Java,自然要按照Java的编码规范进行编码,比如命名采用驼峰命名法,编码的时候也要符合Android的开发规范,比如UI线程不做任何耗时的操作,像网络请求、数据库操作都需要放到子线程中去做,只有UI的刷新才在UI线程中做,像这些规范,可以根据自身在项目遇到的问题来定,定规范的好处就是减少踩坑的几率,提高开发的质量。

4.代码管理

对于一个经常更新迭代的产品,需要对代码进行分支管理,最好使用git代码仓库对代码进行管理。建议代码版本管理由SVN逐步过渡到git,跟上时代的潮流。


三、测试

1.功能性测试

UI与技术,要兼任QA的角色。根据需求测试功能与业务逻辑(包括界面交互流程与细节)

2.非功能性测试

非功能性的一些因素,这里就要提到【云测】这个东西,例如Testin,因为现在设备太多了,如果公司要买一堆设备来做测试,成本太高,况且设备更新得太快,根本就跟不上,所以就有了云测这个东西,它是一个云测试平台服务,提供了一大批主流机型,我们就直接省去购买设备的成本,还能得到完善的测试报告。

优点:

终端云,省去测试设备购买租赁成本

高效率节省测试人员成本及时间

包含兼容性测试、性能测试、功能测试

操作简单、详细测试报告生成


四、团队协作(禅道)

利用【禅道】工具进行团队协作敏捷开发,与项目Bug测试管理跟踪

1.任务

禅道中,迭代的核心是任务,而任务是基于对需求的分解,完成了任务,也就实现了需求。

需求分解

将关联到每次迭代中的每个需求进行估算、分解为若干任务

做任务

做完任务后在"迭代-版本"创建版本和提交测试,在"迭代-测试任务"查看测试进展和报告

解BUG

在"迭代-版本"查看版本所产生的BUG,进行解决

2.迭代

创建迭代时关联产品;

编辑迭代时关联需求(也就是要实现哪些个需求);

通常一个迭代实现一个计划(实现计划中关联的需求和BUG)。

迭代-版本

在一个迭代中,一般会创建若干版本,以实现尽早测试

迭代-测试任务

一个版本完成后,即可提交测试(为QA创建一个测试任务)。

3.敏捷测试

在一个迭代中,要规划几个版本(build),才能实现尽早测试。整个迭代过程就是不断实现需求/测试的过程,而没有一个集中解决BUG的过程,但在最后会有一个验收测试和发布的过程。

1.迭代版本(build):保持不变,有些字段名称略有变动,不影响理解。

2.测试版本(testrun):改为 测试任务。

版本指的都是扩展版本,其基本定义为:version# (role#build#)),比如:0.5.0 (C2)。


五、可持续化集成(Jenkins)

Jenkins主要用于公司持续集成环境的搭建。起到自动构建、自动编译、自动化测试一体化的功能,它提供了数百个插件支持建设,测试,部署和几乎任何项目自动化(在后续团队扩大了的情况下采用)

减少风险

一天中进行多次的集成,并做了相应的测试,这样有利于检查缺陷,了解软件的健康状况,减少假定。

任何时间、任何地点生成可部署的软件

增强项目的可见性

你可能感兴趣的:(App项目开发流程总结)