点击文末小卡片免费获取软件测试全套资料资料在手涨薪更快1、about自动化测试定义把人为驱动的测试转化为机器执行的一种过程重点在于持续集成这个概念优势节约人力和时间成本测试金字塔如上图所示敏捷大师Mike Cohn提出该概念然后由Martin Fowler大师在此基础上提出了测试分层概念以区别于传统的自动化测试。2、自动化测试分层单元自动化测试数据处理层指对软件中最小的可测试单元进行检查和验证一般需要借助单元测试框架如java的Junit、TestNGpython的unittest常见的手段是code review等接口自动化测试业务逻辑层主要检查验证模块间的调用返回以及不同系统、服务间的数据交换常见的接口测试工具有postman、jmeter、loadrunner等UI自动化测试GUI界面层UI层是用户使用产品的入口所有功能通过这一层提供给用户测试工作大多集中在这一层常见的测试工具有UFT、Robot Framework、Selenium、Appium等性价比按照测试金字塔模型以及投入/产出比越向下回报率越高Google的自动化分层投入占比小测试Unit占比70%中测试Service占比20%大测试UI占比10%自动化测试面临的挑战面临的最大挑战就是变化因为变化会导致测试用例运行失败所以需要对自动化脚本不断debug如何控制成本、降低成本是对自动化测试工具以及人员能力的挑战。3、什么样的项目适合自动化测试如上图所示真正工作中无法全部满足以上条件所以需要作出权衡一般来说只需要满足以下几点就可以对项目开展自动化测试图中红色框标注的选项①需求稳定不会频繁变更自动化测试最大的挑战就是需求的变化而自动化脚本本身就需要修改、扩展、debug去适应新的功能如果投入产出比太低那么自动化测试也失去了其价值和意义折中的做法是选择相对稳定的模块和功能进行自动化测试变动较大、需求变更较频繁的部分用手工测试②多平台运行组合遍历型、大量的重复任务测试数据、测试用例、自动化脚本的重用性和移植性较强降低成本提高效率和价值③软件维护周期长有生命力自动化测试的需求稳定性要求、自动化框架的设计、脚本开发与调试均需要时间这其实也是一个软件开发过程如果项目周期较短没有足够的时间去支持这一过程那自动化测试也就不需要了④被测系统开发较为规范可测试性强主要出于这几点考虑被测试系统的架构差异、测试技术和工具的适应性、测试人员的能力能否设计开发出适应差异的自动化测试框架4、常见的自动化测试工具简介UFTUnified Functional Testing即原来的QTPQuick Test Professional Software与STService Test合并而来由HP公司开发是一个企业级的商业自动化测试工具提供了强大易用的录制回放功能同时兼容对象识别模式与图像识别模式支持B/S和C/S两种架构的软件测试Robot Framework一款基于python语言编写的自动化测试框架工具具备良好的扩展性支持关键字驱动支持多种类型的客户端和接口可进行分布式测试Selenium应用于web的自动化测试工具支持多平台、多浏览器、多语言来实现自动化优点如下①开源、免费②多浏览器支持chrome、Firefox、IE、Edge等③多平台支持Linux、Windows、MAC④多语言支持java、python、Ruby、C#、JavaScript、C⑤对web界面有良好的支持⑥简单API简单、灵活开发语言驱动⑦支持分布式测试用例执行5、做UI自动化测试需要什么技能①前端相关技术HTML、XML、JavaScript、TCP/IP协议等②一门编程语言就像前面说的selenium支持多种语言根据个人情况以及项目的开发语言酌情选择③合适的工具选型比如selenium比如UTF等④需求分析项目类型特质生命周期是否适合开展自动化测试等最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走这些资料对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你凡事要趁早特别是技术行业一定要提升技术功底。