前言
taozs
老师画的重点,极其重要!!!
25道多选
测试是为了证明这个系统没有bug。 错
测试四象限:
单元测试(工具)、组件测试(开发人员做,dao
层 controller
层,测试驱动开发),自动化,面向技术;
功能测试(接口测试,主要讲了rest接口; restAssured
,curl
,postman
),selenium
,自动化,面向业务;
探索测试:用户验收测试,可用性测试,面向业务;
系统测试:性能、压力,“非功能性”测试,面向技术,Jmeter
;
测试金字塔:测试投入比例: unit
> 接口测试 > UI
;
selenium grid
: 浏览器的兼容性测试。
cobertura
不是静态代码测试工具。
PMD
,ckeck style
, findbugs
(检查字节码) 特点。
Sonarqube
测试用例的设计方法:
基于直觉和经验的方法(名称)☆:随机测试…
基于输入域的方法:等价类划分法,边界值分析(互补的关系);
基于组合及其优化的方法(名称):解决测试用例过多的问题;
基于逻辑覆盖的方法:各个覆盖的意思。条件覆盖100% ≠ 分支覆盖100%;
测试controller
的三种方法:new ExampleController
;@SpringBootTest
(意味着要使用真实数据库);@WebMvcTest
;
HTTP
协议:四个动词,accept
,location
, 状态码;
testrestTemplate
,不是使用mockmvc
的环境,可以构建自己的请求头,请求体;
curl
常用参数: -i
-L
-v
;
postman
提供的功能:保存cookie
,cookie
共享,断言,环境(全局变量);
restAssured
:测试rest API,可以测试其他语言。Jsonpath
验证,写测试用例的方式(given,when,then);
docker常用参数: -P
-d
-e
,容器与虚拟机的区别;
持续集成:在合并到版本库之前需要进行构建测试(静态,单元)。分层构建(分层级,这个层级做单元测试… 快速反馈)。 哪些?
Jmeter
:分布式部署(selenium
),可以指定用例数,支持time
,支持ssl
,支持命令行,支持断言;
selenium ide
selenium
与robot framework
关系?
第一章 序言 软件开发过程
软件工程的发展
-
敏捷开发
以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。力求在最短的周期内开发出产品的核心功能,在后续的生产周期内,按照新需求不断迭代升级、完善产品。
-
敏捷关键词
迭代
反馈
-
XP 极限编程
价值观:沟通、简单、反馈、勇气;
编程方法:结对编程、测试驱动开发、重构、简单设计;
迭代前准备阶段
-
用户故事
3C原则:卡片
Card
、会话Conversation
、确认Confirmation
-
软件开发成本
总成本 = 开发成本 + 维护成本;
维护成本 = 理解代码的成本 + 修改成本 + 测试成本 + 部署成本;
维护成本 >>> 开发成本
迭代开发阶段
第二章 软件测试概念
测试目的
- 对软件进行充分的测试,找到其中的bug,并进行修复。√
- 证明代码中没有bug。 ×
- 软件质量:功能性、可用性(简单安装,轻松使用,用户界面良好)、可靠性、性能、容量、可维护性、兼容性、可扩展性;
测试四象限
-
象限一:测试驱动开发,关注代码内部质量,用户不关注,自动化,面向技术。
-
单元测试:错误发现的早,成本就越低;与写功能代码同时进行(测试驱动开发);黑盒测试(等价类划分、边界值分析法、错误推测法、因果图法、功能图法);白盒测试(逻辑驱动法和基本路径法,各种覆盖);快速反馈是单元测试的首要目标;
驱动和桩:驱动模块:对底层或子层模块进行测试所编写的调用这些模块的程序;桩模块:对顶层或上层模块进行测试时所编写的替代下层模块的程序。
-
组件测试:也称为集成测试;
非渐增式测试模式:先分别测试每个模块,再把所有的模块按设计要求放在一起结合成所要的程序;
渐增式测试模式:把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试;
-
-
象限二:更高层的测试,关注外部质量和客户需要的功能(对设计的软件功能的测试),尽量验证业务层的逻辑,自动化,面向业务。
主要讲了
restAssured
、curl
、postman
、selenium
-
象限三:确认需求是不是用户真正需要的;是不是错误的理解了需求(可能会提出新的需求);通常是用户或客户执行;可用性测试;面向业务;手工测试;
-
象限四:系统测试,现实的计算机环境
性能测试(性能指标,性能瓶颈)、压力(长时间,超负荷的运行,测试系统的性能,可靠性和稳定性)、容量(某项指标的极限值):目的有所不同,但手段和方法在一定程度上相似;
安全性、可靠性(在规定条件和规定时间下完成规定功能的能力)、容错性(异常条件下是否具有防护性等):目的不同,方法和手段也不同;
兼容性测试