为什么测试开发是防内卷的基础
测试行业早已不是不用懂代码,随便点点就能混个温饱的低门槛职业了。各种自动化框架、性能安全、大数据、人工智能、持续测试充斥在各个学习指南里,但是随便那一项的学习都有极高的基础要求和长时间的沉淀,在面临着被随时被内卷的我们,怎么面对招聘时日益苛刻的要求?
当下的测试工作难点到底在哪里?
· 如何认知用户交付的最终价值
· 如何构建用户价值的任务拆分及风险管理
· 持续快速完成对被测对象的评估
· 测试有效性
· 被测对象的深入理解
这些问题都需要有良好的测试开发基础来支撑,所以芒果设计了这门课程,从零开始带大家构建完整的技术支持体系,为后续迈入基于DevOps体系下的持续测试提供技术架构。
《测试开发从零开始》的课程内容
这门课程一共分为五大模块
第一个模块:编码基础
· 编程语言学习思路
· 环境搭建
· 基础语法
· 面向对象编程
· 基础类库操作
· 项目实操
对这个模块的学习的第一个目的是从入门简单Python开始,帮助没有编程经验的测试们摆脱代码畏难情绪;通过对Python语法的学习了解程序编译运行原理、编码规则,为更好的了解被测对象打好基础;当然,在有些项目里,我们的开发语言并不一定是Python,所以可以通过对Python的学习,为进一步学习其他编码语言提供帮助。
第二个模块:认识被测对象
· RESTful 架构
· Web 架构后端开发
· 接口管理
· 前端三剑客
· 前端 JS 框架
目前许多公司的开发架构都是使用前后端分离的RESTful架构,所以这个模块主要内容就是符合开发架构的Web 应用的开发。我们使用Django Rest Framework 进行Web 应用的后台开发,使用Vue.js 框架开发前端页面,通过对这些开发技术的了解,系统中数据传递与转变,达到充分了解被测对象的目的。进一步而言,我们又可以增强与开发人员之间的沟通,从而达到赋能开发,提高测试效率的目的,并为未来可能搭建的自动化框架提供技术基础。
第三个模块:持续集成
· 单元测试
· 代码覆盖率
· 静态代码扫描
· Jenkins
· 持续集成基础理念
· 基于 Jenkins 的持续集成实践
持续集成的含义为:频繁的(一天多次的)将所有开发者的工作合并到主干上。在合并主干之前,我们将对于新提交的代码与原有代码集成构建新的应用程序包,并进行诸如静态代码扫描、单元测试、部署以及部门冒烟自动化测试的执行工作,从而保证新提交代码的正确性。
这样做的好处显而易见:我们能在代码提交之后立马能发现部门Bug,这样也易于定位错误和及早在项目里取得系统级的成果。在这个过程中我们也能更加充分地测试系统中的各个单元,这也是我们常讲的Daily Build与Smoke Test相结合带来的绝大好处。通过Code Review、使用SonarQube等静态代码扫描工具,持续进行代码质量的反馈,以便持续改进代码质量。
第四个模块:持续测试
· 分层自动化测试
· 常用网络协议
· 接口自动化
· UI自动化
· 性能测试
· 基于 Jenkins 的持续测试实践
持续集成阶段的单元与部门冒烟结合的测试显然是不能确保新的系统功能正确,所以我们的课程增加了持续测试的内容,通过构建与开发分层架构对应的分层自动化测试,通过一键执行自动化测试,来持续反馈系统质量。
第五个模块:持续部署
· 测试环境管理
· 容器化
· Docker
· 自动化部署
· Ansible
在持续测试阶段的自动化测试,必须依赖自动化的部署测试环境,所以在这个模块,我们学习了测试环境管理,容器化,自动化部署等工具的使用,让我们在完成自动化测试的之前就能一键部署测试环境,自动化构建测试数据,从而提高测试速度。
当然左移提前设计测试的需求等内容我们已经在《敏捷测试从零开始》进行了学习;
而对于测试环境的更多知识,以及维护线上系统的问题跟踪等问题将在后续进行的《运维从零开始》进行学习。
通过对整个课程的学习,帮助大家构建完整的研发域持续交付体系,从零开始编写被测对象、从零开始构建围绕自己代码的持续集成、持续测试、持续交付体系,知其然知其所以然,从而在技术体系上达到独立完成持续测试的要求。
从而完成我们整个课程的目的:
·挑战代码,突破点点点
·构建持续测试体系
·帮助提高产品交付质量