目前国内公司一般应用上线所经历的流程基本如下图所示:
大公司流程:流程相对成熟,各个环境也相对完善,上线流程基本是专人专职,所以还是比较规范,上线效率取决于部门之间的协作以及OA审批流上。
小公司的流程:相对简单,仅保留必要的几个环境,有的小公司甚至直接上生产上验证。基本上是一人身兼数职。
下面着重讲下几个环境的用途和说明吧
开发环境开发环境是程序猿们专门用于开发的服务器,配置可以比较随意, 为了开发调试方便,一般打开全部错误报告。
测试环境该阶段主要对系统的准确性及完整性等方面进行测试。 主要进行: 功能确认测试、运行测试、强度测试、恢复测试、安全性测试等。所以测试环境可能有多套,如:功能测试环境,性能测试环境,集成测试环境。 系统测试的测试人员由测试组成员(或质量保证人员)或测试组成员与用户共同测试。在整个系统开发完成, 即将交付用户使用前进行。在这一阶段,完全采用黑盒法对整个系统进行测试。
UAT环境验收测试是向未来的用户表明系统能够像预定要求那样工作。 经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了, 接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。一般验收测试都是由产品和业务人员验收。
灰度环境灰度发布,是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
正式环境是指正式提供对外服务的,一般会关掉错误报告,打开错误日志。可以理解为包含所有的功能的环境,任何项目所使用的环境都以这个为基础,然后根据客户的个性化需求来做调整或者修改。
总结
环境是软件测试的基础,如果使用了错误的测试环境,可能会出现以下情况:
● 测试出完全错误,甚至是相反的结果。
● 测试出的结果和实际使用中的结果有很大偏差。
● 忽略了实际使用可能会出现的严重错误,将严重的bug遗留到客户的手中。
● 导致项目返工,浪费巨大的资源。
● 导致项目延期,公司团队信誉的损失。