发布时间:2020-7-31 分类: 电商动态
互联网业务不尽相同,因此各公司采用的研发模式自然有其自身的优势。但粗略的研发过程和每个角色的实施方法都是相似的。
一,研究背景
1.改进研发计划
产品开发过程的每个方面都涉及时间安排,这些时间管理元素可以有效地控制项目进度。
2.提高研发效率
通过明确开发团队每个角色的职责和协作,每个成员都可以通过严格按照规范自己的工作来高效工作并降低沟通成本。
3.保证产品质量
通过确保每个链路的输入和输出,有效保证了产品的最终输出。
4.及时发现问题
通过每个环节的过程数据,便于管理人员深入了解问题。
二,研发过程的要点
1.确定团队角色和职责。
每个角色都有明确的分工和责任,以及绩效和晋升规则,从根本上保护团队的执行。
2.确定项目管理工具
项目管理工具将分解每个角色的工作任务,并形成有效的信息流。除了需要全面了解产品经理和项目经理之外,每个其他角色只需要关注他们负责的部分。
3.定义研发过程
最重要的是澄清链路的上下游关系以及链路操作的输入和输出。
三,产品开发团队
研发团队是产品研发管理的核心,建立强大的核心研发团队是迈向成功的关键一步。
1.组建团队
产品开发核心团队通常由产品经理(1),研发经理(1)和研发人员(5-10)组成。产品开发涉及的职责分配给成员。
2.角色和分工
(1)产品经理
产品经理是产品管理职位,负责市场调研,根据用户需求确定开发哪些产品,哪些技术,商业模式等。并推动相应产品的开发组织,他还根据产品生命周期协调研发,营销,运营等,确定并组织相应产品策略的实施,以及一系列其他相关产品管理活动。
(2)研发经理
研发经理是技术研发管理职位,负责了解项目的需求,系统分析,选择相关技术,制定开发计划和开发规范。
(3)产品设计师
产品设计师是产品规划职位,负责将客户需求转化为特定的产品形式。
(4)建筑师
架构师是软件系统和网络系统的设计者,负责识别和评估产品需求,构建软件开发和网络系统的核心架构,并消除主要困难。架构师专注于“技术实施”,以快速为常见场景提供最合适的技术解决方案,并评估团队功能需求的成本。
架构师分为软件架构师和系统架构师,侧重于软件开发和系统操作和维护的系统设计。
(5)交互设计师
交互设计师是一个功能设计职位,负责根据需求文档设计交互式原型。
(6)可视设计师
可视化设计器是界面设计职位,负责根据需求文档和交互设计文档设计产品可视化界面。
(7)Web前端工程师
Web前端工程师是一个界面研发职位。它负责基于体系结构设计文档和界面设计草案,Web技术(HTML/CSS/JavaScript等)的Web应用程序界面开发,并调用服务器端接口来实现Web应用程序。
(8)APP开发工程师
APP开发工程师是APP界面的研发职位。它负责根据需求文档和界面设计草案开发APP客户端界面,并调用服务器界面来实现APP应用程序。
(9)测试工程师
测试工程师是软件质量检查员,负责根据需求文档编写测试用例,执行测试任务,提交测试错误,跟踪错误修复等。
(10)操作和维护工程师
运营和维护工程师是产品发布的职责,负责维护和确保整个服务的高可用性,同时不断优化系统架构,提高部署效率,优化资源利用率,并提高整体ROI。
四,项目管理工具
推荐腾讯敏捷开发平台TAPD,这是腾讯,微信,QQ,腾讯视频等产品所使用的敏捷产品开发平台,所有这些都是通过TAPD进行产品技术项目的研发管理。
1.打开TAPD平台的主页
2.注册系统帐户
3.使用Enterprise WeChat配置权限
4.支持需求研发全流程管理
通过敏捷的研发生命周期,帮助团队灵活地进行迭代并执行小步骤。
迭代地进行目标制定和计划审查,完成工作分配,并使用故事墙和燃尽图来跟踪开发过程。迭代的目标很明确,进度是可控的,开发过程是敏捷和迭代的,小步骤运行得很快。
支持Web版,PAD版,移动版。
五,主要流程链接
产品开发过程分为以下几个阶段:项目阶段,设计阶段,开发阶段,测试阶段,在线阶段,磨合阶段,操作阶段和总结阶段。
1.项目阶段
项目阶段从公司的战略分解开始,然后通过市场调研获得客户需求,然后梳理产品方向,形成产品委员会批准的产品提案,并在批准后正式进入产品开发阶段。
(1)市场调研
需求研究是通过研究筛选出典型客户,并总结和梳理这些客户需求的细节。
典型的客户通常以用户肖像的形式描述。对于现有产品,可以直接通过数据统计部门获取用户图像数据。通常对用户图像进行采样并从一组客户中随机选择(例如,1%或更少)用于问卷调查。
QQ早期用户肖像数据
对于新产品,有必要首先定义客户群的特征,然后对该组进行抽样调查。问卷设计一般需要由产品经理完成,然后由专业研究公司实施。
新华新协助QQ音乐产品团队进行用户研究
(2)客户需求分析
客户需求分析是根据需求的重要性级别对研究过程中涉及的需求信息进行分类,并优先考虑客户的基本需求,这是我们常说的客户痛点。
腾讯视频需求水平分析V1.0
(3)撰写产品提案
项目阶段主要是输出产品提案并提交给公司的产品委员会进行决策。产品提案也称为“业务需求文档”(BRD),它是基于业务目标或值的业务需求。其核心目的是在投资研发之前为高级管理层的决策评估提供依据。其内容包括产品概述,市场需求,竞争环境,重要性,成功因素,营销策略,利润预测等。它通常简短而精致,不包含产品细节。
支付宝用户部产品提案模板
(4)提交产品评审委员会审核
对提案的审查主要是判断以下几点:与战略的关系是否密切相关?产品价值有多大?资源投入多少钱?
公司的产品决策委员会根据提交的产品提案进行评估。评估过程如下:
产品决策委员会决策流程
2,产品设计
产品设计分为输出概念设计,输出功能列表,输出需求汇总文档,输出需求详细文档等步骤。
(1)产品概念设计
概念设计是一个非常关键的产品链接。简单明了的概念不仅使客户更容易理解,而且使产品开发过程更加清晰,更少绕行。此外,概念设计也是软件架构师将产品概念转换为技术对象模型的关键部分。
以支付宝产品为例,它采用“钱包”概念模型。钱包里有现金,银行卡,还可以放身份证,名片,照片,小票,发票等。差异化的需求水平,产品互动体验的水平和运用程度自然而然地出来了。 。
支付宝钱包用户产品型号
(2)确定产品功能组合
根据产品概念模型和需求优先级确定关键功能点。
QQ音乐键功能点
(3)确定功能列表
然后树形函数并将所有功能点组织成一个列表。
QQ音视频产品功能列表V1.0
随后将这些功能点作为请求点添加到项目管理系统TAP中,以便团队的所有成员可以通信并改进此功能列表。在形成功能列表的初稿后,产品经理需要在产品团队中组织讨论和完善,然后找到沟通团队完成沟通,然后找到交互式视觉团队完成和改进,最后找到研发项目经理,研发,测试,运营和维护等角色。完整的沟通。
这个过程既是改进产品经理的过程,也是形成团队共识和激发团队积极性的过程。
(4)输出要求摘要文件
摘要文件阐明了某个功能模块下的功能描述,该功能模块通常是多个功能点的描述。需求摘要通常由产品经理编写,不包括功能详细信息的描述。为了便于与产品设计人员进行沟通,可以将主要功能界面的草稿添加到文档中,并且原型可以更好地描述主要功能。
腾讯视频PC版模块的需求摘要文档
通过模块的需求摘要文档,研发项目经理可以组织团队来传达需求摘要。产品经理首先介绍需求摘要,然后要求其他团队成员提出自己的专业问题。会前产品经理提前共享文档并为每个人收集问题。
会议结束后,主要架构师将根据需求总结进行架构设计框架,研发工程师也可以对他们负责的模块进行技术预研。经验丰富的工程师经常尝试在此阶段进行演示,并运行主要功能流程,因此更容易正式进入研发,专注于细节和产品质量。
(5)输出需求明细文件
需求详细信息文档由产品设计人员编写。需求摘要中的需求点,每个需要单独编写需求详细信息文档,而不是在一个文档中写入所有需求详细信息。这将导致非常长的请求详细信息文档和大量内容,这将导致许多后续问题。最好将需求点分成1周来完成研发测试,以便有效实现敏捷开发。
腾讯视频PC版自动登录需求文档
要求文件不是由闭门工作的产品设计师编写的。产品设计人员需要经常与人员进行交流,运营,愿景,用户研究(UER),架构师,测试经理,开发,运营等。沟通过程更多的是产品设计师学习和整合每个角色的思维过程,同时也使每个角色的工作更加清晰。
一般要求文件按以下步骤编写:
步骤1:根据需求摘要设计用户操作流程图。
步骤2:根据用户操作流程拆分每个界面,绘制主界面草图加入文档,然后分别描述每个界面的主要元素和功能点,然后描述界面之间交互的逻辑,最后添加参与互动的业务。逻辑。
步骤3:根据运营商的建议,查找运营通信需求,补充营销位置,运营后台工具等内容。
步骤4:根据交互设计者的问题,找到交互设计师来交流交互细节并补充界面中的交互逻辑。在交互设计者完成交互设计草案之后,采用交互式草案并将其添加到文档中,并且改进交互式逻辑描述。
第5步:找到视觉设计师传达视觉细节,并提醒视觉设计师突出重点。在可视化设计器完成设计草稿之后,采用设计草案并将其添加到文档中,并且改进了可视化界面描述。
步骤6:找到架构师通信算法和技术逻辑,并根据架构师提出的问题改进业务逻辑。
步骤7:找到测试经理以传达测试用例并根据测试经理提出的问题改进功能细节。由于测试经理需要编写测试用例,因此测试用例基于需求文档。如果要求文件不清楚,将不可避免地导致不完整的测试用例。因此,测试经理往往对产品设计师有很大帮助,甚至超过产品设计师。了解产品详细信息。
第8步:找到UER进行功能研究。 UER将需求文档翻译成研究文档,然后通过产品体验组发现产品设计中的问题,邀请客户进行面对面的体验。 UER然后反馈给产品经理,产品经理合并并优化产品需求详细信息文档。一些公司的UER研究也由产品设计师承担,但专业性可能难以保证。
步骤9:找到产品经理,研发项目经理,操作和维护确认要求文档,并初步确定计划。
(6)需求审查
如果先前的写作过程完全传达给每个角色,则需求评审变得非常容易和愉快。否则,产品经理和产品设计师将陷入无休止的争论中,而且通常不可能让整个团队花费数小时来得出结论。
因此,需求评审的关键是产品设计师提前为评审会议准备一切。提前准备好所有材料并提前发送给团队的所有成员,并提前确认所有角色的关键问题,并得到产品经理和研发项目经理的确认。在评审会上,先谈谈整体,然后再谈谈重要细节,再谈谈重要细节,并在不同层面进行确认。
对于会议中最具争议性的问题,如果5分钟后没有结论,立即记录并在会议结束后单独讨论。如果问题太多,则意味着产品设计师没有清楚地考虑它。然后尽快结束会议并重新编辑,然后再进行审核。这种情况会严重影响产品团队的声誉,因为这是每个人的时间。为了降低这种风险,需要审查必须提前1-2周举行,而不是等到发展前夕。
3.交互设计
交互设计主要是以原型和交互过程的形式显示产品经理的功能设计,便于与用户和团队进行交流。交互式设计原型可视化产品经理提供的产品原型草图,减少需求不确定性并确保产品功能可用性。
腾讯设计完整流程图
(1)交互设计需求分析
交互设计需求分析主要是回答以下问题:
A)哪些角色的优先级是什么?
交互式草案中涉及许多角色,几乎每个角色都需要,但只要有专业和详细的交互式草案,它就可以满足所有角色的需求,而无需为每个人提供不同版本的交互式版本。
产品经理:产品经理需要将交互式草稿的屏幕截图合并到需求文档中,并将它们作为需求来源提供给每个角色。
可视设计器:每个界面的PSD文档需要根据交互式设计草案进行设计。
研发经理:与设计草案交互需要花费大量时间来确定需要部署哪些角色。
架构师:有必要通过交互式设计草图来梳理软件架构设计,尤其是功能流程设计与软件架构和网络架构设计密切相关。
Web前端开发:必须通过连接设计草图来确认Web界面。这不仅涉及功能过程设计,还涉及交互细节。
APP客户端开发:有必要通过交互式设计草案确认APP软件界面。这不仅涉及功能过程设计,还涉及交互细节。
后台开发:您需要与设计草案进行交互以确定使用哪种后台调用方法,以及如何使用交互式设计让用户在面对网络延迟时体验更好。
测试:测试用例需要通过交互,功能测试用例和每个交互体验的测试用例来编写。
用户研究:有必要与设计进行互动并与客户进行面谈,以便客户更容易理解产品功能并获得更有效的反馈。
B)用户场景是什么?
确定在什么情况下的交互设计。具体来说,它包括用户肖像,主要功能流等。
C)使用什么形式?
大多数交互式文档都是使用Axure设计的,通常采用线框草稿的形式。
使用Axure
创建交互式设计文档D)你要达到什么标准?
交互级别的一般度量是整个功能操作过程的流量转换率。
以注册登录为例,您可以通过样本监控跟踪从注册到登录完成步骤的数据,然后获取转换率数据值,然后将其与竞争产品或类似产品进行比较,以不断提高转换率。
(2)功能交互设计
功能交互设计主要是表达软件接口之间的跳转关系。
(3)交互式细节设计
交互的细节涉及很多要点。不同的公司和不同类型的产品将具有不同的交互设计风格和细节。为了确保产品交互细节的统一性和标准化,互联网公司通常会开发自己的交互设计规范,以指导设计人员通过交互式设计。
腾讯代购源码网站产品交互设计规范V1.0
交互式细节设计,通常涉及交互式控制元素,交互式文案,装饰图形和其他内容。
每个看似很小的功能细节通常都需要付出很多努力。为了节省成本,在开发这样的功能之后,最好是模块化的。其他方案可以通过简单地调用此模块快速创建类似的功能。
网页翻页功能细节交互设计
4.视觉设计
(1)视觉设计需求分析
视觉设计需求分析主要是为了阐明视觉设计需要实现的目的。
以Logo设计为例。最常见的要求是两个:清晰的定义和吸引人的视力。因此,在设计过程中,通过竞争产品和不同的设计解决方案可以放在一起寻找最优设计。
百度输入法标志设计需要研究
(2)视觉概念设计
视觉概念设计基于视觉风格推导来描述产品视觉风格的基本方向。
此步骤需要确定产品样式以供后续确认。
设计细节,设计,亮度,颜色,纹理和其他设计细节奠定了基础。
(3)主界面设计
在主要视觉设计师获得交互式手稿后,他为主要功能界面设计了风格。
百度视频播放器主界面
(4)视觉细节设计
然后,对于界面中的每个控件,根据像素级标准绘制它。
需要通过PSD文档保存每个空间的分层材料。需要标记色块区域的颜色值。按钮的每个状态都需要单独设计,每个控件的大小需要清楚标记。交互设计中的每个细节设计状态也应具有相应的设计草案。
腾讯视频播放器内容库视觉细节设计
(5)视觉设计规范
与交互式设计类似,视觉设计涉及很多方面。为了确保产品视觉细节的统一和标准化,互联网公司一般会制定自己的产品视觉设计规范,以指导设计人员完成视觉设计。
QQ音乐视觉设计规范
5.建筑设计
架构设计是架构师与每个子系统关系的抽象模型,用于指导大型系统的开发和运行。
架构设计主要包括三个部分:系统架构设计,软件架构设计和网络架构设计。
系统架构设计一般采用MVC(Model-View-Controller)模型对业务逻辑模型,软件接口和控制器逻辑层进行分层,然后通过控制器逻辑层确保业务逻辑层与软件接口层的同步。 MVC模型的好处是它不需要在优化界面和用户交互的同时重写业务逻辑。它还有助于管理复杂的应用程序,使您可以专注于视图设计,而无需依赖业务逻辑。不同的开发人员可以同时开发接口,控制器逻辑和业务逻辑,同时使测试更容易。
(1)系统架构设计
如果整个系统开发是从头开始,则需要从概览图中梳理架构设计,然后补充每个模块的架构图。这部分通常由首席架构师领导,属于整个产品技术架构的总体轮廓。
支付宝平台系统架构概述图
通常,子系统名称将与产品概念一致。子系统通过公共服务层,业务逻辑层和基本业务逻辑层连接,无论是应用程序前台还是后台。这种面向对象的体系结构设计方法将允许整个团队使用相同的语言进行通信,这使得彼此更容易理解并有助于提高协作效率。
支付宝会计系统架构图
(2)软件架构设计
软件架构设计通常使用分层架构设计模型。
该软件首先分为两个主要级别:前端和后端。前端应用程序负责提供与用户交互的软件,并分为Web应用程序,PC客户端应用程序,移动APP应用程序等;后台负责实现所有与服务相关的操作和服务,并分为接口层,业务逻辑层和基本逻辑层。
软件架构设计需要以下内容:支持模块化,高内聚,低耦合,可扩展性以及防止过度设计。如果要添加新功能,则需要为该功能设计软件架构,最后形成软件架构设计。
腾讯视频邮件推荐功能软件架构设计
然后改进这个软件架构图,首先定义系统中涉及的所有基本逻辑层模块(对象),以及模块的输入和输出项,并阐明模块内部的基本处理逻辑。其中一些模块可能已经存在,因此需要单独开发并单独标记;可以将尚未开发的模块分配给软件项目经理,供工程师进行开发。
然后,阐明可以在接口上直接调用的每个业务逻辑层模块(对象)的名称,以及相应的接口,属性和方法。
对于尚未开发的接口,如果涉及数据调用,则需要对相关数据结构进行分类并确定算法。
以上只是最基本的软件架构设计过程。为了确保软件的灵活性,经常使用RPC服务组件(使网络分布式应用程序开发更容易)和消息中间件(实例化模块之间的交互)。 )和其他计划。
(3)网络架构设计
A)运营和维护架构
架构设计需要确保可以快速迭代地配置每个链路,尤其是在服务器CPU,内存,存储和带宽方面。
以新的零售个性化推荐动态饲料为例,我们梳理了整个网络结构设计过程。首先,您需要根据业务数据分析网络系统要求。在Feed流的前三页中,访问次数通常占90%以上。因此,在进行缓存设计时,我们只能在缓存数据中保存每个用户的最后100个数据。其他人需要从数据库中下载数据库。实时生成。
然后,您需要从技术上解决高并发性和高性能的问题。由于馈送性能压力主要集中在查询请求量上,并且馈送数据通常由数百甚至数百万人访问,因此馈送非常适合于缓存系统。当访问压力不大时,使用单层缓存数据就足够了。如果平均每日流量达到数百万人并且峰值非常明显,则最好使用双层缓存机制来增加系统扩展的灵活性。当写入馈送量较小但访问次数飙升时,您只需要扩展L1层服务;如果写入量增加,L2层服务将迅速扩展。缓存扩展主要是为了改善QPS,带宽瓶颈和缓存数据库性能。
如果您想降低研发成本,您还可以考虑购买腾讯云个性化推荐服务。这些中间过程都由云服务处理,因此您可以专注于解决业务层问题。
除文本数据外,Feed中还会有大量图片甚至视频数据。在这种情况下,CDN可用于文件缓存。本地缓存+分布式缓存,这是一种常见的CDN缓存策略。此时,更经济的选择是购买CDN云服务。当发布馈送时,图片和视频数据首先发布到服务器,然后同步到CDN云服务。
然后是数据库的分布式体系结构。在网络架构师获得软件架构师的数据结构之后,它首先将热数据与馈送数据区分开来。饲料数据的冷热通常非常明显。它可以根据时间维度(例如,每天的馈送数据是一个单独的子表)分成时间表,用于热和冷数据分离,并且使用不同的热和冷数据存储方案来降低成本。 Feed数据也需要快速检索,因此需要进行索引以提高检索速度。
B)服务拨号系统
在运行和维护发布系统之后,运维团队的压力才真正开始。随着用户数量的不断增加,稳定性,性能和监控变得正常。每个客户请求都会过来,需要在后台的不同机器之间调用和返回。只要一个接口出现问题,就会导致性能下降,服务延迟甚至整个系统崩溃。
此时,需要有效的服务跟踪系统。对于新零售商而言,最具成本效益的方式是使用腾讯云拨号测试系统。通过将采样接口部署到云端拨号系统,特别是在高峰时段,您可以通过短信或电子邮件监控服务异常。
C)记录统计系统
日志统计系统建议直接使用腾讯云日志服务。
此外,还要考虑全链路压力测量,服务器登录安全性,操作和维护权限分配,峰值后降级后计划以及共享Docker群集资源等问题,以确保系统可用性,安全性和单位成本。
6,创建版本计划
在完成和审查体系结构设计时,研发项目经理开始对需求和体系结构进行细分,以形成版本计划。
该版本的主要作用是澄清发展速度,促进团队合作,特别是测试和产品发布。
一般产品开发节奏基于每周的小版本进行调度和协作。但是,由于APP具有发布周期和促销成本,因此每隔几周就会发布一个大版本。
每个版本都包含许多需求点,因此自然要澄清测试的范围,这样测试的范围不会无限制地传播,产品节奏非常清晰,形成快速迭代和敏捷开发的研发风格。
版本属于代码管理层,关键是代码管理系统的主干版本(通常是Git)。首先,项目经理需要在Git中创建一个trunk版本,并为每个开发人员创建一个分支版本。研发人员将在分支版本中测试版本代码而不会出现问题,并将由架构师或项目经理合并到Trunk版本中。编译版本后,将执行功能和系统测试。没有问题,它将同步到操作和释放系统。
7.发展阶段
(1)开发测试环境准备
主要是部署Web,APP开发测试环境,以及部署需求管理系统,代码管理系统Git。
QQ游戏大厅研发环境建设计划
(2)设计文件的制定
在开发工程师获得建筑师的设计文档后,他可以拆分他负责的部分,然后提前补充和改进该部分的开发细节,以形成开发设计文档。开发设计文档主要用于提高软件开发效率,保证软件质量,便于后续产品的客户服务文档的准备,也非常有利于后续的研发迭代和代码维护工作。
前端开发,APP客户端开发和后台开发的内容和细节不同,但内容主要集中在开发环境,开发语言,使用框架,对象属性方法,接口包,数据结构设计,界面开发,编译和发布等方面。
(3)前端开发
前端开发人员使用JavaScript编写和打包具有良好性能的前端交互式组件,并通过CSS + XHTML输出Web操作界面。前端工程师通常不仅需要考虑前端实现,还需要考虑许多情况下的后台开发,以便可以不断优化前端代码分层架构,以提高Web产品的稳定性和可用性。
(4)APP客户端开发
App客户端开发主要是指IOS,Android和WeChat applet的开发。
IOS开发建议使用Xcode,它需要在Mac OS上运行; Android开发建议使用Eclipse;微信applet开发需要微信开发者工具。
(5)背景发展
后台开发主要是指服务器端程序开发,包括Web后台开发和组件开发。这两者本质上是内在的,Web后端可以看作是组件的前端。 Web后台解析HTTP请求,然后将其转发到分布式系统的多个组件并调用该服务。
由于Internet公司的服务器通常是Linux,它还涉及shell脚本,Linux环境编程等,需要熟悉Linux/Unix下的各种环境编程API。
(6)开发工程师的自我测试
开发工程师可以在研发过程中进行自检,并在完成负责功能模块的开发后完成完整功能模块的自检。
开发自检和测试的重点是不同的,以减少不必要的成本,而不是替换测试工程师的工作。由于代码是由您自己开发的,因此测试工程师无需通过自检发现的问题。当您发现问题时,您可以立即修改自己的验证,从而降低通信和返工的成本。
8.测试阶段
在审查了需求详细信息文档之后,测试工作就开始了。
(1)测试用例
测试经理组织测试工程师根据需求详细信息文档编写测试用例。
测试用例是软件测试质量稳定的保证,用于指导测试的实施,规划测试数据,设计测试脚本,评估测试结果和分析缺陷标准。测试用例通常会详细记录测试工程师应具备的操作信息,这可以帮助测试工程师参与测试。
测试用例文档通常包括修订记录,测试用例,测试数据等。可以直接在项目管理系统TAPD中批量创建测试用例。 TAPD可以快速编写和管理测试用例,开发测试计划并执行它们,然后使用错误跟踪管理来跟踪和解决问题。
TAPD平台中的测试用例列表和详细信息页面
有许多通用模块可以分组到测试用例库中,然后不断优化以减少重复的设计测试用例。它等同于组件化测试工作,减少低效通信和提高效率。例如,注册的功能测试用例每隔一段时间更新一次,当稍后需要测试注册功能时,测试工程师可以根据本规范进行测试,而无需为该功能重复编写测试用例。
注册功能的测试用例规范(部分)
(2)功能经验测试
功能测试是验证产品功能,并根据功能测试用例测试功能,检查产品功能是否符合用户要求。功能测试主要采用黑盒测试方法,将测试对象视为黑盒,主要测试功能而不考虑软件的内部结构和代码。通常,从软件产品的界面和体系结构开始,根据需求编写测试用例,并在预期结果和实际结果之间评估输入数据,然后评估产品的使用要求。用户进一步提出。
黑盒测试尝试检测以下类型的错误:功能错误或遗漏,接口错误,数据结构或外部数据库访问错误,性能错误,初始化和终止错误等。
除了测试工程师需要参与这部分测试,产品,交互和视觉设计师也需要深入介入,因为许多隐藏信息很难在需求文档中编写,但产品设计师可以看到一瞥有很多问题,这些问题很难让测试工程师判断,因为他们经常不知道产品设计师的想法。
功能体验测试最好与研发同步。 Web测试提供测试环境,产品设计团队可以通过配置主机来访问测试环境,并可以随时查看开发进度。对于客户端的开发,代码每天都合并到主干中,并提供每日构建版本。产品设计团队及时下载经验,并在工作前通过工作组通知研发人员,使研发人员在第二天就能得到改善。这可以纠正时间偏差并减少研发策略。这个地方的工作习惯似乎有一点变化,但会产生不同的结果。所谓的敏捷开发也体现在这些协作细节中。
(3)性能测试
性能测试侧重于特定功能的软件响应性,稳定性和运营成本。主要是优化系统容量,可扩展性,系统稳定性,资源利用率等指标。
性能测试通常使用压力测试方法。通过在系统上加载一定的业务压力,系统连续运行一段时间(通常为7次和24小时),以检查系统是否能够稳定运行。
绩效考试计划模板(大纲部分)
性能测试的主要步骤如下:
A)列出主要用户场景和相应的负载
关注可能出现性能瓶颈的情况,分解和估算项目负荷。
为了使系统更耐压,通常估计一定比例的负载以防止事故。
B)确定稳定性的主要绩效指标
然后,根据每个场景的负载,分解每个后台服务,APP和Web端需要注意的系统指示,例如响应时间,CPU,内存使用等。
C)单元性能测试和改进
准备好测试环境后,使用测试工具以合法输入格式对每个接口进行压力测试,以确保没有目标负载导致问题。更常用的压力测试工具是Loadrunner。
如果系统有响应延迟或崩溃,则需要操作和快速开发迭代。然后再次测试,直到系统性能指标符合标准。
D)客户端兼容性测试
可以使用Chrome的内置开发工具直接完成Web界面兼容性测试。
对于APP兼容性测试,最好借用第三方工具(例如Testin Cloud Test)。提交应用程序后,Testin Cloud会将该应用程序部署到数百部手机上,然后自动输出兼容性稳定性报告。根据测试工程师提供的测试用例,还可以批量对每个手机进行功能和体验测试。
E)整体系统测试和改进
在每个场景中的单元测试完成后,对整个系统执行完整的压力测试。
同样,如果存在响应延迟或崩溃,则需要运行操作和快速开发迭代,找到问题后端接口或前台模块进行优化,直到系统性能指标符合标准。
(4)数据初始化操作
数据初始化始于数据库工程师根据产品和操作人员的需要改进和补充底层数据,以实现用户可以正常使用它的状态。
更麻烦的是过去旧系统的数据迁移。由于旧系统和现有系统的字段,类型,日期格式和数字格式的不同,有必要提取一层数据以将数据注入相应的数据表,尤其是表格。这种关系需要保留。
然后,操作员通过操作后端手动编辑一些有问题的数据。
(5)产品内部测试
测试工程师完成所有测试用例的测试工作,研发人员完成必须完成的所有错误修复。在其他错误完成后,可以开始产品的内部测试。
内部测试可以首先针对产品中涉及的所有员工,包括产品,研发,运营,营销,运营和其他角色。这个过程一方面是收集产品缺陷的反馈,另一方面是让相关人员有机会参与产品改进,让每个人都能分享荣誉和耻辱。同事比用户更容忍产品。即使产品做得不好,他们也会坚持使用产品的所有功能,真正的用户可能会看到糟糕的体验并转身。因此,产品经理必须高度重视同事的反馈,并且同事发现每个缺陷都会导致大量用户流失。
如果员工反馈问题是以前未发现的缺陷,则需要尽快进行改进。如果它对当前版本影响不大,您可以将其放在bug的未来版本中,并记录反馈信息和详细的通信结论。
员工完成内部测试后,产品经理可以将产品的内部测试版本发送给核心用户组,以刺激以奖品测试形式提交缺陷。如果在线反馈不够深入,UER研究团队可以邀请用户进行面对面交流并找到更深入的缺陷。这些问题被汇总并提交到Bug列表,可以尽快更正,并且可以在bug的版本中进行说明。
9.发布在线阶段
发布环境的构建包括预发布环境,生产环境以及灰度发布环境的准备。
官方在线工作包括数据库的在线工作和程序文件的上传。
推荐腾讯云毫秒服务引擎,这是一个开源框架,用于在廉价机器群集上开发和运行分布式后端服务。毫秒级服务引擎设置RPC,名称发现服务,负载平衡,服务监控,灰度发布,容量管理,日志管理和键值存储,是中小型互联网公司部署和分发分布式应用程序的理想选择。
(1)发布环境准备
预发布环境准备:预发布环境与生产环境配置系统相同,但通常只有一个测试节点,但它被称为正式生产环境的资源(如DB,Cache,队列等)。 )。
预发布环境主要是在正式发布之前进行完整的回归测试。测试人员可以通过地址参数,cookie,请求标头参数和VPN工具访问预发布环境以进行系统范围的回归测试。在预发布环境中,最常见的错误如下:生产环境代码已更新到最新版本,但数据库更改忘记了操作生产数据库。在这种情况下,测试环境可能是正常的,但预发布环境可能是一个很好的错误。
与开发环境不同,预发布环境不允许开发人员直接联系,以防开发人员提交代码并影响预发布环境中的系统。由于这是维护人员保证在线生产线质量的最后障碍,因此操作和维护标准基本上等同于生产环境。
正式生产环境准备:生产环境包括发布产品所需的所有服务器资源,包括Web服务器,数据服务器,CDN服务等。
灰度发布环境准备:每个项目通常部署到多台计算机上,因此通常需要1-3台服务器才能查看它是否可用。如果失败,您只需要回滚这些服务器,这很方便。灰度发布需要使用跳板和域名绑定,以确保用户仅访问具有最新代码的服务器。
(2)数据库在线
生成数据库项目时,可以先从测试环境导出数据库对象定义脚本,然后将预部署脚本,数据库对象定义和部署后脚本合并到一个构建脚本中,然后将脚本转到主节点数据库服务器生成数据库。然后通过主数据库备份到每个从数据库。
如果系统需要非常高的读取时效性,则可以在数据库层之上构建分布式缓存(如Redis),其性能肯定远高于从数据库读取数据。
(3)程序文件在线编译
组件部署:编译用C/C ++或Java编写的组件,然后通过自动部署工具将它们发布到所有Web服务器。
Web前端部署:通常,静态资源(例如图片,JS代码等)被拆分并发布到CDN云服务。然后,通过GIT,合并测试传递的Trunk版本将发布到官方生产环境,然后通过灰度发布工具同步到所有Web服务器。
IOS APP发布:App Stores是iTunes Store的一部分,是iPhone,iPod Touch,iPad和Mac的唯一常规下载频道。企业用户申请证书后,可以上传和下发IOS应用程序。
Android APP发布:腾讯App建议发布Android版移动应用。应用程序宝提供了反盗版功能,可以有效地帮助用户解决山寨应用程序错误下载的问题。支持点击微信,QQ共享链接,即可打开下载界面。由于没有单一的Android发布市场,建议主流Android市场可以在线。
(4)在线版的整体评价
在线评估阶段需要经过市场,产品,运营,开发,测试等,才能在正式启动之前对在线产品线进行全面评估。这个过程通常由产品经理跟进,他提醒整个团队中的每个人最终确认任何问题。
如果有任何问题,您需要评估是否应该在组和相关人员的当前版本中解决它们。如果是,请尽快解决,以免影响版本发布计划。如果没有,则转移到后续版本。
如果每个人都不提出异议,请发布通知电子邮件的在线版本并进入正式发布流程。
(5)灰度释放
Web前端灰度发布:对比小型Web应用程序,您可以在页面javascript或服务器端实现分流。但是,对于大规模用户Web应用程序,必须使用卸载发布引擎。
组件灰度释放:
IOS APP灰度发布:通常的做法是制作经过数字签名的测试版,然后将其提供给测试用户。
Android APP灰度发布:由于Android没有统一的发布渠道,您只需要逐个替换发布渠道的安装包。
10.优化阶段
(1)研发工作总结
产品上线后,有必要总结产品开发过程,无论是产品还是过程,为后续加强沟通合作和产品运作打下坚实的基础。
产品流程不是静态的,不同的产品有不同的要求。对于一些中小型互联网公司而言,采用完整的研发流程不可避免地需要昂贵,因此如何定制他们所需的研发流程对于这些公司来说是一个关键问题。
(2)上线后收集用户反馈
为了优化产品并调整用户的常见问题和反馈,这个阶段更多的是关于产品和用户的集成,以实现更好的用户体验。
为了更好地收集用户反馈,有必要在所有产品上添加反馈条目,以便用户可以提交反馈内容。用户反馈中的所有问题都将显示在用户反馈平台中,供产品和运营团队跟进。
支付宝用户反馈平台
通常,每天的反馈量为数万,因此产品设计人员每天花费大量时间来浏览并向需求池添加反馈。
(3)产品体验可用性测试
可用性测试的常用方法是邀请一组真实的典型客户将该产品用于典型场景。用户研究人员观察,收听和记录以查找产品中的可用性缺陷。
为什么需要可用性测试?这是因为产品运营团队的员工经常下意识地认为用户会操作,但实际上用户不会按照自己的意愿操作,甚至陷入陷阱。继续。通过可用性测试,您可以通过优化体验设计找到问题并降低用户阈值。
腾讯UER团队用户参与体验研究过程
(4)优化运维系统
产品上线后,运维工作刚刚开始,包括在线工作升级版,服务监控,应用状态统计,日常服务状态检查,突发故障处理,服务日变化调整,集群管理,服务性能评估优化,数据库管理优化。随着PV的应用的增加和减少,应用程序架构可扩展,安全,并且运行和维护开发。
V.摘要
由于互联网业务不尽相同,各公司采用的研发模式自然有其自身的优势。但粗略的研发过程和每个角色的实施方法都是相似的。特别是,产品开发思路主要基于“快速迭代”,“敏捷开发”,“灵活扩展”,“稳定和高效”的原则。
作者:吴涛
来源:微信公众号:吴涛的朋友圈