**
软件测试工程师基础知识
**一、前置基础知识
1. 计算机基础
- 计算机组成部分:
控制器、运算器、存储器、输入设备和输出设备 - 操作系统分类:
实时操作系统、网络操作系统、批处理操作系统、分布式操作系统、嵌入式操作系统、分时操作系统** - B/S和C/S架构:
B/S:browser/server–浏览器/服务器
只需要一个浏览器,就可以访问的。比如:QQ官网
优点:
可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用。
客户端零安装、零维护,系统的扩展非常容易。
缺点:
在跨浏览器上,BS架构不尽如人意。
在速度和安全性上需要花费巨大的设计成本。
C/S:client/server–客户端/服务器
一定要安装一个客户端才能够用的软件。比如:QQ
优点:
1.交互性强,客户端有着一套完整的应用程序,相对B/S有着更加强大的功能,还可以实现子程序之间的切换;
2.安全性强,只适用于局域网,相对来说其安全比较好;
3.处理信息能力强,C/S的通信量相对B/S是少了很多的;
4.速度较快,更加利于处理大量数据。
缺点:
1.每次更新,都需要更新服务端和客户端。
2.只适用于局域网。
3.操作系统可能会有限制******
4) 常用DOS命令:
常用的内部命令有md、cd、rd、dir、path、copy、type、edit、ren、del、cls、ver、date、time、prompt。常用的外部命令有deltree、format、diskcopy、label、vol、sys、xcopy、fc、attrib、mem、tree。
2. 测试理论
1) 软件测试的目的
答案一:
软件测试为了发现程序存在的代码或业务逻辑错误;
软件测试为了检验产品是否符合用户需求;
软件测试为了提高用户的体验
答案二:
初期:尽量多的发现缺陷生成相关规范
中期:尽量早的发现缺陷
后期:尽量预防问题:通过以往的经验积累
控制成本(贯穿始终)尽量少的时间和人力发现更多的缺陷
2) 软件测试的定义
为了发现程序中错误而执行程序的过程。
3) 软件测试的原则
a.测试应该尽早介入;----需求分析
b.所有的测试都应追溯到用户需求;
c.程序员应该避免检查自己的程序。除了单元测试。因为程序员对于自己的作品,思维具有局限性。无法保证测试质量。交给第三方或者专业测试,运用各种测试技术,利用丰富的测试经验和对bug的敏感,去提高软件的质量;
d.设计测试用例时应考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下还要制造极端状态和意外状态。
e.二八原则,测试发现的错误中80%很可能起源于20%的模块中;
f.对错误结果要进行一个确认过程;
g.制定严格的测试计划;
h.完全测试是不可能的,测试需要终止;
i.妥善保存测试过程中的所有文档。
4) 产品质量模型:
功能性、可靠性、易用性、效率、可维护性、可移植性
5) 测试基本流程:
需求分析-参与需求评审-测试计划-编写测试用例-测试执行(搭建环境准备数据,执行冒烟测试(预测试)然后进入正式测试)-bug管理指导测试结束-输出测试报告
二、Linux和数据库
1. Linux
1) 操作系统介绍:
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
2) 常用linux命令使用
cd用于切换当前用户所在的路径
ls表示列出路径或当前目录下的所有文件信息。
cat表示读取文件内容及拼接文件
rm用于删除文件或文件夹
mkdir创建文件夹
cp用于复制文件或文件夹。
kill结束当前进程
3) vim文本编辑器的使用
VIM是“Visual Interface Improved“的简称,它是Linux最常用的文本编辑器。vim可以完成文本输入、删除、查找、替换及块操作等功能.
2. 数据库介绍
1) 数据库的基本概念
数据库,是统一管理的相关数据的集合。长期存储在计算机内,有结构的、集成的、可共享的、统一管理的数据集合。DB能为个照片那个用户共享,具有最小冗余度,数据间联系密切,而又有较高的数据独立性。
2) 关系型数据库的介绍
Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL
3. SQL语言
1) 数据表操作
查看表:show tables
查看某张表:show employee
查看创建表的信息:show create table employee
修改表结构
添加一个字段:alter table employee add name varchar(25);
添加多个字段:alter table employee add A int
删除一个字段:alter table employee drop A;
删除多个字段:alter table employee drop B;
修改表名:rename table employee to emp;
修改列名:alter table employee change department department depart varchanr(20) after salary;
2) 数据操作-增删改查
新增
删除
修改
查询
去重查询
3) 条件查询
Select 字段名1,字段名2,…from 表名 where+条件
4) 排序
降序排序查询
SELECT id,county_company,cxzddyz FORM power_didianya ORDER BY id DESC
升序排序查询
SELECT id,county_company,cxzddyz FORM power_didianya ORDER BY id ASC
5) 聚合函数(常用)
AVG 返回指定组中的平均值,空值被忽略。
例:select prd_no,avg(qty) from sales group by prd_no
COUNT 返回指定组中项目的数量
例:select count(prd_no) from sales
MAX 返回指定数据的最大值
例:select prd_no,max(qty) from sales group by prd_no
MIN 返回指定数据的最小值
例:select prd_no,min(qty) from sales group by prd_no
SUM 返回指定数据的和,只能用于数字列,空值被忽略
例:select prd_no,sum(qty) from sales group by prd_no
6) 分组
数据库分组查询(group by)
分组查询命令
– group by
– having
分组查询中,select后只能跟分组的字段和聚合函数
查询每个班学生的最大年龄
select classnum, max(age) from tb group by classnum;
分组查询的语句顺序:
having是分组数据进行过滤,可以使用分组j聚合函数。where是对查询数据进行过滤,不能使用分组聚合函数。
7) 分页
作用:加快数据检索速率
greenplum/postgres分页语法
MySQL分页语法
SQLServer分页语法
Oracle/DB2分页语法