3.2.3 发现并解决隐含的版本发布流程问题
软件的研发是一个复杂的系统工程,软件版本的发布是软件研发过程中的一个重要活动,但由于版本的构建和安装部署不属于功能业务范畴,其质量经常被大家忽略,相信不少测试人员对此深有体会。
在软件的安装包或安装后的部署目录中,我们通常可以看到多个目录或文件。图3-10展示的是工具Notepad++的安装目录。
图3-10 Notepad++的安装目录
对于需要测试的软件安装包,以及安装后的文件或目录,测试人员应该清楚它们的来龙去脉。例如,图3-10中的NppShell_06.dll文件是开发人员自主开发的动态库还是引入的第三方组件库?如果是开发人员自主开发的动态库,那么测试人员需要了解开发过程中的代码版本管理流程,以及整个工程版本的构建过程。若是引入的第三方组件库,那么测试人员需要了解待测软件与第三方组件库的接口关系。
Sherry讲述了一个与软件版本的发布和部署相关的案例,并给出了案例中提到的问题的解决方案。
【案例】
Sherry所在的公司为客户开发了一款带条码扫描功能的软件,因软件的某版本的压缩包中缺失一个重要的条码解析文件,导致用户端的扫码功能失效。幸运的是,这个问题在生产端装配产品时进行的调试中被及时发现了。
为什么会出现这个问题?首先,可以从开发人员的设计角度分析原因,见表3-2。
表3-2 条码扫描失败的设计原因分析
接着表3-2中的问题,开发人员可以继续提出“如果将条码解析文件纳入自动构建环节,那么是否可以彻底解决这个问题,且不产生其他问题”等问题。
对于用户端反馈的问题,开发人员通常会产生这样的疑问:测试人员进行了验证,且验证已经通过,为什么未发现此问题?
接下来,可以从测试人员验证的角度分析没有及时拦截此问题的原因,见表3-3。
表3-3 条码扫描失败时的漏测原因分析
看似表3-3中提到的开发人员“好心办了坏事”,测试人员也是“无辜”的,实则说明开发人员与测试人员的工作合作在流程上出现了问题。
下面给出Sherry所在的软件研发团队的解决方法。
(1)规范软件安装包(压缩包)的开发过程
在进行软件的技术架构开发时(通常规划在迭代0阶段完成),系统工程师输出软件的安装部署设计需求。在内部版本测试时,测试人员根据此设计需求开展软件的安装、升级兼容性专项验证工作,并输出测试报告。测试报告需要体现软件的目录结构,确保每一个文件符合预期。
(2)回归测试启动前,对软件版本进行确认
根据上述案例中的问题,测试团队进行复盘,整理表3-4所示的常见的版本发布问题检查单。测试团队在每次回归测试前进行确认,并输出确认报告。
表3-4 常见的版本发布问题检查单
对于软件版本发布的问题,Sherry所在的研发团队通过规范开发人员的设计输出,以及增加测试人员在启动回归测试前对版本进行确认的工作,从而使开发人员与测试人员之间的工作合作在流程上发生改变,最终共同解决问题。在工作中,每个人遇到的关于版本发布的具体问题可能不同,上述解决问题的思路值得我们借鉴。