慷慨赴死ing

黑白灰测试

1.按照测试技术划分

黑盒测试通过软件的外部表现来发现其缺陷和错误。

黑盒测试法把测试对象看成一个黑盒子,完全不考虑程序内部结构和处理过程。

在程序界面处进行测试,它只检查样序是否按照需求规格说明书的规定正常实现。

白盒测试通过对程序内部结构的分析、检测来寻找问题。

白盒测试可以把程序看成装在一个透明的白盒子里,了解程序结构和处理过程,检查是否所有的结构及路径都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。

白盒测试又称结构测试

灰盒测试 介于白盒测试与黑盒测试之间的测试。灰盒测试关注输出对于输入的正确性;同时也关注内部表现,但这种关注不像白盒测试那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态。

灰盒测试结合了白盒测试和黑盒测试的要素。同时考虑了用户端、特定的系统知识和操作环境。它在系统组件的协同性环境中评价应用软件的设计

静态测试动态测试

静态测试 指不实际运行被测对象,而只是静态地检查程序代码、界面或文档中可能存在错误的过程代码测试:主要测试代码是否符合相应的标准和规范界面测试:主要测试软件的实际界面与需求中的说明是否相符文档测试:主要测试用户手册和需求说明是否真正符合用户的实际需求

动态测试 指实际运行被测对象,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。所以我们判断一个测试属于动态测试还是静态测试,唯一的标准就是看是否运行程序

堆栈

堆栈是一个特定的
存储区或寄存器,它的一端是固定的,另一端是浮动的 [1] 。堆这个存储区存入的数据,是一种特殊的数据结构。所有的数据存入或取出,只能在浮动的一端(称栈顶)进行,严格按照“先进后出”的原则存取,位于其中间的元素,必须在其栈上部(后进栈者)诸元素逐个移出后才能取出。在内存储器(随机存储器)中开辟一个区域作为堆栈,叫软件堆栈;用寄存器构成的堆栈,叫硬件堆栈。

动态库和静态库的区别

区别:1、静态库的扩展名一般为“.a”或“.lib”;动态库的扩展名一般为“.so”或“.dll”。2、静态库在编译时会直接整合到目标程序中,编译成功的可执行文件可独立运行;动态库在编译时不会放到连接的目标程序中,即可执行文件无法单独运行。

TCP三次握手

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.

第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。

SYN:同步序列编号(Synchronize Sequence Numbers)

第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。

第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。

为什么需要三次握手,是为了解决下列的一个问题:

client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。本来这是一个早已失效的报文段。但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求。于是就向client发出确认报文段,同意建立连接。假设不采用三次握手,那么只要server发出确认,新的连接就建立了。由于现在client并没有发出建立连接的请求,因此不会理睬server的确认,也不会向server发送数据。但server却以为新的运输连接已经建立,并一直等待client发来数据。这样,server的很多资源就白白浪费掉了。采用三次握手的办法可以防止上述现象发生

四次挥手(Four-Way Wavehand)即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。在socket编程中,这一过程由客户端或服务端任一方执行close来触发

测试登录界面

https://blog.csdn.net/QuietSnow_wuyaya/article/details/104965626

linux替换命令sed ‘s/旧址/新值’ grep

在这里插入图片描述

POST 和GET

1.POST 和GET本质都是一样一样的。
2.POST和GET都是HTTP请求的基本方法。
3.区别主要有以下几个:
3-1 GET请求在浏览器刷新或者回退的时候是无害的。POST的话数据会被重新提交。
3-2 GET可以被书签收藏,POST不行
3-3 GET可以存在缓存中。POST不行
3-4 GET 会将数据存在浏览器的历史中,POST不会
3-5 GET 编码格式只能用ASCII码,POST没有限制
3-6 GET 数据类型urlencode,POST是URLENCODE,form-data
3-7 可见性 参数在URL用户可以看见,POST的参数在REQUSET BODY中不会被用户看见
3-8 安全性 GET相对不安全 POST相对安全些
3-9 长度 参数一般限制2048(和WEB服务器相关),参数无限制。
4.GET 和POST在请求的时候
4-1 GET 是将数据中的hearder 和 data 一起发送给服务端,返回200code
4-2 POST 是先将hearder发给服务器返回100continue,再发送data给到服务器,返回200
4-3 GET 就发送了一个TCP数据包给服务器而POST发送了两次TCP数据包给服务器
4-4 GET和POST是已经有定义好的说明的,最好不要混用。
5. GET和POST本质上是一样一样的,GET可以加Request Body ,POST也可以在URL中添加参数。实现是可以的。

cookie 和session 的区别

cookie 和session 的区别:

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

面向对象

1.面向对象是一种编程思想,符合人们的思考习惯,把执行者变为指挥者

把复杂的事情简单化,如果想完成意见事情,找到具有这样功能的对象

如果能找到,调用这个对象的功能,完成这件事情,如果找不到,创建

具有这样功能的对象,再调用完成这件事情。

2.面向对象是一种编程思想,是将数据封装到对象内部,通过对象的方法

来操作数据,通过对象和对象之间的相互的调用配合来完成整个功能的

过程。

面向对象的特点:封装:将有一定功能的代码封装起来,使用时调用即可、继承:将公共的属性和方法放在父类中,自己自考虑特有的属性和方法。多态:程序运行过程中,根据执行条件的不同,动态执行不同的操作代码的过程称为运行时多态。

  1. 简答
  1. 类对象和实例对象的区别

类对象就是类本身,当遇见类的时候,就会创建新的命名空间,命名空间

包含所有类变量和方法定义的名称。

实例对象就是通过类对象创建出来的实例(类对象实例化之后返回的

就是实例对象),用来存储实例属性和存储实例对象的引用。

  1. 类属性和实例属性的区别

类属性:定义在类内部,方法外边,属于所有类对象和所有实例对象

调用:类对象.属性 = 值

实例属性:通过init初始化的变量和实例对象创建出来的属性

调用:实例对象.属性

  1. 类方法和实例方法和静态方法的区别

类方法:必须有一个参数,这个参数表示为当前类对象,一般为cls,在

方法的头部加上@classmethod

实例方法:必须有一个参数,表示当前实例对象,一般是self

静态方法:普通函数的格式,不需要强制要求传递参数,在方法的头部

静态方法

在这里插入图片描述

Python中的异常处理try/except/finally/raise用法分析

异常发生在程序执行的过程中,如果python无法正常处理程序就会发生异常,导致整个程序终止执行,python中使用try/except语句可以捕获异常。

try/except

异常的种类有很多,在不确定可能发生的异常类型时可以使用Exception捕获所有异常:

在try语句后也可以跟一个else语句,这样当try语句块正常执行没有发生异常,则将执行else语句后的内容:

在try语句后边跟一个finally语句,则不管try语句块有没有发生异常,都会在执行try之后执行finally语句后的内容:

Linux常用命令

https://wenku.baidu.com/view/c8a8e10bee630b1c59eef8c75fbfc77da269973b.html

DNS工作过程

DNS工作过程如下:

1、客户机提出域名解析请求,并将该请求发送给本地的域名服务器;

2、当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回;

3、如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址;

4、本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址;

5、重复第四步,直到找到正确的纪录;

6、本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。

猜你喜欢

转载自blog.csdn.net/Cream_Cicilian/article/details/125261332
ing
今日推荐