一、软件测试的定义
所谓的软件测试指的就是通过“手工或自动”的手段对被测队形进行测试操作,从而验证实际结果与预期结果之间是否存在差异。
二、软件测试的作用和目的
1.测试工作可以发现并修复软件中存在的缺陷,从而提高用户对软件的使用信心
2.测试操作可以记录软件使用过程中产生的一些数据,从而为决策者提供依据
3.测试操作可以降低同类型软件开发的风险
4.总结:测试工作的目的就是通过尽可能少的人力 财力 物力来查找冰姐姐软件中存在的缺陷从而降低商业风险等
三、测试原则
1.测试证明软件存在缺陷,我们的测试工作智能证明当前软件有缺陷不能证明它没有缺陷
2.不能执行穷尽测试,具体的测试操作不能讲所有的情况都意义罗列出来,所以测试工作肯定有终止的时候
3.测试应当尽早接入,一般不要在开发完成之后才执行测试,这样不利于缺陷的尽早发现
4.缺陷存在群集现象,对于一款软件来说核心的功能只占20%,所以在测试的时候我们会话更多的时间去专门测试这些功能,因此它里面缺陷暴露的可能就会更大一些,我们就称之为缺陷群集现象
5.某些测试操作依赖于特定测试环境(比如:某些软件依赖于的网络,或者是服务器的配置等等)
6.杀虫剂现象,不要过多使用同一条测试案例来对软件进行问题查找,因为软件会产生“抗性”(一般避免“杀虫剂现象”使用交叉测试,由测试人员互换测试模块进行测试)
7.不存在缺陷的谬论,任何的软件不可能是完美的
常见的软件架构
架构的基本介绍
架构可以理解为是用来知道软件产品成型的一种思想,当前软件行业最常见的两种架构分别是B/S【浏览器-服务器模型】和C/S【客户端-服务器模型】架构,B指的就是browser,C指的就是client,S指的就是server,bs与cs架构比较
1.标准 对于BS架构来说来说无论是浏览器还是服务器都有线程的软件供无去使用,而CS架构中的客户端一般都由开发者自定义完成开发
2.效率 因为BS架构当中所有的数据处理操作都发生的数据处理操作都发生服务器端口CS的客户端是可以来分担一些服务器数据处理工作的,因此相对来说CS的处理效率会高一些
3.升级 BS架构只需要将服务进行更新那么前台页面会自动的刷新,二CS架构如果想要升级就必须讲二段偶读重新制作,下载安装后才能进行更新
4.安全性 相对于CS架构BS架构的安全性要低一些 (因为CS架构要下载后才能进行使用 用户群里相对锁定 而BS则不同项目一经上线发布到浏览器上 用户相对较多)
5.开发成本 因为BS架构只需要浏览器支持不需要在定向开发客户端,开发和维护成本相对较低,而CS架构从整体的项目开始一直到项目完全做好之后才可以上线,开发以及维护成本相对较高
HTTP协议
HTTP协议概念
协议:计算机通信网络中俩台计算机之间进行通信所必须共同遵守的规则和规定
HTTP协议::超文本传输协议,是一种规定了浏览器和服务器之间通信的规则
UTL(统一资源定位符)
概念:互联网上资源的地址、位置。每一个资源都有一个唯一的URL
格式:协议://主机地址/路径
HTTP协议请求内容
HTTP请求组成 :
请求行、请求头、请求空行和请求数据
请求行:请求方式 主机 协议
GET http://127.0.0.1:8000/ HTTP/1.1
请求头:
请求空行:空的一行 (请求头结束,代表区分请求头与下方数据的空行)
请求体:请求方法get,请求体没有数据 请求方法post请求体有数据 (请求方法还有其他的种类,常用的只有get还有post)
GET、POST请求
GET
提交的数据显示在地址栏,不安全;提交的数据量有限制;不重要的数据使用GET
POST
隐式提交数据,更安全;没有数据量大小的限制;重要的数据使用POST
(POST请求理论上也是不限制大小的,真正对其大小进行限制的是服务器的处理程序能力。Tomcat服务器对POST大小限制为2M,这也就能解释为什么第三方给我POST过来3张图片(正常是300|400KB一张图片)的数据时候会有时候能接收到,有时候就只能收到null值。)
HTTP协议响应内容
HTTP响应组成
响应行、响应头、响应体
响应行
响应头
响应体
HTTP协议响应状态码
状态码有三维数字组成,第一位数字定义了响应类型,有5种可能的取值
常见的状态码
API接口
接口概念
应用程序编程接口(API):以HTTP形式提供,定义了输入、输出、功能描述的服务
API接口文档定义了,传输的标准,前端传值具体带表哪些内容,再由后端进行接收,然后在进行处理。一般定义字段名称都是由公司的架构师来完成的。
一个登录的简化流程
1.处理提交的数据
2.查询数据库
3.根据结果产生响应
接口和客户端功能测试的关系
客户端通过调用服务端提供的接口来获取数据
客户端功能测试过程需要和接口交互的场景
客户端测试过程发现bug,需要排查是客户端代码问题还是服务端代码问题
客户端测试过程中需要借助接口调用造一些返回数据,辅助客户端功能测试,跳过客户端代码的验证限制直接访问服务端
仿真弱网环境,进行弱网测试