在LinkedIn,质量是产品发布的看门人。上周,我们告诉了大家
测试前沿,LinkedIn的
web框架。今天,我们将带您看看我们的测试生命周期。
如果我们按时交货,但产品有缺陷,还是证明我们没有按时交付。——Philip Crosby
测试生命周期
看看在LinkedIn中测试生命周期是什么样子的:
1.需求收集
产品团队定义了功能需求和设计者创建的线框图。在设计和产品需求文档(PRD)被创建后,一切都涉及到整个团队,包括开发人员和测试工程师。
2.测试计划
在生命周期的下一步是对产品或功能的所有测试,进行计划,包括:
创建测试计划
按高、中或低的顺序进行优先测试用例,这样他们可以基于项目的范围运行
举行一个测试计划和测试用例评审会议,以确保沟通和充分理解测试范围
3.功能测试
功能测试和回归测试在测试计划完成后开始。这个测试包括:
新功能测试:浏览器兼容性测试,使用VMWare(Firefox、Safari、Chrome、IE)。
Bug生命周期:在JIRA提交Bug。对bugs进行修复和验证。
回归测试:确保没有任何现功能坏了(即:不可用)。我们使用
自动化测试用例组进行测试。
A / B测试:我们一步一步来发布功能。首先发布到内部组织,然后是公司,所以我们要捕获所有边界情况。毕竟错误是固定的,我们会慢慢倾斜于我们的用户。
4.自动化
自动化是并行在功能测试中完成的。我们使用
Selenium with
Ruby进行UI自动化和Selenium with Java进行
移动版自动化。
单元测试也为新功能而写。在LinkedIn,我们发布一个新特性后,100%自动化时间表就相应计算出来了。
5.回归运行和CI
我们创建一个持续集成(CI)在Hudson上运行,开始单元测试运行和自动化的回归测试用例集。为了一个分支通过“GO”的标准,它必须在上述所有取得成功。
6.发布分支的创建
分支的特性确认合格后,与所有其他功能分支合并发布。执行回归测试和功能测试分支的发布,以确保分支合并之间的兼容性。
7.部署和测试
接着,发布分支被部署到交付的准备环境。执行完整性测试,用不同的措施来保证向后兼容的代码被推为应用程序和服务。所有发现的问题都需要修复以确保顺利部署。测试工程师进行最后一轮回归和特性测试,开发人员需要查看日志。
8.性能测试
我们的性能团队要进行JMeter测试,确保功能可以在工作中正常负载。这些测试在测试环境上运行,1/8th 的生产负荷。
9.产品推进
我们密切关注代码,使其生产方式,确保交付出去的代码具有良好的质量。这几乎是可以庆祝的事。
10.监控
我们的工作还没有完成。我们还需要不断地通过监控日志和实时图表,以确保一切都顺利工作。
11.补丁(如果需要)
功能运用生产环境中后,我们的客户服务团队、产品团队和工程师会不断地从我们的网站会从反馈工具中监控到所有客户的反馈。如果有任何问题,我们试图尽快修复它们。在大多数情况下,会在24小时内修复。这被称为hotfixing bug。
在LinkedIn的测试工作
我们的目标是,在LinkedIn中,发挥产品的可用性,提供最优质的产品。作为测试工程师,我可以得到一个良好的睡眠,你要知道在LinkedIn中永远不会在任何环节对质量进行妥协。
Quality is never an accident; It is always the result of intelligent effort. -- John Ruskin
质量从来不是偶然的,它总是聪明努力的结果。——约翰·拉斯金