1 验收过程的目的
当项目开发完成,并且经由我们的QA团队验证没有问题后,会把该固件发给LG团队,由对方再次进行验证。
- 不同客户验收方式不一样。比如LG项目,是云端/app先验收,验收完了设备固件再进行验收,从而避免问题界限划分不清的问题。
2 项目具体过程(以LG项目的举例,不同客户可能验收方式不一样)
2.1 DVT
DVT(Development Verification Test)是LG的开发团队来对我们交付的项目进行验证,属于需求验收验证。一般有3~4轮验证。每一轮会发现一些bug,我们进行补丁修正后验证没问题重新交付;LG开发团队再进行下一轮验证。等到全量测试pass了,允许进入CVT。
- 每一轮输出资料:TC,安全验证结果,release note,技术解释文档(若有),更新的固件包/APP包或者云端包,安全测试用的云端包/APP包或者固件包
2.2 CVT
CVT(Commercial Verification Test)是LG的品质团队来对我们固件进行验证,属于用户使用验证。一般有3~4轮验证,每一轮会发现一些bug,我们进行补丁修正后验证没问题重新交付;LG开发团队再进行下一轮验证。等到全量测试pass了,客户发正式邮件通知,CVT结束,并允许项目上线。
- 每一轮输出资料:TC,安全验证结果,release note,技术解释文档,更新的固件包/APP包或者云端包,安全测试用的云端包/APP包或者固件包
- 若是云端项目,在进入CVT后还需要提供还需要提供运维部署和回滚文档给到客户
- 若是固件项目,每一轮验证最好还是有生产验证,确保产测内容没问题
2.3 注意点:
- 在LG内部,品质部的职权在开发团队之上,因此CVT验证出了问题,品质部门会给开发部门施压,然后开发部门会把压力传递给我们
- 如果测到了bug,需要撰写《技术解释文档》,解释问题发生的原因、解决的方案、影响面和相关的测试结果
- 对于云端和APP的bug修复,因为各个模块都是解耦的,因此修复了bug后测试修改点和相关影响面就可以;对于固件类,因为固件都是耦合在一起,所以只要有bug修改,就需要内部重新全量测试
- 在进入DVT和CVT阶段,每一次交付还需要对云端和APP进行安全验证。比如和LG合作,云端和APP就需要fortify和BlackDuck对代码进行静态扫描;对于固件,需要进行fortify静态扫描,同时把固件解密后发给客户进行漏洞扫描确认
- 把所有出现bug的点,从出问题的原因到解决方法,要记录起来。每次测试时要进行回归,确保出现过的问题不会再次出现,防止因为这样的情况降低了客户对我们的信任度
3 上线流程/导入生产流程
3.1 云端/APP项目
对于云端/APP项目,验收通过后,只需要和客户商量项目上线流程,一般会在下半夜。需要开发,运维,翻译支援。
部署由LG进行,部署完成后,我们监控数据是否有异常,此时LG的品质部也会进行一些测试。如果2小时监控没有异常,项目结束。若有异常,判断影响面,看回滚还是后续补丁。
3.2 固件项目
- 在CVT临近结束基本没问题,可以让自动化和品质再验证生产固件产测没问题,并让NPI导入工厂提前让工厂进行生产固件验证(验证需要1周时间)。
- 等到客户正式通知固件验收通过,通知内部项目经理,品质,质量组,NPI,自动化,请他们安排往后生产相关的工作。
- 若是已经量产项目,PMC看现有固件余量,然后得到正式导入该固件的生产批次,并会把相关信息同步到客户。