自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 收藏
  • 关注

转载 等价类划分的原则

(1)如果输入条件规定了取值的范围或个数,则可确定一个有效等价类和两个无效等价类。(2)如果输入条件规定了输入值的集合或是规定了“必须如何”的条件,则可确定一个有效等价类和一个无效等价类。(3)如果输入的是布尔表达式,则可确定一个有效等价类和一个无效等价类。(4)   在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。

2016-10-25 19:57:31 8723

转载 基于边界值分析方法选择测试用例的原则

1)如果输入条件规定了取值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。 2)如果输入条件规定了取值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。 3)将规则1)和2)应用于输出条件,即设计测试用例使输出值达到边界值及其左右的值。 4)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个

2016-10-25 19:47:59 3013

转载 性能测试

性能测试类型包括负载测试,强度测试,容量测试等。负载测试(Load Testing):负载测试是一种主要为了测试软件系统是否达到需求文档设计的目标,譬如软件在一定时期内,最大支持多少并发用户数,软件请求出错率等,测试的主要是软件系统的性能。压力测试(Stress Testing):强度测试也就是压力测试,压力测试主要是为了测试硬件系统是否达到需求文档设计的性能目标,譬如在一定时期内

2016-10-25 16:30:13 394

原创 软件开发的生命周期模式

瀑布模型的优点:开发的各个阶段比较清晰。强调早期计划需求调查适合需求稳定的产品开发。瀑布模型的缺点:依赖于早期需求调查,不适应需求的变化单一流程,不可逆风险往往在后期才显露,失去及早纠正的机会。测试仅在最后进行,所以一些根本性问题可能出现在早期,但是直到准备发布产品时才可能发现。

2016-10-25 14:50:00 1353

转载 Bug的状态

New:(新的)  当某个“bug”被发现的时候(第一次),测试人员需要与项目负责人沟通以确认发现的的确是一个bug,如果被确认是一个bug,就将其记录下来,并将bug的状态设为New。Assigned(已指派的)  当一个bug被指认为New之后,将其将给开发人员,开发人员将确认这是否是一个bug,如果是,开发组的负责人就将这个bug指定给某位开发人员处理,并将bug的状态设定为“Ass

2016-10-25 10:36:28 1234

原创 软件的生命周期

软件生命周期(SDLC,Systems Development Life Cycle,SDLC)是软件的产生直到报废或停止使用的生命周期。     问题的定义及规划此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。需求分析在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。弄清用户对软件系统的全部需求,编写需求规格说明书

2016-10-25 10:07:18 310

原创 库函数和系统调用的区别

库函数调用时语言或应用程序的一部分,它是高层的,完全运行在用户空间,它的运行时间属于"用户时间",库函数属于过程调用,开销比较小。系统函数是内核提供给应用程序的接口,在内核地址空间执行,需要在用户空间和内核上下文环境之间切换,开销比较大,属于操作系统的一部分。

2016-10-21 13:43:28 187

原创 事务

事务是恢复和并发控制的基本单位。事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。隔离性(isolation)

2016-10-15 15:02:29 310

原创 死锁

死锁的概念:所谓死锁是指多个进 程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。下面我们通过一些实例来说明死锁现象。先看生活中的一个实例,在一条河上有一座桥,桥面很窄,只能容纳一辆汽车通行。如 果有两辆汽车分别从桥的左右两端驶上该桥,则会出现下述的冲突情况。此时,左边

2016-10-15 14:22:35 202

原创 软件测试

静态测试:只测试不运行的部分--只是检查和审核;动态测试是指通常意义上的测试--使用和运行软件。静态黑盒测试:指检查产品说明书,并在软件编写之前找出问题。动态黑盒测试:指不了解软件如何工作的前提下进行测试。静态白盒测试(结构化分析):指通过正式审查和检验检查代码的细节。在不执行软件的条件下,有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷。动态白盒测试(结构化测试):指在

2016-10-07 15:14:09 977 1

原创 数据结构

2-3-4树(BST):(1):每个节点最多存放三个数据值。  (2):每个非叶节点要么是2-节点,要么是3-节点,要么是4-节点。  (3):所有叶子处于同一层。红黑树:(BST)(1):从根到叶子节点的路径都包含相同数目的黑链。   (2):从根到每个叶子节点的路径不能包含两个或更多的连续红链。AVL(高度平衡树)(BST):每个节点的平衡因子是0,1,或-

2016-10-06 21:45:13 153

转载 操作系统

1:什么是中断?中断时CPU做什么工作?  中断是指在计算机执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序。待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。:2:什么是临界区?如何解决冲突?  每个进程中访问临界资源的那段程序称为临界区,每次只准许一个进程进入临界区,进入后不允

2016-10-05 22:49:45 322

转载 在浏览器中输入www.baidu.com后执行的全部过程

1, 依题主所假设的,在浏览器的地址栏输入http://www.baidu.com,这个时候,浏览器将会运行Hypertext Transfer Protocol(Hypertext Transfer Protocol,HTTP),这是一个应用层协议。2, 通过域名系统(Domain Name System,DNS),浏览器获得域名的IP地址(百度的IP:http://202.108.22

2016-10-05 18:38:59 3556

原创 计算机网络常见面试题总结

1.  OSI , TCP/IP ,五层协议的体系结构OSI分层(7层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。TCP/IP分层(4层:网络接口层、互联网层、运输层、应用层。五层协议(5层:物理层、数据链路层、网络层、运输层、应用层。应用层 :为操作系统或网络应用程序提供访问网络服务的接口。表示层:主要负责数据格式的转换。会话层:负责

2016-10-05 16:55:04 392

转载 进程的有哪几种状态,状态转换图,及导致转换的事件

进程的特征与三种基本状态1、特征:    1:动态性,2:并发性,3:独立性,4:异步性。2、状态:    1:就绪状态   当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。    2:执行状态   当进程已获得处理机,其程序正在处理机上执行,此时的进程状态称为执行状态。

2016-10-02 20:47:01 14511

转载 进程调度算法

实现操作系统的主要进程调度算法:先来先服务(FCFS)算法,短进程优先(SPN)算法和时间片轮转(RR)算法。(1)先来先服务调度算法(FCFS) 该算法采用非剥夺策略,算法按照进程提交或进程变为就绪状态的先后次序,分派 CPU。当前进程占用CPU,直到执行完或阻塞,才出让CPU(非抢占方式)。在进程唤醒后(如I/O 完成),并不立即恢复执行,通常等到当前进程出让CPU。这是最

2016-10-02 20:02:36 454

转载 外存分配的几种方式,及各种优劣

外存,指的是除了cpu缓存和内存以外的存储器,硬盘、光盘、U盘都可以被称为外存。所有的数据,也都存在这里面,故他的分配方式变得极其重要,这直接影响到了计算机的运行速度。外存分配方式主要有这几种:连续分配,链式分配,索引分配。一.  连续分配原理:创建文件时,分配一组连续的块;FAT(文档分配表)中每个文件只要一项,说明起始块和文件长度。对于顺序文件有利。优点

2016-10-02 11:08:26 1483

转载 Spooling

虚拟性是OS的四大特性之一。如果说可以通过多道程序技术将一台物理CPU虚拟为多台逻辑CPU,从而允许多个用户共享一台主机,那么,通过SPOOling技术便可将一台物理I/O设备虚拟为多台逻辑I/O设备,同样允许多个用户共享一台物理I/O设备。SPOOLing的含义是什么?试述SPOOLing系统的特点、功能以及控制过程。(百科)答:SPOOLing是Simultaneous P

2016-10-02 10:38:21 1620

原创 DMA

DMA方式,Direct Memory Access,也称为成组数据传送方式,有时也称为直接内存操作。DMA是一种不经过CPU而直接从内存了存取数据的数据交换模式。PIO模式下硬盘和内存之间的数据传输是由CPU来控制的;而在DMA模式下,CPU只须向DMA控制器下达指令,让DMA控制器来处理数的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率。DMA模式与PI

2016-10-01 21:59:38 363

转载 操作系统的四个特性

1)并发(concurrence)并行性与并发性这两个概念是既相似又区别的两个概念。并行性是指两个或多个事件在同一时刻发生;并发性是指两个或多个事件在同一时间间隔内发生。,但在单处理机的系统中,每一时刻仅能执行一道程序,故微观上这些程序是在交替执行的。   应当指出,通常的程序是静态实体,它们是不能并发执行的。为了使程序能并发执行,系统必须分别为每个程序建立进程。进程,又称

2016-10-01 21:49:06 661

转载 几种页面置换算法,会算所需换页数

1)最佳置换算法(OPT)(理想置换算法)最佳置换法(OPT):选择将来不再使用或在最远的将来才被访问的页调换出去(不便于实现)  这是一种理想情况下的页面置换算法,但实际上是不可能实现的。该算法的基本思想是:发生缺页时,有些页面在内存中,其中有一页将很快被访问(也包含紧接着的下一条指令的那页),而其他页面则可能要到10、100或者1000条指令后才会被访问,每个页面都可以用在该页面首次被

2016-10-01 21:16:51 763

转载 分段分页方式的比较各自优缺点

分页和分段系统有许多相似之处。比如,两者都采用离散分配方式,且都要通过地址映射机构来实现地址变换。但在概念上两者完全不同,主要表现在下述三个方面。 (1) 页是信息的物理单位,分页是为了实现非连续分配,以便解决内存碎片问题, 提高内存的利用率。或者说,分页仅仅是由于系统管理的需要而不是用户的需要。段则是信息的逻辑单位,分段的目的是为了能更好地满足用户的需要。 (2) 页的大小固定且由系

2016-10-01 20:51:17 4223 2

转载 基本分页、请求分页储存管理方式

基本分页储存管理方式具有如下特征:  1)一次性。要求将作业全部装入内存后方能运行。许多作业在每次运行时,并非其全部程序和数据都要用到。如果一次性地装入其全部程序,造成内存空间的浪费。  2)驻留性。作业装入内存后,便一直驻留在内存中,直至作业运行结束。尽管运行中的进程会因I/O而长期等待,或有的程序模块在运行过一次后就不再需要(运行)了,但它们都仍将继续占用宝贵的内存资源。请求分页系

2016-10-01 20:35:39 2017

转载 动态链接及静态链接.

静动态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EXE 独立的 DLL 文件。静态链接库和动态链接库的另外一个区别在于静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库

2016-10-01 20:10:18 231

转载 内存连续分配方式采用的几种算法及各自优劣。

连续分配方式,是指为一个用户程序分配一个连续的内存空间。它主要包括单一连续分配、固定分区分配和动态分区分配。单一连续分配内存在此方式下分为系统区和用户区,系统区仅提供给操作系统使用,通常在低地址部分;用户区是为用户提供的、除系统区之外的内存空间。这种方式无需进行内存保护。这种方式的优点是简单、无外部碎片,可以釆用覆盖技术,不需要额外的技术支持。缺点是只能用于单用户、单任务的操作

2016-10-01 18:24:45 5647

转载 Windows内存管理的方式

一、先说说内存的概念1.物理内存:即插在主板上的内存条。他是固定的,内存条的容量多大,物理内存就有多大(集成显卡系统除外)。但是如果程序运行很多或者程序本身很大的话,就会导致大量的物理内存占用,甚至导致物理内存消耗殆尽。2.虚拟内存:虚拟内存就是在硬盘上划分一块页面文件,充当内存。当程序在运行时,有一部分资源还没有用上或者同时打开几个程序却只操作其中一个程序时,系统没必要将程序所有

2016-10-01 15:43:08 199

转载 用户栈和内核栈的区别

一个进程有两个堆栈,用户栈和系统栈为何要设置两个不同的栈?共享原因:内核的代码和数据是为所有的进程共享的,如果不为每一个进程设置对应的内核栈,那么就不能实现不同的进程执行不同的代码。内核栈是系统运行在内核态的时候使用的栈,用户栈是系统运行在用户态时候使用的栈。当进程由于中断进入内核态时,系统会把一些用户态的数据信息保存到内核栈中,当返回到用户态时,取出内

2016-09-27 13:30:40 360

转载 线程的实现方式. (用户线程与内核线程的区别)

根据操作系统内核是否对线程可感知,可以把线程分为内核线程和用户线程。内核线程建立和销毁都是由操作系统负责、通过系统调用完成的,操作系统在调度时,参考各进程内的线程运行情况做出调度决定,如果一个进程中没有就绪态的线程,那么这个进程也不会被调度占用CPU。和内核线程相对应的是用户线程,用户线程指不需要内核支持而在用户程序中实现的线程,其不依赖于操作系统核心,用户进程利用线程库提供创

2016-09-27 10:30:46 699

转载 线程同步的几种方式

进程中线程同步的四种常用方式:1、 临界区(CCriticalSection)当多个线程访问一个独占性共享资源时,可以使用临界区对象。拥有临界区的线程可以访问被保护起来的资源或代码段,其他线程若想访问,则被挂起,直到拥有临界区的线程放弃临界区为止。具体应用方式:1、 定义临界区对象CcriticalSection g_CriticalSection;

2016-09-27 09:45:02 269

转载 进程间的通信方式

进程间通信是指不同进程间进行数据共享和数据交换 .管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。有名管道 (named pipe):有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。信号量( semophore ):信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它

2016-09-26 19:31:36 209

转载 内存池、线程池、进程池

(Memory Pool)是一种内存分配方式。通常我们习惯直接使用new、malloc等API申请分配内存,这样做的缺点在于:由于所申请内存块的大小不定,当频繁使用时会造成大量的内存碎片并进而降低性能。内存池则是在真正使用内存之前,先申请分配一定数量的、大小相等(一般情况下)的内存块留作备用。当有新的内存需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存。这样做的一个显著

2016-09-26 11:15:31 268

转载 套接字编程

网络编程:从某种程度上说就是进程间通信,套接口类似于进程ID,通过IP地址指定通信间的主机,通过端口号和主机上的哪个进程通信,也就是通过IP+端口号唯一指定了通信的进程。socket--创建一个套接字close--销毁一个套接字connect--在两个套接字之间创建连接bind--新创建的套接字没有网络地址,通过BIND原语可以为套接字分配地址。将一个服务器套接字绑定一个本地地址

2016-09-24 21:07:22 332 1

转载 二叉树中的度

度:二叉树中连接节点与节点的线就是度。有n个节点,就有n-1个度,节点数总是比度要多一个。度为0的节点数为度为2的节点数加1,即n0 = n2+1推理方法如下:k:总度数k+1 总节点数n0:度为0的节点n1:度为1的节点n2:  度为2的节点根据度和节点的关系可得:k = 2*n2 + n1;k+1 = n0 + n1 + n2;则得:n0 = n2

2016-09-19 21:34:13 15936

原创 TCP协议中的三次握手和四次挥手

三次握手:(1)第一次握手:建立连接时,客户端A发送SYN包到服务器B,并进入SYN_SEND状态,等待服务器B确认。(2)第二次握手:服务器B收到SYN包,必须确认客户A的SYN,同时自己也发送一个SYN包,即SYN+ACK包,此时服务器进入SYN_RECV状态。(3)第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK,此包发送完毕,客户端A和服务器端B进

2016-09-08 10:47:26 197

转载 TCP 和 UDP 的区别

TCP:Transmission Control Protocol  传输控制协议,可以提供面向连接、可靠的、缓慢传输的、能够保证消息顺序的通信。在正式发送数据前,发送端和接收端必须建立可靠的连接。一个TCP连接必须要经过三次握手才能建立起来。客户端发送一个SYN信息给服务器,该服务器正在监听某个TCP端口。服务器接收该信息并发送一个SYN-ACK消息,客户端收到该消息后再回一个ACK消息,TCP

2016-09-08 09:47:37 228

原创 什么函数不能声明为虚函数

设置虚函数需要注意以下几个方面:1)只有类的成员函数才能说明为虚函数。虚函数的目的是为了实现多态,多态和集成有关,所以声明一个非成员函数为虚函数没有任何意义。2)静态成员函数不能是虚函数。静态成员函数对于每一个类只有一份代码,所有的对象共享这份代码,它不归某个对象所有,所以没有动态绑定的必要性。不能被继承,只属于该类。3)内联函数不能为虚函数。内联函数在程序编译的时候展开,在函数调用处

2016-09-06 14:13:00 2581 1

原创 多态的种类

参数多态:采用参数化模板,通过给定不同的类型参数,使得一个结构有多种类型。包括函数模板和类模板。引用多态:也叫包含多态,同样的操作可以用于一个类型及其子类型。过载多态:同一个名字在不同的上下文中有不同的类型。强制多态:把操作对象的类型强加以转换,以符合函数和操作符的要求。C++中默认不使用动态绑定。要触发动态绑定,必须满足两个条件:1、只有指定为

2016-09-06 14:10:02 392

转载 虚函数和纯虚函数的区别

纯虚函数: C++中包含纯虚函数的类,被称为是“抽象类”。抽象类不能使用new出对象,只有实现了这个纯虚函数的子类才能new出对象。C++中的纯虚函数更像是“只提供声明,没有实现”,是对子类的约束,是“接口继承”。C++中的类包含纯虚函数,就是“抽象类”。1,虚函数和纯虚函数可以定义在同一个类中,含有纯虚函数的类被称为抽象类,而只有虚函数的类不能被称为抽象类。2,虚函数可以

2016-09-06 13:17:49 900

原创 虚函数

多态可以分为两类:编译时的多态性和运行时的多态性。前者是通过静态联编来实现的,比如C++中通过函数的重载和运算符的重载。后者则是通过动态联编来实现的,在C++中运行时的多态性主要是通过虚函数来实现的。虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。虚函数的作用是在程序的运行阶段动态地选择合适的成员函数,

2016-09-05 22:15:47 220

原创 构造函数和析构函数

基类的构造函数和析构函数不能被派生类继承。基类的构造函数不能被派生类继承,派生类中需要声明自己的构造函数。在设计派生类的构造函数时,不仅需要考虑派生类增加的数据成员的初始化,也要考虑基类的数据成员的初始化。声明构造函数时,只需要对本类中新增成员进行初始化,对继承而来的基类成员的初始化,需要调用基类的构造函数完成。基类的析构函数不能被派生类继承,派生类需要自行声明自己的析构函数。声明

2016-09-05 15:22:54 228

空空如也

空空如也

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

TA关注的人

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