作为测试领域里混了十三年,在eBay也工作八年之久的一名质量工程师,一直想写一下eBay的测试。进入ebay之前也在别的公司工作过,深知软件测试的弊病。在eBay,也看着它一步步地从注重生产流程演变为注重技术创新的测试模式。
eBay的软件测试工程师称为QE(Quality Engineer)。我们许多项目都采用敏捷开发,每两周一个迭代,PD(开发)和QE(测试)有着清晰明确的分工。开发人员负责软件的设计和实现,同时还负责编写单元测试。我们用Jenkins来做持续集成。code每次checkin之后会自动触发编译,测试和打包。我们要求单元测试的覆盖率达到85%以上。code coverage的结果会由Jenkins的Sonar插件发布到统一的Sonar服务器,可以通过sonar来查看覆盖率是否达标。PD自身对代码要求也很高,经常重构改善代码,这时unit test就能让他们放心地去重构,对于这样的PD,本身也是很有意识地去写unit test。所以我们可能比许多其他公司在推行unit test的标准时遇到的抵触要小得多。这对于产品质量是非常重要。现在很多公司都意识到测试应采取金字塔结构,越底层的测试越要覆盖得广。因为越到上层,测试的代价就越高。这在ebay尤其典型。有些flow很长,一个case跑一个小时,还容易错,等整套测试跑完,黄花菜都凉了!所以能用unit test覆盖就写unit test,能用service test覆盖,就不写ui test,能写短的flow,就不写长的,用少量的end2end测试来做长flow的校验。
单元测试之后,Feature test就属于QE的职责范围了。对于Domain的QE需要熟悉许多相关的领域知识。但不仅仅是页面的功能,包括数据库,service的协议,跟其它Domain的交互接口等都要熟悉。PD也经常需要依赖QE的帮助来创建各种需要的数据。eBay整个网站非常复杂,各个领域之间有着错综复杂的联系,往往新人进来需要相当长的时间才能对各个方面都了解。ebay神奇的地方在于人员的稳定性。我原来部门的同事在ebay待的平均年限居然达到五六年!
在集成和系统的角度编写test case后进行手工测试,之后就要尽快编写自动化测试,不然以后一轮轮的迭代使回归测试的压力越来越大。而我们对于feature的自动化率也有定量的要求。我们部门基本上达到百分之八九十。公司内部开发了一些自动化测试的框架来使QE更好的开发自己的测试用例。对于Web测试,我们是Selenium社区的活跃用户,并且拥有Selenium Grid, Selndroid, iosDriver等框架和工具的开发者和贡献者。
这些自动化测试也都通过CI来定期运行。由于ebay 测试环境很复杂,测试案例碰到的问题和挑战会很多,我们需要通过不断的创新,使用各种技术来解决这些问题, 所以对于Ebay的测试人员的开发能力要求相当高。这是与传统测试不同的地方。难怪有人提出测试已死的说法,我的理解是那种单纯做手工测试的测试已经无法在现在这种快速迭代的开发方式下生存了,取代它的是新的,先进的,以自动化测试为代表的高生产率的测试方式。尤其是我目前所在的平台部门,所测试的产品都是底层框架,云计算,开发工具等产品,本身用户群体就是开发人员,更是需要用编程的方式来验证功能,需要自己编写合适的测试框架,整个测试全程基本上都是自动化。
最早ebay也采用一些商业测试软件来作为测试的工具,现在这类商业工具越来越少。我们更倾向于使用开源工具或自己开发的工具来帮助我们测试。我们也喜欢基于这些开源工具,做一些定制化与扩展来满足我们的一些需求。在我们的眼里,这些工具都能随意组合,以实现测试全过程的自动化。
除了这些工作,QE也需要参与design review, code review, release, support等工作中。而且我们也会在公司内外分享我们的经验与技能,这样,我们才会不断地学习,不断的提高我们的技术水平,同时激发创新的灵感,在提高自我的同时也创造更好的业绩。这就是我眼里的eBay软件测试,希望给你一点启发。
本文首发于微信公众号“小贝爱测试”
转载请注明原文出处
相关推荐
"eBay测试基础架构的演进之路"这一主题深入探讨了这个大型电商平台如何逐步优化其测试环境,以适应不断变化的技术需求和业务增长。作为实践案例,这为其他IT企业和学习者提供了宝贵的运维经验。 一、测试基础架构的...
关于eBay 基础知识的考试 对于eBay卖家有极大的参考作用
eBay还在测试同日送达服务,这一服务旨在帮助卖家更轻松地上架商品,同时提高买家的购买满意度,这也是eBay不断改进自身服务、提升用户体验的明证。 总体而言,eBay在2013年的收费结构调整是一次大胆的市场策略改革...
【描述】"Ebay,克隆源码,测试可以用,php代码写"说明了这个源码已经过测试,可正常运行。使用PHP编写意味着它依赖于PHP语言,这是一种广泛应用的开源服务器端脚本语言,特别适合Web开发。开发者或网站所有者可以利用...
Ebay还非常注重软件开发过程中的质量保证,实施了严格的代码审查制度,确保提交到生产环境的代码都是经过充分测试且符合代码规范的。此外,通过集成持续集成(CI)和持续部署(CD)流程,Ebay能够快速修复bug和部署...
自动化测试和监控系统也是关键部分,可以及时发现并解决问题,保证系统的稳定运行。 总结来说,eBay架构是一个复杂且高度优化的系统,它融合了分布式服务、负载均衡、分布式数据库、缓存技术、搜索引擎、大数据处理...
5. **测试与调试**:在开发环境中测试API调用,确保返回的数据符合预期,并处理可能出现的错误。 在实际开发过程中,建议参考eBay官方的开发文档,理解每个API调用的参数、返回值以及可能的错误码。同时,为了保持...
4. **自动化测试与部署**:建立持续集成/持续部署(CI/CD)流程,实现软件的自动化测试和部署,加快产品迭代周期。 5. **运维自动化**:采用自动化工具监控系统状态,及时发现并解决问题,保证高可用性和高性能。 综...
在eBay的Feature测试环境中,传统的开发集群系统Monterey基于Openstack,依赖虚拟机和软件负载均衡器NeutronLbaaS。然而,随着技术的发展,eBay正在将其基础设施逐步迁移到Kubernetes(k8s)平台,以提高资源利用率和...
通过A/B测试、性能基准测试等方式,Ebay可以持续评估和改进其架构设计。 以上就是Ebay架构在2009年HPTS会议上的主要特点,虽然时间已过去多年,但这些设计理念和实践在现代大型互联网系统中依然具有重要的参考价值...
eBay通过采用微服务架构,旨在提高团队的自主性和敏捷性,同时引入代码质量提升措施,减少技术债务,并强调单元测试。 2. 应用策略:eBay的微服务架构应用策略遵循领域驱动设计(Domain-Driven Design),这意味着...
同时,页面也会提供一组沙箱测试环境的密钥,但若仅需生产环境,则可忽略测试密钥。 4. **配置API密钥文件**:将C:\eggpain\目录下的ebay_apikey.ini模板文件复制至apikey目录,并根据您的eBay账号命名。打开文件,...
在这个压缩包中,我们可能会找到项目的源代码文件,包括控制器、模型、视图、配置、路由文件以及可能的单元测试等。 在实际开发中,使用这样的包有以下好处: 1. **抽象复杂性**:通过封装eBay API的调用,开发者...
此外,为了便于调试和测试,该项目可能包含了日志记录和错误处理机制。Laravel的Log服务可以记录与eBay API交互时的详细信息,而Exception处理则可以确保在出现问题时能够有适当的反馈和恢复机制。 对于前端部分,...
eBay的开发流程中,自动化测试和CI/CD是关键,确保代码的质量和快速迭代。GitLab CI/CD或Jenkins等工具用于自动化构建、测试和部署。 11. **安全性** eBay需要保护用户的隐私和交易安全,因此会实施多种安全措施...
- **注册Sandbox账号**:在沙盒环境下进行API调用测试,确保开发的应用符合eBay的要求和规范。 - **获取Token**:完成上述步骤后,开发者可以获取一个开发者Token,用于访问eBay的物流服务。 #### 6. 接口说明 ...
2. 优化用户体验:通过对比测试不同的广告展示方式、关键词策略等,eBay能够找到最能吸引用户、提升转化率的方案,从而改善购物体验。 3. 提升广告效益:实验平台能够帮助eBay更精确地定位目标用户,优化广告投放,...
eBay的营销实验平台架构可能涉及了A/B测试基础设施、大数据处理系统、机器学习模型和算法,以支持对大量用户行为数据的实时分析和智能决策。 7. **大数据与机器学习/AI的作用**: 大数据为A/B测试提供了海量的...
复杂度的增加和代码库的膨胀对eBay的架构提出了更高要求,因此,eBay正在积极探索新的方法和技术,如微服务架构、DevOps实践、自动化测试和部署流程优化等,以实现更快的时间至市场(Time-to-Market)目标,同时维持...