我很好奇其他团队确保在代码发布(或部署)在主要版本中出现之前采用何种标准.
我不是在寻找每个人的具体答案,但这里有一个关于我想要了解的内容的想法.
对于基于服务器的应用程序,您是否确保监控已到位?到什么程度......只是它响应ping,它可以在任何给定时刻点击它的所有依赖关系,应用程序实际服务的逻辑是合理的(例如,计算2 + 2的服务实际返回"4 ")
在发布代码之前,您是否需要自动构建脚本?意思是,任何开发人员都可以走进一个新的盒子,从源代码控制中抽出一些东西,然后开始开发?当然,还有像操作系统和IDE这样的东西.
基于服务器的应用程序的自动部署脚本如何?
您需要什么级别的文档才能"完成"项目?
如果它是基于服务器的,你是否确定你有一个完整的系统所有主要组件的备份计划?
您是否执行代码质量标准?想想StyleCop for .NET或圈复杂度评估.
单元测试?整合测试?性能负载测试?
您是否有处理应用程序错误日志记录的标准?错误通知怎么样?
同样,不要寻找上述任何事情的答案的逐行打孔列表.简而言之,代码发布必须完成哪些非编码项目才能正式被认为是为您的团队"完成"?
最小化:
单元测试工作
集成测试工作
在测试阶段部署好
在测试阶段手动简短检查
更好:
单元测试工作
checkstyle好的
集成测试工作
传递了jmeter和测试覆盖率等指标
在测试阶段部署好
在测试阶段进行一些手动测试
最终部署在生产阶段
所有单元和集成测试都可以自动运行,最好是在由ant或maven完成的CruiseControl等连续集成服务器上运行.在开发webservices时,使用soapui进行测试工作正常.
如果使用了数据库,则在部署之前完成自动升级(例如使用liquibase).使用外部服务时,需要进行额外的配置测试,以确保URL正常(来自应用程序的头请求,数据库连接,wsdl get,...).在开发webpps时,某些页面上的HTML 验证将非常有用.手动检查布局(例如使用browsershots)将非常有用.
(Java开发的所有示例链接)
最后(但并非最不重要):所有验收测试仍然通过?产品是主人想要的吗?在进一步前,在测试系统上与他进行实时审查!