软件测试概述
任何一款软件或应用在上线之前都必须要经过各种功能,性能等的测试,本篇将带你快速了解软件测试相关的基础知识。
一、概述1)简单理解,什么是软件?
软件:即控制计算机硬件工作的工具。
2)软件基本组成3)软件产生过程4)简单理解,什么是软件测试?
软件测试:即使用技术手段验证软件是否满足使用需求
以用户登录验证为例:5)软件测试目的
减少软件缺陷(bug),保障软件质量
二、测试主流技能1、功能测试
功能测试主要验证程序的功能是否满足需求
同样以用户登录为例
2、自动化测试
使用代码或工具代替手工,对项目进行测试
3、接口测试
使用代码或工具对服务端提供的接口进行测试,验证程序中的接口是否访问正常。
4、性能测试
模拟多人使用软件,查找服务器缺陷。
1)工具实现2)代码实现
5、就业方向选择1)功能测试+接口测试2)功能测试+性能测试3)功能测试+web自动化
当然,多多益善,时间有限的情况下选择上面的一种组合学习即可
三、测试分类1、按阶段划分1)单元测试
是指针对程序源代码进行测试。
2)集成测试
又称接口测试,针对模块之间访问地址进行测试。
3)系 ...
项目1
一、软件开发概述1、软件开发流程,如下
2、项目角色分工(了解)1)项目经理: 对整个项目负责,包括任务分配、把控进度等2)产品经理: 进行需求调研,输出需求调研文档、产品原型等3)UI设计师: 根据产品原型输出界面效果图4)架构师: 项目整体架构设计、技术选型等5)开发工程师: 代码实现(如前端开发,后端开发)6)测试工程师: 编写测试用例,输出测试报告7)运维工程师: 软件环境搭建、项目上线
3、软件环境3.1 开发环境(development)开发人员在开发阶段使用的环境,一般外部用户无法访问
3.2 测试环境(testing)专门给测试人员使用的环境,用于测试项目,一般外部用户无法访问
3.3 生产环境(production)即线上环境,正式提供对外服务的环境
4、技术选型即项目中使用到的技术框架和中间件等
微服务(1)
进入微服务架构的学习
一、概述1、概述1.1 单体架构1)概念
所谓单体架构,就是将业务的所有功能集中在一个项目中开发,打成一个包部署。
2)优缺点优点:架构简单,部署成本低,适合小型项目,如:学生管理系统缺点:耦合度高,扩展性差。
1.2 分布式架构1)概念
所谓分布式架构,即根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务。
2)优缺点优点:耦合度低,扩展性好,有利于服务升级拓展。适合大型互联网项目,如京东、淘宝。缺点:架构复杂,难度大3)服务治理问题虽然分布式架构有很多优点,但也面临如服务治理的问题,如下
1、服务拆分粒度如何?2、服务集群地址如何维护?3、服务之间如何实现远程调用?4、服务健康状态如何感知?
指对服务进行管理、监控和控制,以确保其满足业务需求和合规要求。
1.3 微服务微服务:一种良好的分布式架构方案。微服务架构,是服务化思想指导下的一套最佳实践架构方案。服务化,就是把单体架构中的功能模块拆分为多个独立项目。
“良好”主要体现在以下几点,即其特征
1、单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,避免重复业 ...
AOP
本篇将带你快速了解Spring事务管理以及面向切面编程相关知识。
一、事务1、概述1)事务是一组操作的集合,是一个不可分割的工作单位,这些操作要么同时成功,要么同时失败。2)事务作用︰在数据层保障一系列的数据库操作同成功同失败3)Spring事务作用︰在数据层或业务层保障一系列的数据库操作同成功同失败
2、事务操作1)开启事务: start transaction / begin;
一组操作开始前,开启事务
2)提交事务: commit;
一组操作全部成功后,提交事务
3)回滚事务: rollback;
中间任何一个操作出现异常,回滚事务
3、事务管理1)注解: @Transactional2)位置: 业务(service)层的方法上、类上、接口上3)作用: 将当前方法交给spring进行事务管理,方法执行前,开启事务;成功执行完毕,提交事务;出现异常,回滚事务4)开启事务管理日志
1234#开启事务管理日志logging: level: org.springframework.jdbc.support.JdbcTransactionManager: de ...
登录校验
本篇将带你快速了解与登录校验相关的技术,如JWT令牌,Filter过滤器,Interceptor拦截器等。
一、JWT令牌1、概述JWT(JSON Web Token) ,官网:https://jwt.io/
定义了一种简洁的、自包含的格式,用于在通信双方以json数据格式安全的传输信息。由于数字签名的存在,这些信息是可靠的。
组成:1)第一部分:
Header(头),记录令牌类型、签名算法等。例如: {“alg”:”HS256” “type”:”JWT”}
2)第二部分
Payload(有效载荷),携带一些自定义信息、默认信息等。例如: {“id”:”1”,”username”:”Tom”}
3)第三部分
Signature(签名),防止Token被篡改、确保安全性。将header、payload,并加入指定秘钥,通过指定签名算法计算而来。
2、生成JWT1)引入JWT依赖在pom.xml文件中添加如下依赖
123456<!-- JWT令牌依赖--><dependency> <groupId>io.jsonwebtoken&l ...
MyBatis增删改查(SpringBoot版)
本篇将带你快速学会在SpringBoot工程下,实现MaBatis对数据的增删改查功能。
一、环境准备创建SpringBoot工程,数据库表 tb_user,实体类User,以及引入Mybatis相关依赖(创建springboot工程时已经引入),配置Mybatis(数据库连接信息),这些工作我们在 springboot整合 mybatis 的时候就已经完成,如果有不清楚的可以回看上一篇文章。
注意在创建工程,引入Mybatis相关依赖的时候也把 lombok勾选上。
在做数据的增删改查前,先来查询一下数据库 db1下的 tb_user表,一共四条数据,如下。方便后面测试后进行查看验证。
二、删除需求:根据id删除用户数据,如删除 id为4的用户数据。
1、编写SQL定义接口方法,在 UserMapper接口下添加删除方法
123// 根据id删除用户数据,参数占位符动态获取用户id@Delete("delete from tb_user where id = #{id}")public void delete(Integer id);
2、 ...
SpringBoot整合MyBatis
今天通过一个案例来学习一下 SpringBoot整合 MyBatis,以及介绍一下 lombok工具。
一、整合1、案例以Mybatis查询所有用户数据为例。
1.1 准备1)创建SpringBoot工程、数据库表user、实体类User
在数据库 db1下新建一个 tb_user表,并添加一些数据,查询该表数据如下。建表对应的SQL语句如下
1234567create table tb_user( id int primary key auto_increment comment 'ID,唯一标识', username varchar(20) not null unique comment '用户名', name varchar(10) not null comment '姓名', age int comment '年龄', gender char(1) default '男' comment '性别') comment '用户表';
创建 Us ...
MySQL多表设计与查询
之前介绍了MySQL的DDL,DML以及DQL,今天来看一下MySQL的多表设计与查询。本篇将带你快速了解MySQL的多表设计与查询,还有了解MySQL事务以及索引相关的内容。
一、多表设计1、一对多例如,部门和员工即为一对多的关系。一个部门可以有多个员工,但一个员工只能归属于一个部门。
2、一对多-外键2.1 问题分析思考:在员工表和部门表中,部门数据可以直接删除,然而还有部分员工归属于该部门下,此时如果强行删除就会出现数据的不完整、不一致问题。
要操作的两张或多张表,如果在数据库层面并未建立关联,就无法保证数据的一致性和完整性的。(添加外键约束解决)
2.2 添加外键约束1)语法
12345678-- 创建表时指定create table表名( 字段名 数据类型, ... [constraint] [外键名称] foreign key (外键字段名) references 主表(字段名));--建完表后,添加外键alter table 表名 add constraint外键名称 foreign key (外键字段名) references 主表(字段名);
2 ...
ERP
一、ERP前世今生1、从纸卡到移动设备1913 年,工程师 Ford Whitman Harris 提出了史称经济订货批量 (EOQ) 的模型,这是一个用于生产调度的有纸制造系统。随后的几十年中,EOQ 一直是制造业的标准。1964 年,美国工具制造商 Black & Decker 打破了这一局面,将大型机与 EOQ 概念相结合,首开先河地采用了物料需求计划 (MRP) 解决方案。此后,MRP 一直是制造业的标准,直到 1983 年制造资源计划(称为 MRP II)的提出。MRP II 采用各种不同的模块来提供关键的软件架构组件和集成的核心制造组件,包括采购、物料清单、排程和合同管理。不同的制造任务首次被集成到了一个共同的系统中。此外,MRP II 还提供了一个美好的愿景,即组织可以利用软件来共享和集成企业数据、改进生产计划、减少库存和浪费(废料),从而提高运营效率。随着 20 世纪 70 年代和 80 年代计算机技术的发展,企业开始提出类似 MRP II 的概念来处理制造以外的业务活动,包括财务、客户关系管理和人力资源数据。到了 1990 年,技术分析师针对这类新的业务管理软 ...
MySQL(2)
前面介绍完了MySQL的DDL和DML,今天来学习一下DQL。
一、数据库操作-DQL1、DQL-基本查询DQL,Data Query Language(数据查询语言),用来查询数据库表中的记录。查询的关键字: SELECT。查询的语法结构如下图
1)查询多个字段
1select 字段1,字段2,字段3 from 表名;
2)查询所有字段(通配符)
1select * from 表名;
3)设置别名
1select 字段1 [as 别名1],字段2 [as 别名2] from 表名;
4)去除重复记录
1select distinct 字段列表 from 表名;
注:*号代表查询所有字段,在实际开发中尽量少用(不直观且影响效率)。
2、DQL-条件查询2.1 基本语法1select 字段列表 from 表名 where 条件列表;
2.2 常用的运算符在条件查询中有一些常见的运算符,如比较运算符和逻辑运算符,如下图
这里重点是模糊查询,注意一下匹配单个和匹配任意就行。
eg1:从tb_user表中查询年龄在20-25岁之间(包含)的用户信息
1select * from tb_ ...