安全测试是我下个阶段的主学习了
和测试相关的一些专业术语
QA=quality assurance(质量保证)–需求
QC=quality control(质量控制)–软件测试
release 发布
review 评审
risk 风险
risk assessment风险评估
requirements-based testing基于需求的测试
functional testing 功能测试
performance testing 性能测试
non-functional requirements testing 非功能性需求测试(比如性能测试、可用性测试等)
integration testing 集成测试
white box testing 白盒测试
load testing 负载测试
regression testing 回归测试
maintainability testing 可维护性测试
测试的发展方向大体是4种
功能业务测试、性能测试、测试开发、安全测试
1、功能测试也就是以业务测试为重点,测试过程中可以使用一些开发语言如Java、Python写自动化的脚本辅助业务测试
2、性能测试:是不同于功能测试的另外一种测试方向,它是借助压测工具常用的如loadrunner、jemter对业务进行正常、峰值以及异常负载的压测从而监控系统的各项指标,发现系统的瓶颈点进而优化使系统处于最优状态
3、测试开发:是近2年比较流行的一种岗位,它对测试的要求更高,不仅要了解业务知识而且测试人员还要有丰富的开发经验,从而能利用开发知识编写测试工具提升测试效率
4、安全测试:安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程
接口自动化测试
API测试,主要针对的是各模块暴露的接口,通常采用灰盒测试方法。首先以黑盒方式设计如何调用API的测试用例,同时在测试执行过程中统计代码覆盖率,然后根据代码覆盖率情况来补充更多、更有针对性的测试用例
优点:
1、低投入高产出
2、比较容易实现自动化
3、和UI自动化相比更加稳定
目前市场上大部分项目,都是前后端分离的项目,所以产生了大量的接口,而接口自动化测试,主要是对接口进行测试
接口自动化测试呢?这里这几个知识点和工具,要掌握
1、HTTP和HTTPS协议
在主流程的接口测试中,又有大量接口是基于HTTP协议实现,数据安全用HTTPS协议进行保障,所以HTTP和HTTPS协议必须掌握
2、接口文档
在实际工作中,接口的信息的载体除了代码,那就是接口文档了(开发人员提供),了解接口文档的结构、内容和规范可以帮助我们深度参与接口测试以及接口自动化测试
3、接口测试工具Jmeter和Postman
Jmeter是近几年兴起的接口测试工具,它最大的特点就是免费开源,容易学习
Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果, 从而验证响应中的结果数据是否和预期值相匹配
UI自动化测试
UI测试是最接近软件真实用户使用行为的测试类型。通常是模拟真实用户使用软件的行为,即模拟用户在软件界面上的各种操作,并验证这些操作对应的结果是否正确
UI自动化测试的成本比接口测试要高,是因为UI是对接用户的界面,调整最频繁,改动多的部分,所以维护成本高
对一些大型项目,其功能是处于不断地迭代地,虽然界面在调整,但是由于项目周期长,在开发和测试过程中,需要频繁使用自动化测试的脚本进行回归测试,可以提高自动化测试的利用率,提高工作效率,降低工作成本
UUI自动化分为:Web自动化测试和App自动化测试
1 、Web自动化测试
Selenium工具和Robot framework
Selenium
优点
跨平台、跨语言
支持多种浏览器
支持移动端测试
插件多,扩展性强
学习Selenium:先掌握手工功能测试,理解测试的功能业务,再学习HTML、CSS、JS这三大知识,再学习Selenium测试框架,最后学习PO分层管理的思想
Robot framework
Robot Framework是python语言编写的功能自动化测试工具。具有良好的扩展性,支持关键字驱动,支持同时测试多种类型的客户端或者接口,还可以进行分布式测试
优点
关键字驱动测试
可以重复利用
易扩展
支持HTML测试报告
2、App自动化测试
Appium
Appium不仅支持安卓还支持iOS
持续集成
1、什么叫持续集成?
假想一个场景,现在一个测试工程师把自动化脚本编写好了,但是还是需要每天上班点击“开始“运行脚本,而且当开发提交新的版本时,也需要重新运行自动化脚本,那么可以让这个自动化脚本,自动的运行,并且在开发每次发布版本之后,自动执行,就叫做持续集成
2、什么是持续集成工具Jenkins?
Jenkins工具是JAVA编写的开源工具,无论是扩展性,还是实用性,都非常好,很多中小型公司都是用jenkins进行持续集成,一些大型公司也是在jenkins的基础上进行的二次开发
3、如何学习Jenkins
理解CI和CD的概念
CI:持续集成(把多个开发编写的代码,集成在代码仓库,自动进行单元测试,并返回结果)
CD:持续交付(把集成的代码,自动的构建、部署、测试、发布,并返回各个阶段的结果)