实验器材版本固化到实验颗粒中的方案评估
<h2>需求背景</h2>
<ol>
<li>器材版本更新会导致线上颗粒不稳定</li>
<li>未来QA人手不够,期望能减少测试工作量</li>
</ol>
<h2>实验器材版本固化到实验颗粒中的方案</h2>
<table>
<thead>
<tr>
<th>类型</th>
<th>说明</th>
<th>备注</th>
<th>方案一</th>
<th>方案二</th>
</tr>
</thead>
<tbody>
<tr>
<td>器材</td>
<td>普通器材</td>
<td>播放时根据颗粒动态下载</td>
<td>固化</td>
<td>固化</td>
</tr>
<tr>
<td>业务组件</td>
<td>砝码等</td>
<td>播放时根据颗粒动态下载</td>
<td>固化</td>
<td>固化</td>
</tr>
<tr>
<td>药品</td>
<td></td>
<td>药品数据已固化在颗粒中</td>
<td>固化</td>
<td>固化</td>
</tr>
<tr>
<td>核心业务组件</td>
<td>commonlua</td>
<td>所有颗粒通用,动态更新</td>
<td><strong>固化</strong></td>
<td><strong>不固化</strong></td>
</tr>
<tr>
<td>Engine能力和资源</td>
<td></td>
<td>所有颗粒通用,跟随应用更新</td>
<td>不固化</td>
<td>不固化</td>
</tr>
<tr>
<td>Engine配置表</td>
<td></td>
<td>所有颗粒通用,动态更新</td>
<td>不固化</td>
<td>不固化</td>
</tr>
<tr>
<td>Player能力和资源</td>
<td></td>
<td>所有颗粒通用,跟随应用更新</td>
<td>不固化</td>
<td>不固化</td>
</tr>
<tr>
<td>播放器</td>
<td>3D播放器等</td>
<td>所有颗粒通用,跟随应用更新</td>
<td>不固化</td>
<td>不固化</td>
</tr>
</tbody>
</table>
<p>1.固化的方案主要分歧点还是在于<strong>核心业务组件</strong>是否固化
2.无论哪个方案都不能保证百分之百还原颗粒的初始测试环境,存在组件(Engine和Player)和应用版本更新会对颗粒运行造成影响
3.可以将核心业务组件等价于Engine和Player组件来分析</p>
<h2>优缺点分析</h2>
<p><a href="https://doc.weiyun.com/45d5623d663cef22a787eaf95ac886f0">https://doc.weiyun.com/45d5623d663cef22a787eaf95ac886f0</a>
红色:固定版本缺点
绿色:固定版本优点</p>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/5e2a2ac2684fd75958da1b6032dd2a15" alt="" /></p>
<h2>总结</h2>
<p>从多个维度进行比较,总体上优点少,缺点多,弊大于利,尤其是器材版本迭代测试工作量虽然有点优化,但是应用引擎等测试工作剧增。因此<strong>不建议使用固化版本的方案</strong>
主要缺点
1) 需要测试回归的器材数量是不固化方案的N倍,N是器材版本数
2) 需要批量修改上线颗粒和用户编辑颗粒的器材版本号,增加额外运营工作
3) 应用新增功能需要兼容器材各个版本,功能开发难度也会变大,遇到无法兼容的情况,对已有颗粒做批量替换,回到2</p>