《软件测试全系列》
本次更新内容为软件测试第十四——十七阶段:
第十四阶段:Java编程基础
本阶段主要讲解变量、数据类型、控制语句、面向对象、数组、异常处理。
所谓知己知彼,百战不殆,只有知道并亲身体验编程的过程以及软件是怎么做出来的,在进行软件测试的时候才会更加清楚哪里更容易出现缺陷,从而让软件测试做的更加有的放矢。
章节1:JAVA入门和背景知识 |
1:计算机语言的发展_人类进化_从碳基到硅基生命 |
2:多种计算机语言特点介绍 |
3:JAVA发展史_三大版本含义_JAVA的核心优势和特点 |
4:JAVA运行机制_JDK&JRE&JVM区别 |
5_JDK下载和安装 |
6_JDK环境变量配置(win7和win10下的操作) |
7_JDK安装成功测试_openJDK开源软件补充 |
8_写出第一个java程序 |
9_第一个java程序的错误总结 |
10_第一个程序的语法详细解析 |
11_常见DOS命令总结 |
12_常见开发工具和开发环境IDE的介绍 |
章节3:变量、数据类型、运算符 |
1_二进制_高淇数字化语录_摩尔斯电码 |
2_二进制和十进制的转化 |
3_注释_单行注释_多行注释_文档注释_注释内容和字节码的关系 |
4_标识符_关键字_驼峰原则 |
5_变量的本质_内存画图_变量声明和初始化 |
6_变量的分类和作用域(局部变量、成员变量、静态变量) |
7_常量和final |
8_基本数据类型介绍 |
9_整型变量和整型常量 |
10_浮点型_float_double |
11_char字符型_转义字符 |
12_boolean布尔型_if语句使用要点_布尔型占用空间问题 |
13_运算符介绍 |
14_算术运算符(二元、自增、自减) |
15_赋值和赋值扩展运算符 |
16_关系运算符详解 |
17_逻辑运算符_短路运算详解 |
18_位运算符详解 |
19_字符串连接符 |
20_条件运算符(三元运算符) |
21_运算符优先级问题 |
22_自动类型转换详解 |
23_强制类型转换 |
24_基本类型转换常见错误_溢出_L问题 |
25_使用Scanner获得键盘的输入 |
章节3:IDEA的使用和第一个java项目 |
1_IDEA下载和安装 |
2_IDEA配置和使用入门 |
3_【项目】台球游戏_绘制窗口_加载图片 |
4_【项目】动画实现_台球沿着随机角度动起来 |
章节4:控制语句、方法、递归算法 |
1_控制语句和现实逻辑对应 |
2_if单选择结构_掷骰子游戏 |
3_if_else双选择结构 |
4_if_elseif_else多选择结构 |
5_switch语句_IDEA更换主题 |
6_循环_while |
7_循环_for循环_dowhile_作业讲解 |
8_嵌套循环和作业案例 |
9_break和continue语句_标签_控制语句底层原理 |
10_写一个年薪计算器_百度查问题的秘诀(相当重要) |
11_个人所得税计算器软件 |
12_方法核心详解_天才思维模型教你高手学习思维模式 |
13_方法的重载 |
14_递归结构讲解_递归头_递归体 |
章节5:面向对象详解和JVM底层内存分析 |
1_面向对象如何学习 |
2_神速理解面向对象 |
3_面向过程和面向对象的区别 |
4_面向对象设计者思维_十分钟学会写诗_写小说(补充娱乐一下,可跳过) |
5_类的定义_属性_方法 |
6_简单内存分析_uml类图 |
7_构造方法核心_内存分析 |
8_构造方法的重载 |
9_JVM(java虚拟机)内存模型 |
10_程序执行过程内存分析详解 |
11_垃圾回收机制原理 |
12_垃圾回收算法介绍 |
13_内存管理_分代机制(年轻代、年老代、永久代) |
14_开发中容易造成内存泄露的操作_垃圾回收知识总结 |
15_this的本质_对象创建过程的4 步_隐式参数 |
16_static_内存分析静态变量和静态方法 |
17_static_静态初始化块_继承树的追溯 |
18_变量分类_局部变量_成员变量_静态变量 |
19_package_包机制_jdk常见的包 |
20__import导入_静态导入 |
21_面向对象三大特征_继承_instanceof的使用 |
22_方法的重写 |
23_final修饰方法和类 |
24_继承和组合 |
25_Object类_toString方法_IDEA常用快捷键 |
26_equals方法 |
27_super关键字_继承树追溯 |
28_封装详解_四个访问控制符_protected的两个细节 |
29_封装详解_javabean的概念_get和set方法 |
30_多态详解 |
31_对象的转型_向上转型和向下转型 |
32_抽象方法_抽象类 |
33_接口的定义_接口的实现 |
34_JDK新特性_接口_默认方法 |
35_JDK新特性_接口_静态方法 |
36_接口多继承 |
37_string类的本质_jdk源码分析 |
38_字符串相等判断_常量池原理 |
39_string类常用方法详解_api文档如何阅读 |
40_内部类基本概念和用法 |
41_非静态内部类_静态内部类_匿名内部类_局部内部类 |
42_面向对象知识大总结(高淇的思维导图) |
章节6:数组和数据存储 |
1_数组_内存分析_三种初始化_两种遍历方式 |
2_数组_内存分析_初始化 |
3_数组创建和三种初始化方式实操 |
4_数组遍历方式(foreach)_简单回顾 |
5_拷贝_Arrays类_排序_查找_填充 |
6_多维数组_定义_初始化_内存分析 |
7_多维数组_Object数组存储表格数据 |
8_javabean和数组存储表格数据 |
9_Comparable接口_对象的排序 |
10_可视化算法网站_冒泡排序_优化冒泡 |
11_二分法查找_折半检索 |
章节7:异常机制 |
1_异常机制_异常分类_常见运行时异常详解 |
2_CheckedException |
3_异常处理_try_catch_finally |
4_声明式异常处理 |
5_JDK新特性_try-with-resource |
6_自定义异常 |
7_百度搜索处理异常的秘诀 |
8_IDEA调试功能_可视化bug追踪 |
第十五阶段:数据库基础
本阶段重点讲解数据库设计思想、SQL语言。
软件只是给用户提供了一个界面,最终的数据要落入到数据库中。软件测试的时候,数据库也是必须测试的一部分。此外,软件测试通常需要一个独立于实际业务的环境,这个测试环境也需要存储测试数据,只有掌握了基本的、常用的数据库操作,才能更好的使用和测试数据库。
章节1: Oracle 数据库的使用 |
01数据库相关概念 |
02Oracle入门 |
03Oracle的安装与卸载 |
04Oracle目录介绍 |
05Oracle用户介绍 |
06Oracle的启动与关闭 |
07Oracle自带客户端工具SQL Plus |
08PL SQL Developer工具介绍 |
09Oracle的表空间 |
10Oracle创建用户 |
11Oracle的权限分配 |
12Oracle的链接配置 |
13Oracle配置监听 |
14Oracle本地网络服务配置 |
15Oracle中的数据类型 |
16Oracle创建表 |
17数据库中的约束 |
18表关系-一对多关系 |
19表关系-一对一关系 |
20表关系-多对多关系 |
章节2:SQL 语言 |
01SQL语言基础 |
02Oracle中的HR用户介绍 |
03编写基本SELECT语句 |
04SELECT语句中的算术表达式 |
05定义空值 |
06定义列别名 |
07连字运算符 |
08文字字符串 |
09去除重复行 |
10基本select语句小节练习 |
11用选择限制行 |
12字符串与日期 |
13比较条件 |
14其它比较条件 |
15逻辑条件关系 |
16优先规则 |
17使用ORDER BY排序 |
18约束与排序小节练习1 |
19约束与排序小节练习2 |
20函数介绍 |
21单行函数介绍 |
22大小写处理函数 |
23字符处理函数(上) |
24字符处理函数(下) |
25数字函数 |
26日期的使用 |
27日期函数 |
28隐式数据类型转换 |
29日期到字符的转换 |
30数字到字符的转换 |
31字符到数字的转换 |
32字符到日期的转换 |
33函数嵌套 |
34通用函数NVL与NVL2 |
35通用函数NULLIF与COALESCE |
36条件表达式CASE与DECODE函数 |
37单行函数小节练习1 |
38单行函数小节练习2 |
39什么是多表查询 |
40笛卡尔乘积 |
41多表连接语法 |
42等值连接 |
43使用表别名 |
44非等值链接 |
45自连接 |
46什么是外连接 |
47SQL99外连接(OUTER JOIN) |
48Oracle中的外连接 |
49SQL99交叉连接(CROSS JOIN) |
50SQL99自然连接(NATURAL JOIN) |
51SQL99USING子句的使用 |
52SQL99内连接(INNER JOIN) |
53多表查询小节练习1 |
54多表查询小节练习2 |
55组函数介绍 |
56分组函数的使用 |
57组函数和 Null 值 |
58什么是创建分组 |
59GROUP BY 子句的使用 |
60约束分组结果(HAVING子句) |
61嵌套组函数 |
62分组函数小节练习1 |
63分组函数小节练习2 |
64什么是子查询 |
65使用子查询 |
66单行子查询 |
67在子查询中使用组函数与HAVING子句 |
68多行子查询中IN运算符 |
69多行子查询中的ANY运算符 |
70多行子查询中的ALL运算符 |
71子查询小节练习1 |
72子查询小节练习2 |
73数据操纵语言(DML)INSERT的使用 |
74插入带空值的行 |
75插入日期格式的数据 |
76从另一个表中复制行 |
77在INSERT中使用默认值 |
78修改表中的数据 |
79从表中删除数据 |
80什么是事务 |
81事务控制语言(TCL) |
82数据库定义语言(DDL)创建表 |
83使用查询创建表 |
84修改表信息ALTER TABLE |
85修改表名与删除表 |
86定义约束原则 |
87定义非空约束 |
88定义唯一性约束 |
89定义主键约束 |
90定义外键约束 |
91定义检查约束 |
92禁用与启用约束 |
93什么是视图 |
94创建简单视图 |
95创建复杂视图 |
96视图中 DML 操作的执行规则 |
97删除视图 |
98什么是内建视图 |
99使用内建视图实现TOP-N分析 |
100Oracle的分页查询 |
101什么是序列 |
102创建序列 |
103使用序列 |
104修改删除序列 |
105什么是索引 |
106索引的使用 |
107创建索引(单行索引,复合索引,函数索引) |
108同义词的使用 |
109创建用户 |
110授予用户系统权限 |
111撤销用户系统权限 |
112通过角色为用户授权 |
113什么是执行计划 |
114执行计划中的表与索引的访问方式 |
115执行计划的使用 |
116oracle的数据导入与导出 |
117exp与imp命令讲解 |
118使用工具导入与导出DMP格式文件 |
119使用工具导入与导出SQL格式文件 |
120使用工具导入与导出PDE格式文件 |
121数据库中其他对象的导入与导出 |
章节3:MySQL数据库的使用 |
01MySQLl简介 |
02MySQL的安装与卸载 |
03MySQL客户端工具 |
04MySQL与Oracle的区别 |
05创建数据库 |
06选择数据库 |
07MySQL数据类型 |
08创建表 |
09删除表 |
10使用DDL语言修改表 |
11创建表时指定约束 |
12修改表完成约束的添加与删除 |
13向表中添加数据 |
14MySQL的自动增长 |
15MySQL中的默认值处理 |
16MySQL中的更新操作 |
17MySQL中的删除数据 |
18MySQL的事务处理 |
19MySQL的基本查询1 |
20MySQL的基本查询2 |
21MySQL的约束和排序数据 |
22MySQL中常见单行函数1 |
23MySQL中常见单行函数2 |
24MySQL的多表查询 |
25MySQL的外连接查询 |
26MySQL中使用SQL99标准查询数据 |
27MySQL中的聚合函数 |
28MySQL中的数据分组 |
29MySQL中的子查询 |
30MySQL中的正则表达式 |
31MySQL中创建普通索引 |
32MySQL中创建唯一索引 |
33MySQL中创建主键索引 |
34MySQL中创建组合索引 |
35MySQL中创建全文索引 |
36MySQL中使用全文索引 |
37MySQL中的用户管理 |
38MySQL中使用Navicat管理用户 |
39MySQL中的分页查询 |
40MySQL执行查询过程介绍 |
41MySQL的执行计划 |
42MySQL的存储引擎介绍 |
第十六阶段:Linux操作系统
本阶段主要讲解Linux操作系统的使用,重点是Linux命令的使用。
在服务器操作系统领域,Linux的使用量要远远多于Windows,其高性能、高稳定性、高可用性、高安全性都远远优于Windows。
软件测试过程中,你更可能会遇到Linux系统充当服务器。
章节1:1Linux操作系统 |
01_Linux_课程介绍 |
02_Linux_Linux简介 |
03_Linux_VMWare安装及使用 |
04_Linux_安装Linux |
05_Linux_目录介绍 |
06_Linux_Linux中的路径 |
章节2:Linux基本命令 |
07_Linux_常用命令_pwd命令 |
08_Linux_常用命令_cd命令 |
09_Linux_常用命令_ls与ll命令 |
10_Linux_常用命令_clear、touch、cat命令 |
11_Linux_常用命令more、head、tail命令 |
12_Linux_常用命令_mkdir命令 |
13_Linux_常用命令_cp命令 |
14_Linux_常用命令_rm、mv命令 |
15_Linux_常用命令_vi、vim |
16_Linux_常用命令_reboot、halt |
17_Linux_常用配置_设置时区 |
18_Linux_常用配置_启动网络 |
19_Linux_常用配置_修改网段 |
20_Linux_常用配置_设置网络类型 |
21_Linux_常用配置_快照与克隆 |
22_Linux_Xshell的安装与使用 |
23_Linux_上传与下载_Xftp的使用 |
24_Linux_上传与下载_lrzsz工具 |
25_Linux_文件的压缩与解压缩处理 |
章节3:Linux软件安装和管理 |
01Yum软件包管理器的命令介绍 |
02Yum中配置阿里云的服务器 |
03Yum中配置本地源和局域网源 |
04Yum命令的练习案例 |
05Yum复习和扩展 |
章节4:ShellScript脚本编程 |
01Shell脚本的介绍 |
02Shell脚本中父子bash的关系 |
03Shell常用的IO操作 |
04shell脚本中变量1 |
05shell脚本中的特殊变量和数组 |
06shell脚本中的管道和变量案例 |
07shell中三种引号的用法 |
08shell中使用逻辑符作逻辑判断 |
09shell中的算术表达式 |
10shell脚本逻辑判断案例 |
11shell脚本的IF判断和for循环 |
12shell脚本的While循环 |
13shell脚本的CASE语句 |
14shell脚本复习总结 |
第十七阶段:Python编程基础
本阶段主要讲解变量、数据类型、控制语句、函数和文件操作、异常处理、模块。
自动化测试一方面依赖于自动化工具,但自动化工具不能真正的脱离人来实现自动化,其背后的机制是测试人员编写的自动化测试代码,目前主流的自动化测试语言中常用的是Java和Python,而且Python也有超过Java的趋势。
章节1:Python入门 |
1:Python介绍_特性_版本问题_应用范围 |
2:Python下载_安装_配置_第一行Python程序 |
3:开发环境介绍_交互模式的使用_IDLE介绍和使用 |
4:IDLE开发环境的使用_建立Python源文件 |
5: Python程序格式_缩进_行注释_段注释 |
6:简单错误如何处理_守破离学习法_程序员修炼手册 |
7:海龟绘图_坐标系问题_画笔各种方法 |
8:海龟绘图_画出奥运五环图 |
章节2:编程基本概念 |
9:程序的构成 |
10:对象的基本组成和内存示意图 |
11:引用的本质_栈内存和堆内存_内存示意图 |
12:标识符_帮助系统的简单使用_命名规则 |
13:变量的声明_初始化_删除变量_垃圾回收机制 |
14:链式赋值_系列解包赋值_常量 |
15:内置数据类型_基本算术运算符 |
16:整数_不同进制_其他类型转换成整数 |
17:浮点数_自动转换_强制转换_增强赋值运算符 |
18:时间表示_unix时间点_毫秒和微秒_time模块 |
19:多点坐标_绘出折线图_计算两点距离 |
20:布尔值_比较运算符_逻辑运算符_短路问题 |
21:同一运算符_整数缓存问题 |
22:字符串_unicode字符集_三种创建字符串方式_len() |
23:字符串_转义字符_字符串拼接_字符串复制_input()获得键盘输入 |
24:字符串_str()_使用[]提取字符_replace()替换生成新字符串_内存分析 |
25:字符串_切片slice操作_逆序 |
26:字符串_split()分割_join()合并_join()效率测试 |
27:字符串_驻留机制_内存分析_字符串同一判断_值相等判断 |
28:字符串_常用查找方法_去除首位信息_大小写转换_排版 |
29:字符串_format格式化_数字格式化操作 |
30:可变字符串_io.StringIO |
31:运算符总结_位操作符_优先级问题 |
章节3:序列 |
32:列表_特点_内存分析 |
33:创建列表的4种方式_推导式创建列表 |
34:列表_元素的5种添加方式_效率问题 |
35:列表_元素删除的三种方式_删除本质是数组元素拷贝 |
36:列表_元素的访问_元素出现次数统计_成员资格判断 |
37:列表_切片slice操作 |
38:列表_排序_revered逆序_max_min_sum |
39:列表_二维列表_表格数据的存储和读取 |
40:元组_特点_创建的两种方式_tuple()要点 |
41:元组_元素访问_计数方法_切片操作_成员资格判断_zip() |
42:元组_生成器推导式创建元组_总结 |
43:字典_特点_4种创建方式_普通_dict_zip_formkeys |
44:字典_元素的访问_键的访问_值的访问_键值对的访问 |
45:字典_元素的添加_修改_删除 |
46:字典_序列解包用于列表元组字典 |
47:字典_复杂表格数据存储_列表和字典综合嵌套 |
48:字典_核心底层原理_内存分析_存储键值对过程 |
49:字典_核心底层原理_内存分析_查找值对象过程 |
50:集合_特点_创建和删除_交集并集差集运算 |
章节4:控制语句 |
51:Pycharm开发环境的下载安装配置_项目创建和运行 |
52:单分支选择结构_条件表达式详解 |
53:双分支选择结构_三元运算符的使用详解 |
54:多分支选择结构 |
55:选择结构的嵌套 |
56:while循环结构_死循环处理 |
57:for循环结构_遍历各种可迭代对象_range对象 |
58:嵌套循环 |
59:嵌套循环练习_九九乘法表_打印表格数据 |
60:break语句 |
61:continue语句 |
62:else语句 |
63:循环代码优化技巧(极其重要) |
64:zip()并行迭代 |
65:推导式创建序列_列表推导式_字典推导式_集合推导式_生成器推导式 |
66:综合练习_绘制不同颜色的多个同心圆_绘制棋盘 |
章节5:函数 |
67:函数的基本概念_内存分析_函数的分类_定义和调用 |
68:形参和实参_文档字符串_函数注释 |
69:返回值详解 |
70:函数也是对象_内存分析 |
71:变量的作用域_全局变量_局部变量_栈帧内存分析讲解 |
72:局部变量和全局变量_效率测试 |
73:参数的传递_传递可变对象_内存分析 |
74:参数的传递_传递不可变对象_内存分析 |
75:浅拷贝和深拷贝_内存分析 |
76:参数的传递_不可变对象含可变子对象_内存分析 |
77:参数的类型_位置参数_默认值参数_命名参数 |
78:参数的类型_可变参数_强制命名参数 |
79:lambda表达式和匿名函数 |
80:eval()函数用法 |
81:递归函数_函数调用内存分析_栈帧的创建 |
82:递归函数_阶乘计算案例 |
83:嵌套函数_内部函数_数据隐藏 |
84:nonlocal_global |
85:LEGB规则 |
章节6:面向对象编程 |
86:面向对象和面向过程的区别_执行者思维_设计者思维 |
87:对象的进化故事 |
88:类的定义_类和对象的关系 |
89:构造函数__init__ |
90:实例属性_内存分析 |
91:实例方法_内存分析方法调用过程_dir()_isinstance |
92:类对象 |
93:类属性_内存分析创建类和对象的底层 |
94:类方法_静态方法_内存分析图示 |
95: __del__()析构方法和垃圾回收机制 |
96:__call__()方法和可调用对象 |
97:方法没有重载_方法的动态性 |
98:私有属性 |
99:私有方法 |
100:@property装饰器_get和set方法 |
101:面向对象的三大特征说明(封装、继承、多态) |
102:继承 |
103:方法的重写 |
104:object根类_dir() |
105:重写__str__()方法 |
106:多重继承 |
107:mro() |
108:super()获得父类的定义 |
109:多态 |
110:特殊方法和运算符重载 |
111:特殊属性 |
112:对象的浅拷贝和深拷贝_内存分析 |
113:组合 |
114:设计模式_工厂模式实现 |
115:设计模式_单例模式实现 |
章节7:异常处理 |
116:异常的本质_调试核心理念 |
117:try_except基本结构 |
118:try_多个except结构 |
119:else结构 |
120:finally结构 |
121:常见异常汇总和说明 |
122:with上下文管理 |
123:traceback模块的使用_异常写入日志文件 |
124:自定义异常类_raise抛出异常 |
125:pycharm的调试模式 |
章节8:文件处理 |
126:file文件操作_操作系统底层关系_写入文件 |
127:编码知识_中文乱码问题解决 |
128:关闭流要点1_try异常管理 |
129:关闭流要点2_with上下文管理_现场还原 |
130:文本文件的读取 |
131:enumerate()函数和推导式生成列表_操作每行增加行号 |
132:二进制文件的读写_图片文件拷贝 |
133:文件对象常用方法和属性总结_seek()任意位置操作 |
134:使用pickle实现序列化和反序列化_神经元记忆移植 |
135:CSV文件的读取_写入 |
136:os模块_调用操作系统可执行文件_控制台乱码问题 |
137:os模块_获得文件信息_创建文件夹_递归创建 |
138:os.path模块_常用方法 |
139:os模块_使用walk遍历 |
140:shutil模块_文件和目录拷贝 |
141:shutil和zipfile模块_压缩和解压缩 |
142:递归算法原理_阶乘计算 |
143:递归算法原理_目录树结构展示 |
章节9:模块 |
144:模块化编程理念_什么是模块_哲学思想 |
145:模块化编程的流程_设计和实现分离 |
146:模块导入_import和from_import语句详解和区别 |
147:import加载底层原理_importlib模块 |
148:包的概念和创建包和导入包 |
149:包的本质和init文件_批量导入_包内引用 |
150:sys.path和模块搜索路径详解 |
151:模块的本地发布_模块的安装 |
152:PyPI官网_远程上传和管理模块_PIP方式安装模块 |
另附各章节课程资料