🌊 对于未来发展趋势的总结
💦 原句:
面对势不可挡的 ABC(AI + Big Data + Cloud)技术浪潮,无论是从被测对象本身的复杂性、多样性和规模性来讲,还是从测试技术以及测试基础架构从无到有的发展来讲,都需要测试工程师的知识面、测试设计能力、测试开发能力和测试平台化抽象能力有质的提升。对 此,我结合趋势总结了以下三点。
第一,自动化测试在软件质量工程中的地位发生了质的变化,从原本的“以自动化测试为 辅”变成了“以自动化测试为主”。 所以,你不仅需要从业务本身出发来对软件进行手工测试验证,还需要掌握完整的自动化测试开发技术来设计自动化测试用例。
第二,传统软件企业的产品发布通常以“月”为单位,因此,测试执行总时间不会成为关键问题。但是,对于互联网企业,尤其是大型电商网站,产品上线周期通常都是以“天”甚至 是以“小时”为单位,留给测试的时间非常有限,这也就对测试执行总时间提出了极大的挑 战。为了解决这个难题,你需要一套完善的高并发测试执行基础架构的支持。 所以,作为测试工程师,你就必须掌握设计开发测试基础架构的关键技术。
第三,随着自动化测试的规模化,测试数据准备的各种问题被逐渐暴露并不断放大,成为影响自动化测试效率以及稳定性的“拦路虎”。早期的传统测试数据准备方法,无论是从测试数据准备的时间成本,还是从测试数据的稳定性和测试数据创建的便利性上看,都已经很难适应大规模自动化测试的要求。 所以,你必须系统性地思考如何才能将测试数据的准备工具化,服务化,最终实现平台化。
💦 思考
- 自动化测试逐渐成为未来的趋势。在实际的工作中,自己也意识到自动化测试的重要性,尤其是在回归测试方面。
- 不仅需要掌握自动化技术,而且还要能够开发测试工具以适应未来测试的复杂性,所以在未来的工作过程中,一定不能把自己的开发能力落下去!
🌊 对于个人发展的建议
💦 原句
理想是美好的,但道路往往是曲折的,因为你和我都非常清楚,技术人想要“一口吃成胖 子”几乎是不可能的。但是,不要气馁,我在这个专栏里根据多年的从业经验,给你总结了 下面这个“三步走”的策略,助你破茧成蝶。
第一步,成为互联网时代合格的测试工程师。 如果你是入行不满 3 年的测试工程师,一定对此有迫切需求。此时,你必须具有快速学习的能力,能迅速掌握被测软件的业务功能与内部架构,并在此基础上运用各种测试方法,尽可能多地发现潜在缺陷,并能够在已知缺陷的基础上进一步发现相关的连带缺陷。 从知识体系上看,你需要有比开发人员更全面的计算机基础知识,还需要了解互联网的基础 架构、安全攻击、软件性能、用户体验和常见缺陷等知识。从测试技术上看,你需要能够使 用常见的测试框架或者工具,需要具有一定的自动化测试脚本的开发能力,这可以把你从大 量重复的工作中解放出来,然后你才能有时间去做更有意思的工作。
第二步,成为互联网时代优秀的测试工程师。 如果你想从“合格”变为“优秀”,那必须先认识到两者的差距在哪里。 首先,合格的测试工程师关注的是纯粹的测试,而优秀的测试工程师关注更多的是软件整体 的质量,需要根据业务风险以及影响来制定测试策略,有效控制测试的时间和成本,并且能够对测试框架以及工具做出适合项目需求的选型。 以新房装修为例,合格的测试工程师就是各个工序的装修师傅,他们只管按照设计要求做好 自己的工序,而优秀的测试工程师更像是个包工头,他们关心的是整体交付的质量。 其次,优秀的测试工程师不仅可以娴熟地运用各类测试工具,还非常清楚这些测试工具背后 的实现原理,以及多个同类测试工具各自的优缺点和适用场景。 在遇到问题时,你还需要能够通过二次开发解决工具和框架层面的问题,对于没有合适可用 工具的场景,可以自行设计开发一些小工具来更好地展开测试工作。 当然这个阶段,你很有可能会接触到一些代码级的测试,这就要求你具有一定的开发背景, 并能够很好地理解代码级的测试技术。 最后,随着自动化测试用例的不断增长,自动化测试的关注点也从原本的“如何把手工测试 步骤用自动化脚本实现”变成了“如何构建低维护成本,可以灵活组装的自动化脚本”,这 就要求你理解自动化脚本的分层设计、页面对象模型以及业务流程模型,并且能够把这些设 计应用到你的测试框架里。
第三步,成为互联网时代的测试架构师。 当你经历了各种类型的测试项目,就会发现这些项目本身虽然差异巨大,但是有很多东西是 相通的。 比如,面对大量测试用例的执行,无论是 GUI 还是 API,都需要一套高效的能够支持高并 发的测试执行基础架构;再比如,面对测试过程中的大量差异性数据要求,需要统一的测试数据准备平台;再比如,为了可以更方便地和持续集成与发布系统(CI/CD)以解耦的形式 做集成,需要统一发起测试执行的接口。 这样的例子还有很多,如果你已经能够站在这样的高度看待软件测试,那么恭喜你,你已经 具备了测试架构师的视野。当然,你还必须对一些前沿的测试方法和技术有自己的理解,并 能够在恰当的时候、因地制宜地把它们应用到实际项目中。 这就是我给你总结的“三步走”进阶策略了。千里之行始于足下,接下来我会从测试基础知 识讲起,结合实际案例,由浅入深地带你温故知新,提升自己的软件测试技能。
💦 思考
- 第一步要求,需要具备快速学习的能力,了解被测软件的业务功能和内部架构;从知识储备上讲,不仅要对各种测试技术和工具熟悉,对于计算机基础也要有更深的理解;对于自动化测试也需要掌握。
- 第二步要求,需要具备一个全局的视野,不再将眼光仅仅聚焦在测试本身上,而是要慢慢开始从软件整体的角度来思考;对于自动化测试,能够从原来的会自动化测试,到选择哪种自动化测试。感觉第一步和第二步就是练武一样,从一开始的记招式,到最后的忘记招式,用心去打。我们学习东西也是这般,一开始都是模仿,到最后就是在原来的基础上进行创新。
- 第三步还有点不是很理解,在后面的工作中慢慢去发掘吧!