测试基础

1.URL和URI

统一资源标志符URI

统一资源定位符URL:所以URL是URI的子集

2. HTTP和HTTPS

HTTP是超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据

http协议的请求可以分成三部分:request line  headers body

headers,body是可选的,request line则又可细分成三部分:method,uri,version

发展历史:

版本    产生时间    内容    发展现状
HTTP/0.9    1991年    不涉及数据包传输,规定客户端和服务器之间通信格式,只能GET请求    没有作为正式的标准
HTTP/1.0    1996年    传输内容格式不限制,增加PUT、PATCH、HEAD、 OPTIONS、DELETE命令    正式作为标准
HTTP/1.1    1997年    持久连接(长连接)、节约带宽、HOST域、管道机制、分块传输编码    2015年前使用最广泛
HTTP/2    2015年    多路复用、服务器推送、头信息压缩、二进制协议等    逐渐覆盖市场

多路复用:通过单一的HTTP/2连接请求发起多重的请求-响应消息,多个请求stream共享一个TCP连接,实现多留并行而不是依赖建立多个TCP连接

HTTPS是身披SSL外壳的HTTP。HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包

3. get和post

GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。 GET和POST还有一个重大区别,简单的说:GET产生一个TCP数据包;POST产生两个TCP数据包。

对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据); 而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据

 

3.TCP与UDP区别总结:
  1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建  立连接
  2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,  且按序到达;UDP尽最大努力交付,即不保证可靠交付
  3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的
  UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,  如IP电话,实时视频会议等)
  4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
  5、TCP首部开销20字节;UDP的首部开销小,只有8个字节
  6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

4.响应

5. 软件测试原则

  • 只能证明软件存在问题,不能证明不存在问题
  • 不能进行穷尽(穷举)测试,应该分类别测试
  • 测试工作要尽早的介入,降低修复成本(需求文档--ui、程序、测试)
  • 缺陷存在集群现象,二八原则:20%的模块中存在80%的缺陷
  • 测试依赖环境(系统、浏览器)
  • 杀虫剂现象
  • 不存在缺陷谬论

6. 软件开发模型

  • 瀑布模型(需求分析》概要设计》详细设计》编码》软件测试》软件维护)

优点:开发的各个阶段比较清晰,当前阶段完成后,只需关注后续阶段

缺点:不适应需求的变化,风险往往延至后期才显著,失去及早纠正的机会

  • 快速原型模型
  • 螺旋模型

7. 软件测试模型

V模型,W模型

优点: (1)测试V模型即包含了底层测试又包含了高层测试;

缺点: (1)当需求变更时将会导致返工量非常大,模型灵活性比较低。

优点: (1)强调测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,还包括需求和设计。 (2)更早地介入测试,能尽早得发现缺陷进行修复。

缺点: (1)对于测试技术要求高,实践起来困难

 

8. 软件测试分类

8.1 按测试阶段划分

  • 单元测试

又称模块测试,针对软件设计中的最小单位-程序模块,进行正确性检查的测试工作。单元测试需要从程序内 部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。

单元定义:C中指一个函数,Java中指一个

  • 集成测试

又叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试。

  • 系统测试

指的是将整个软件系统看为一个整体进行测试,测试的依据是软件需求说明书

  • 验收测试

检验软件是否符合用户需求的测试

α测试

    Alpha 是内测版本 通常只在软件开发者内部交流 一般而言, 该版本软件的bug较多,普通用户最好不要安装

β测试

   Beta是公测版本,是对所有用户开放的测试版本 这一版本通常由软件公司免费发布, 用户可从相关的站点下载 通过一些专业爱好者的测试, 将结果反馈给开发者, 开发者们再进行有针对性的修改

γ测试

    Gamma版本,指的是软件版本正式发行的候选版。该版本已经相当成熟了, 与即将发行的正式版相差无 几, 成为正式发布的候选版本

8.2 按是否查看源代码

  • 黑盒测试

又称数据驱动测试,完全不考虑程序内部结构和内部特性,注重于测试软件的功能需求,只关心软件的输入数据和 输出数据

  • 白盒测试

指的是把盒子打开,去研究里面的源代码和程序结构。

  • 灰盒测试

灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,不仅关注输出、输入的正确性,同时也关注程序内部 的情况

 

8.3 是否运行分类

  • 静态测试

指不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误过程。

  • 动态测试

是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。

 

8.4 软件测试的更多分类

  • 冒烟测试

冒烟测试就是对系统进行最基本功能的测试,保证基本的功能和流程能走通

  • 回归测试

当修复一个BUG后,把之前的测试用例在新的代码下进行再次测试

  • 随机测试

随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试用例没有覆盖到的部分

  • 探索性测试

探索性测试意味着同时设计测试和执行测试。测试人员通过测试来不断学习被测系统。

9. 软件缺陷

9.1 软件缺陷的判定标准

  • 软件未达到需求规格说明书中标明的功能
  • 软件出现了需求规格说明书指明不会出现错误的地方
  • 软件的功能超出了需求规格说明书指明的范围
  • 软件未达到需求规格说明书虽未指明但应该达到的目标
  • 软件测试人员认为软件难以理解,不易使用,运行速度慢,或者最终用户体验不好

9.2 软件缺陷产生的原因

  • 需求解释、记录或者定义错误
  • 设计文档说明存在错误或者拼写错误
  • 编码说明、程序代码有误
  • 硬件或者软件系统上存在错误

9.3 软件缺陷产生的根源

  • 需求的变更
  • 交流不充分
  • 软件的复杂性
  • 进度压力

9.4 软件缺陷的类型

  • 功能错误
  • 界面错误
  • 兼容性缺陷
  • 易用性问题
  • 改进建议

10 测试用例

10.1 测试用例的八大要素

  • 软件测试用例的基本要素包括用例编号、用例标题、测试项目、用例级别、预置条件、测试输入、执行步骤、 预期结果

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值