自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

like_that的博客

Everyone wants a version of you that isn't real

  • 博客(64)
  • 收藏
  • 关注

原创 【测试】软件测试报告应该包含哪些内容

软件测试报告的组成:一、概述 包括项目背景、需求分析二、测试时间、测试环境三、测试过程 评审记录、测试范围、测试用例四、功能实现清单 列出是否已经按照测试计划实现功能五、缺陷统计测试缺陷统计; 测试用例执行情况统计六、测试统计情况资源统计 执行情况 问题统计 问题列表 遗留的问题七、测试总结测试结论...

2019-10-30 18:01:06 34249

原创 【测试】自动化测试的意义以及自动化测试的常用工具

一、自动化测试的意义1、可以对程序的新版本自动执行回归测试;2、可以执行手工测试困难或者不可能实现的测试,如压力测试,并发测试;3、能够更好的利用资源,节省时间和人力。二、测试工具1、LoadRunner 是一种预测系统行为和性能的负载测试工具。 通过模拟上千万用户实施并发负载及实现性能监测的方式来确认和查找问题,可用于各种体系架构的自动负载测试,能...

2019-10-29 22:45:29 1802

原创 【测试】黑盒测试(功能性测试)和白盒测试

目录一、黑盒测试二、白盒测试三、灰盒测试测试到的错误类型有: 1)不正确或者遗漏的功能; 2)接口、界面错误; 3)性能错误; 4)数据结构或外部数据访问错误; 5)初始化或者终止条件错误等;一、黑盒测试黑盒测试又称为功能性测试,数据驱动测试或基于规格说明书的测试,用户从观点出发的测试。常用的黑盒测试方法有:等...

2019-10-28 22:44:29 5450

原创 【测试】测试的相关流程

基本流程: 需求测试→概要设计测试→详细设计测试→单元测试→集成测试 →系统测试→验收测试项目测试的具体工具:1、搭建测试环境2、撰写测试用例3、执行测试用例4、写测试计划、测试报告5、测试,并提交bug表单6、跟踪bug修改情况7、执行自动化测试、编写脚本、执行、分析报告8、运行性能测试软件测试模型“V”型特点:是一种古老的瀑布模...

2019-10-28 00:03:03 247

原创 【测试】软件测试是做什么的

1、通过软件测试发现软件中的缺陷或者不足;2、软件测试需要把发现的问题整理成报告; 提高给开发工程师,当确认后再对软件进行修复。必须具备良好的文字表达能力以及较强的语言组织能力。3、测试人员需要分析软件的质量好坏; 需要根据测试的结果来分析,计算出软件的缺陷率和缺陷分布的情况,以及提出对软件修复的趋势等。目的: ①检...

2019-10-27 22:58:19 465

原创 【网络】HTTP和HTTPS的区别

HTTP协议传输的数据都是未加密的,就是明文的,因此使用HTTP协议传输隐私信息是非常不安全的,为了让这些隐私数据能加密传输,于是设计了SSL协议用于对HTTP协议传输的数据进行加密,所以就有了HTTPS。HTTP协议的特点:(端口号为80)支持客户/服务器模式; 简单快速。客户向服务器请求服务时,只需传送请求方法和路径; 灵活。允许传输任意类型的数据对象; 无连接。(每次连接只处理...

2019-09-28 17:59:38 146

原创 【Linux】select、poll、epoll的区别,LT模式与ET模式

三个函数的区别: LT模式:在数据到达后,无论程序是没有接收,还是接收了但没有接收完,下一轮epoll_wait仍然会提醒应用程序该描述符上有数据,直到数据被接受完。(设置为阻塞和非阻塞都可以)ET模式:在数据到达后,无论程序是没有接收,还是接收了但没有接收完,都只提醒一次,下一轮不再提醒应用程序该描述符上有数据。(只能设置为非阻塞)为什么epoll的ET模式只能设置为非阻塞?...

2019-08-25 18:41:46 422

原创 【C++】浅拷贝和深拷贝的区别

浅拷贝:(也可以叫做影子拷贝或指针拷贝)只是对指针的拷贝,拷贝后两个指针指向同一个内存空间。(知识进行简单的赋值)(成员变量中有指针考虑实现深拷贝)浅拷贝就是拷贝指向原来对象的指针,是对象的引用计数+1,可以理解为创建了一个新的指向原来对象的指针而已,并没有开辟新的内存空间.这就例如用一间房间的钥匙A配了一枚新的钥匙B,两枚钥匙能且仅能开这间房子的钥匙.深拷贝: 不但对指针进行拷...

2019-08-23 21:30:39 699

原创 【题】大数乘法

基本原理:将两个数字转换成字符,放到字符数组中。为了防止溢出。思路: 在计算十进制数 123 * 45 时,首先计算 123 * 5 = 615,然后计算 123 * 4 = 492,最终结果是 615 + 492 * 10 = 5535。  大数乘法的计算过程与此相同:对于A(a0a1a2...an-1) * B(b0b1b2...bm-1),并假设N≥M(被乘数位数不...

2019-08-21 20:28:22 266

原创 【C++】指针和引用的区别、数组和指针的区别

目录一、指针和引用的区别二、数组和指针的区别一、指针和引用的区别本质引用是别名(主要用于函数参数和返回值类型,符号X&表示X类型的引用,不是独立的);指针是地址(存放变量地址的一个变量,是独立的,可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。)指针传递参数本质上是值传递的方式,它所传递的是一个地址值。值传递过程中,被调函数...

2019-08-20 18:57:45 396

原创 【网络】IP协议的特点、TCP和UDP的特点及区别以及他们的报头信息、为什么TCP是可靠的?粘包的原因等

一 、IP的报头信息特点:无连接、不可靠、无状态 无连接:指IP通信的双方都不长久的维持对方的任何信息。这样上层协议每次发送数据的时候,都必须明确指定对方的IP地址。 不可靠:IP协议不保证数据能准确的到达接收端,只是尽自己最大努力传送 无状态:通信双方不同步传输数据的状态信息,也就是说IP数据报的发送、传输、接收都是相互独...

2019-08-16 23:16:26 687

原创 【网络】OSI的七层模型(为什么要分层)

一、OSI的七层模型应用层:为应用程序提供服务; 常见的协议有:FTP、SMTP、HTTP、DNS等表示层:数据格式转换,数据加密; CSS、HTML、GIF会话层:建立、维护和管理会话; ...

2019-08-16 15:09:52 11914 1

原创 【网络】TCP的三次握手与四次挥手以及面试相关的问题

一、TCP的三次握手与四次挥手1、三次握手定义:指建立一个TCP连接时,需要客户端和服务器总共发送3个包。建立连接的过程为三次握手目的:连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换TCP窗口大小信息。可能触发三次握手的情况:在socket编程中,客户端执行connect()时,将触发三次握手。三次握手的作用: ①使得通讯双方都做...

2019-08-16 12:13:57 182

原创 【C++】关于STL中list、deque、vector的插入删除的时间复杂度的比较

一、vector 是动态数组,在堆中分配内存,元素连续存放,有保留内存,如果减少大小后,内存也不会释放;如果新值大于当前大小时才会重新分配内存。扩容方式: 1、倍数开辟二倍的内存 2、旧的数据开辟到新内存 3、释放旧的内存 4、指向新内存时间...

2019-08-04 12:30:34 30083 2

原创 【C语言】字符串替换问题

1、一换多将将字符串中的空格替换为%20。如:we are family --->we%20are%20family。时间复杂度O(n),空间复杂度O(1)#include <stdio.h>#include <string.h>#include <assert.h>void SwapStr(char *str){ assert(str...

2019-08-02 21:49:31 582

原创 【C++】复习3(继承和多态)

目录一、继承二、多态 一、继承1、继承的本质 代码复用2、继承和派生派生:从一个或多个以前定义的类(基类)产生新类的过程称为派生,这个新类称为派生类。派生的新类同时可以增加或者重新定义数据和操作,这就产生了类的层次性。继承:继承是面向对象语言的一个重要机制,通过继承可以在一个一般类的基础上建立新类,被继承的类称为基类,在基类上建立的新...

2019-08-02 12:54:12 197 2

原创 【C++】复习2(C/C++的区别、动态内存(new、malloc的区别))

一、C/C++的区别1、C是面向过程的语言 C++是面向对象的语言2、输入输出方式不同3、C++带有默认的函数、函数重载、inline内联函数,这些C++都不支持4、C++可以实现面向对象的代码,具有强大的设计模式,如单例模式、工厂模式、观察值模式,可以更好的进行模块化设计:做到高内聚、低耦合5、强制类型转换不同 在C语言中:使用()小括号里面加类型进行类型强转 ...

2019-07-26 17:02:04 227

原创 【C++】复习1(函数符号生成规则、内联函数、C/C++相互调用、const 、引用)

目录一、函数的默认值二、函数符号生成规则三、函数重载四、内联函数五、C/C++的相互调用六、引用七、const一、函数的默认值 1、自右向左依次赋值(原因:与匹配 顺序有关,参数匹配是从左向右); 2、不能重复赋值; 3、一般给在声明上。二、函数符号生成规则 1、C函数符号生成规则:...

2019-07-22 21:18:30 437

原创 【C++】编译、链接运行原理及内存布局

一、虚拟地址空间布局1、.text段(代码段) 用于存放程序执行代码,可共享,频繁执行的程序在内存中拷贝一份就可以。代码段属于只读,防止其他操作意外的修改对代码段的操作。 代码段指令根据程序设计流程依次执行,对于顺序指令,只会执行一次(每个进程);若有反复,则需使用跳转指令;若进行递归,则需要借助栈来实现。2、数据段(分为.data段和.bss段)...

2019-07-21 23:32:46 309

原创 【C++】static的用法

一、地址空间布局内存分布情况:1.栈区: 由编译器自动分配释放,像局部变量,函数参数,都是在栈区,会随着作用域退出而释放空间。3.堆区:程序员分配并释放的区域,像malloc(c),new(c++)3.全局数据区(静态区):分为.data段和.bss段。程序运行结束时自动释放 data段:存放初始化的静态变量和全局变量。 bss段:存放未初始化的静态变量和...

2019-07-16 22:09:48 141

原创 【C++】const的用法

1、用const将变量的类型定义成常量;const double PI=3.14;//常量、常指针、常函数const char s[]="hello";//常数组const int bufsize = 512;//常量2、必须在定义时初始化;例:#include <iostream>using namespace std;int main(){...

2019-06-22 16:27:20 213 1

原创 【Linux】进程与线程2(线程安全、线程的实现、线程中执行fork、多线程调试)

一、线程安全——可重入函数概念:一个函数被称为线程安全的(thread-safe),当且仅当被多个并发进程反复调用时,它会一直产生正确的结果。反之,如果一个函数不是线程安全的,我们就说它是线程不安全的(thread-unsafe)。 1、调用线程安全的函数,可重入函数;(有些系统调用或者库函数在实现时,用到了静态的数据,在多线程调用时,出现不安全现象) 2、同步(因为线程之...

2019-05-24 00:05:01 292

原创 【Linux】进程与线程(区别、进程的状态、线程的实现方式、创建、同步方法)

一、线程与进程的概念进程:一个正在运行的程序;线程:进程内部的一条执行路径/序列。二、进程与线程的区别1、进程是资源分配的最小单位,线程是CPU调度执行的最小单位;2、多进程,进程间调度都是独立的,同一进程中的多线程,资源是共享的;3、线程更加轻便、更加小巧,线程创建调度、切换调度都比进程高。4、线程必须依赖与进程;5、同一个进程中线程都是并发进行,并且线程的...

2019-05-22 20:46:10 1453

原创 【Linux】进程间通讯的五种方式(管道、信号量、共享内存、消息队列、套接字)

信号:通知一个进程发生了什么事件进程间的通讯方式有:管道、信号量、共享内存、消息队列、套接字。一、管道特点: 1、它是半双工的(即数据只能在一个方向上流动),具有固定的读端和写端。 2、它只能用于具有亲缘关系的进程之间的通信(也是父子进程或者兄弟进程之间)。 3、它可以看成是一种特殊的文件,对于它的读写也可以使用普通的read、write 等函数...

2019-05-20 23:38:10 1988

原创 【Linux】文件操作(open/read/write/close)、系统调用与库函数的区别

一、文件描述符概念:文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。文件描述符主要用于read、write、close、lseek二、文件操作函数1、int open(const char *pathname,int flag,/*int mode...

2019-05-19 23:23:33 4625

原创 进程控制块(PCB)、进程状态的转移

进程控制块(PCB)概念:进程控制块,是我们学习操作系统后遇到的第一个数据结构描述,它是对系统的进程进行管理的重要依据,和进程管理相关的操作无一不用到PCB中的内容。一般情况下,PCB中包含以下内容:(1)进程标识符(内部,外部)(2)处理机的信息(通用寄存器,指令计数器,PSW,用户的栈指针)。(3)进程调度信息(进程状态,进程的优先级,进程调度所需的其它信息,事件)(4)...

2019-05-19 00:36:59 646

原创 Linux进程创建fork和vfork的使用与区别、僵死进程及其解决方法

目录一、fork函数二、vfork函数三、fork与Vfork的区别四、结束子进程一、fork函数函数原型:pid_t fork(void);(pid_t 实际是int类型)fork函数创建子进程,子进程的地址空间与父进程共享(不包括进程的栈区),但内核会将共享的空间设置为只读。fork的返回值:fork函数被父进程调用一次,但是却返回两次;一次是返回到父进程,...

2019-05-17 23:39:02 668

原创 【Linux】select、poll、epoll 的区别以及他们的函数原型

目录用来解决什么问题?一、select二、poll三、epoll(Linux独有)用户关注的文件描述符上的事件直接由内核记录三个函数的区别解决的问题:用来解决什么问题?1、同时处理多个描述符;2、监听多个描述符上有没有就绪事件。I/O复用:一个进程或者一个线程能够同时对多个文件描述符(socket)提供服务 服务器上的进程或者线程,如何将多个文...

2019-05-14 15:13:01 673

原创 【C++】inline函数与普通函数、宏、static修饰的函数的区别

inline函数(内联函数)把代码在函数的调用点直接展开。定义:将规模小,而使用频繁的函数声明为内联函数。(在编译时将所调用函数的代码直接嵌入到主调函数中,而不是将流程传出去)注意事项:①写在头文件下;②只在release版本生效;③建议:循环、递归、switch一定不会出现inline;④加在声明点一定无效,因为inline是基于实现的,不是基于声明的。#inc...

2019-05-08 21:26:58 676

原创 【C++】智能指针的定义与实现

一、什么是智能指针? 智能指针是存储指向动态分配(堆)对象指针的类。除了能够在适当的时间自动删除指向的对象外,他们的工作机制很像C++的内置指针。智能指针在面对异常的时候格外有用,因为他们能够确保正确的销毁动态分配的对象。他们也可以用于跟踪被多用户共享的动态分配对象。二、智能指针的原理 智能指针(smart pointer)的通用实现技术是使用引用计数(re...

2019-05-07 15:19:11 1496

原创 SQL的一些基本操作语句(创建表、修改表等,简单的查询语句)

在Linux环境下:进入管理员权限下通过 service mysqld start 启动数据库服务通过mysql -u root -p 启动数据库,如果没有设置密码,则去掉-p 就可以打开数据库。查看有哪些数据库,通过 show databases;(分号很重要,一定加) 查看。选择使用哪个数据库,通过use [数据库名];选定数据库查看有哪些表,通过show tabl...

2019-05-03 22:20:08 1145

原创 C++类虚函数的内存布局的练习(虚基类指针的偏移)

1、非虚基类的排列 > 虚基类的排列2、非平行层次下的vbptr合并3、平行层次下在同一作用域也合并虚继承:解决内存重复练习1、练习2、class D: public B,public C virtual public E练习3、class D: public B,virtual public C public E练习4、练习5、...

2019-05-02 16:50:52 516

原创 【C++】继承和多态——虚函数和纯虚函数

一、虚函数虚函数定义: 就是在基类声明函数是虚拟的,并不是真实存在的函数,在派生类中才正式定义此函数。 拥有Virtual 关键字的函数称之为虚函数,虚函数的作用是实现动态绑定的,也就是说程序在运行的时候动态的的选择合适的成员函数。要成为虚函数必须满足两点,一就是这个函数依赖于对象调用,因为虚函数就是依赖于对象调用,因为虚函数是存在于虚函数表中,有一个虚函数指针指向这个...

2019-05-01 20:44:03 579

原创 C++里的四种类型的转换

1、const_cast 去除常性 const int* ==》int * double int *==》int*2、static_cast (安全性更高)3、reinterpret_cast (类似C的转换)主要用于指针转换4、dynamic_cast(用于RTTI)RTTI:运行时类型信息(run_time type informatio...

2019-05-01 20:43:30 344

原创 【C++】继承和多态

一、继承继承是使代码复用的一种机制。(本质)单继承:一个派生类一个基类派生。多继承:一个派生类有两个人或者多个基类。(如:马与驴杂交所生的骡子就有两个基类,骡子既继承了马的一些特征,也继承了驴的一些特征)派生类构造派生类包括:1、从基类接收成员;(派生类接收基类的全部成员,没有选择)2、调整从基类接收的成员;(可以改变基类成员在派生类中的访问属性(通过继承的...

2019-05-01 16:37:51 948 1

原创 【C++】STL基本容器的简单介绍------(10个)

容器是什么在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器。很简单,容器就是保存其它对象的对象,这种“对象”还包含了一系列处理“其它对象”的方法。“容器类是一种对特定代码重用问题的良好的解决方案”。容器的分类容器分为三大类一、顺序容器 是一种各元素之间有顺序关系的线性表,是一种线性结...

2019-04-30 15:44:02 404

原创 【C++】C++泛型编程 函数模板与类模板

模板定义: 模板就是实现代码重用机制的一种工具, 它可以实现类型参数化, 即把类型定义为参数, 从而实现了真正的代码可重用性。作用: 模板用于表达逻辑结构相同, 但具体数据元素类型不同的数据对象的通用行为。一、函数模板1、函数模板:建立一个通用函数,其返回值类型和形参类型不具体指定,用一个虚拟的类型来代替。(编译器并不是将函数模板处理成能够处...

2019-04-07 17:04:22 339

原创 【C++】类和对象(类生成对象的个数及类类型的返回值)

类的扫描 1.扫描类名 2.扫描类成员 3.返回值 形参 默认值 4.函数体统计类生成的对象的个数静态成员的概念: 静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员先于类的声明而存在于内存,也可以根据类声明的对象来访问.而非静态成员必须实例化之后才会分...

2019-04-06 16:54:33 975

原创 【C++】类和对象(生存周期及初始化列表、常对象常方法成员对象const、static等的用法)

目录生存周期:初始化列表:总结:生存周期:1. 对于全局对象,程序一开始,其构造函数就先被执行(比程序进入点更早);程序即将结束前其析构函数将被执行。2. 对于局部对象,当对象诞生时,其构造函数被执行;当程序流程将离开该对象的声明周期时,其析构函数被执行。3. 对于静态(static)对象,当对象诞生时其构造函数被执行;当程序将结束时其析构函数才被执行,但比全局对象的...

2019-04-06 15:57:21 290

原创 【C++】类和对象(类中的六个默认函数以及浅拷贝与深拷贝的概念)

目录C++的四大基本特征:(面向对象的思想oop)栈上的特点:系统开辟、系统释放堆上的特点:手动开辟、手动释放类中的六个默认函数1、构造函数2、析构函数3、拷贝构造函数4、赋值运算符的重载函数临时对象生存周期:C++的四大基本特征:(面向对象的思想oop)1、抽象:提取现实世界中某事物的关键特性,为该事物构建模型的过程。2、封装:使类具有独立性和...

2019-04-06 13:42:58 513

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除