自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

honeyJ

Talk is cheap,Show me the code.

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

原创 公交卡的测试用例

功能性测试公交卡在公交车刷卡机上正常感应,并正常扣费地铁,公交根据路程长短,扣费是否符合标准在地铁上刷卡正常感应,入站不收费,开闸机,出站扣费,开闸机充值金额最高值低于多少金额,卡片不能使用,导致刷卡失败金额不足,充值后可正常使用充值时,卡里余额正确,使用时,金额一致。消磁后不能产生感应更换卡片后,卡里余额正确注销后,无法执行消费、充值等业务界面测试外观完整,美...

2018-08-30 13:42:48 5400

原创 如何测试一个电梯

如果给你一台电梯,请问你如何测试它,分析如下功能:上升、下降、停止、开门、关门、梯内电话、灯光、指示灯等;性能:速度、反应时间、关门时间等;压力:超载、尖锐物碰撞电梯壁等;安全:停电、报警装置、轿箱停靠位置、有人扒门时的情况等;可用性:按键高度、操作是否方便、舒适程度等;UI:美观程度、光滑程度、形状、质感等;稳定性:长时间运行情况等;兼容性:不同电压是否可工作、不同类型电话是...

2018-08-30 13:16:04 25285 2

原创 文件上传和下载的常用测试点

文件上传:页面页面美观性、易用性(键盘和鼠标的操作、tab跳转的顺序是否正确)按钮文字正确性说明文字是否正确正确/错误的提示文字是否正确提示当前位置是否正确,并且和其他页面保持一致格式必填项的标示是否正确功能路径是否可以手工输入(手工输入的时候有没有限长)上传文件超过最大值是在提交前校验还是提交后校验上传文件格式是否全部支持(图片:gif/jpg/bmp…文档:...

2018-08-30 13:00:34 16166

原创 测试有关知识点总结

你所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。答:有黑盒和白盒两种测试种类,黑盒有等价类划分法,边界分析法,因果图法和错误猜测法。白盒有逻辑覆盖法,循环测试路径选择,基本路径测试。例子:在一次输入多个条件的完整性查询中。利用等价类划分法则和边界分析法则,首先利用等价划分法,可以一个或多个结果是OK的测试用例,然后确认多个NG的测试用例,然后...

2018-08-29 22:11:45 3410

原创 界面测试

界面测试界面测试,也叫UI测试(User interface testing),,本文介绍一些常见的界面测试。界面测试的目的检查用户界面的风格是否满足客户的要求, 是否通用,文字是否正常,页面是否美观,文字,图片是否结合完美,操作是否友好等等。界面测试难以自动化测试,因为如果是测试界面(而不是测试功能),比如测试界面上的控件是否显示正常。是没有必要去写自动化测试。 用手动测试,...

2018-08-29 21:09:24 3445

原创 性能测试简单介绍

性能测试介绍指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试对性能的认识从用户的角度: 从开发的角度: 从系统管理员的角度: 那么?测试应该关注哪些呢? 测试人员通常是做为软件质量控制的一个角色,不仅仅是找bug,需要对整个软件的质量负责,性能也属于质量的一部分,因此测试人员眼中的性能应该是全面的,考虑的东西也需要全面:...

2018-08-29 21:08:56 44426 1

原创 软件测试方法汇总

软件测试方法种类繁多,如果把软件测试方法进行分类, 就会清晰很多。 从测试设计方法分类 测试名称 测试内容 Black box黑盒测试 把软件系统当作一个“黑箱”,无法了解或使用系统的内部结构及知识。从软件的行为,而不是内部结构出发来设计测试 White box白盒测试 设计者可以看到软件系统的内部结构,并且使用软件的内部知识来指导测试数据及方法的...

2018-08-29 19:50:08 378

原创 如何测试一个杯子

在软件测试的面试中, 经常会碰到类似的问题。比如:如何测试一个杯子, 或者如何测试一只笔。 要求你设计20个以上的test case. 这类的面试题目,是考察面试者是否熟悉各种软件测试方法,设计test case的能力, 以及test sense。首先应该反问下面试官, 需求是什么样的,比如大概是个什么样的杯子。 我回答这类问题的思路, 从软件测试的各种不同方法来联想。具体如下:...

2018-08-29 19:25:52 4526 1

原创 和为S的连续正数序列

题目: 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!解析:我们要找和为S的连续正数序列,...

2018-08-27 15:15:17 149

原创 拓扑序列

拓扑排序对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。拓扑排序对应施工的流程图具有特别重要的作用,它可以决定哪些子工程必须要先执行,哪些子工程要在某些工程执行后才可以执行。为了形象地反映出整个工程中各个子工程(活动)之间的先后关系...

2018-08-27 10:14:22 4011

原创 explicit、implicit关键字详解

这几天复习遇见这个关键字,有点疑惑,总结一下。我们首先需要知道,explicit只能用来修饰只有一个参数的构造函数。它的作用是表明该构造函数是显式的, 而非隐式的,跟它对应的另一个关键字是implicit,意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式)。那么它们的作用是什么呢?我们通过代码看一下:class CxString // 没有使用explicit...

2018-08-22 18:42:05 4260

原创 求按从小到大的顺序的第N个丑数

题目: 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。解释: 首先从丑数的定义我们知道,一个丑数的因子只有2,3,5,那么丑数p = 2 ^ x * 3 ^ y * 5 ^ z,换句话说一个丑数一定由另一个丑数乘以2或者乘以3或者乘以5得到,所以下一个丑数...

2018-08-21 10:11:37 1899

原创 从1-n整数中1出现的次数

题目: 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。解法一:class Solution {public: i...

2018-08-20 09:19:10 329

原创 关于进程、线程总结

进程进程是程序的活动实体,是资源分配和调度的基本单位。 例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。进程的状态转换运行中的进程有可能有三种状态,就绪态,运行态和阻塞态当进程处于就绪态时,说明此进程已具备除处...

2018-08-19 15:45:24 308

原创 struct和class的区别

面试中觉得经常会问到class和struct的区别,今天整理一下。如果说class可以继承,而struct不可以继承,这是完全错误的。在C++中,这两个关键词并没有大的区别,仅在细节上有些不同。字面上的区别 (1)在字面上struct是structure的缩写,通常叫做”结构体”,在C语言里用于将多种数据、多个变量组织在一起,便于表达比较复杂的数据类型,在C++中为了兼容C语言保留了该...

2018-08-17 22:27:00 1280

原创 测试登录界面用例

测试登录界面快捷键的使用是否正常,比如上下左右键,ENTER键是否正确切换布局美感,是否符合人的审美标注输入框的功能: 输入合法的用户名和密码可以成功进入 输入合法的用户名和不合法的密码,不可以进入,并给出合理的提示 输入不合法的用户名和正确的密码不可以进入,并给出合理的提示 输入不合法的用户名和不正确的密码不可以进入,并给出合理的提示 其中: (1)不合法的用户名有:不正确...

2018-08-16 22:26:28 16056

原创 volatile关键字详解

介绍volatile,类似于我们熟知的const,也是一个类型修饰符。volatile的主要作用是:作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。 简单地说,就是防止编译器对代码进行优化,保证内存可见性。原因volatile的作用也可以说是:提示编译器该对象的值有可能在编译器未监测的情况下被改变。 这样,编译器就不会去假设这个变量的值了。精确...

2018-08-16 17:07:28 198

原创 项目-天气邮局

一、项目背景项目的提出原因:为了更好的理解服务器的实现及一个URL在提交后发生了什么 项目的独特与创新分析:为了创新及实用性,我们小组想到将其扩充为天气推送。二、项目简介主要功能:用户可输入服务器网址,服务器响应,返回一个登陆页面,用户通过服务器暴露出来的接口进行注册,注册完毕之后,用户可登陆,添加一些自己的亲朋好友的信息,服务器将其存储到数据库。服务器每天定时爬...

2018-08-15 18:59:05 319 1

原创 CGI机制与CGI程序

CGI机制CGI(common gateway interface)——通用网关接口,是一个web服务器提供信息服务的接口。 通过CGI接口,web服务器就能获得客户端提交的信息,转交给服务器端的CGI程序,最终将结果返回给浏览器。 组成CGI通信系统有两部分: 一部分是HTML页面,就是客户端浏览器显示上显示的页面,另一部分是服务器上的CGI程序。 CGI是连通web服务器和服务器上...

2018-08-15 11:50:31 606

原创 当fork遇见for循环,printf后会怎样?

这段时间总看见这种题,今天总结一下。题1先看代码1:#include<unistd.h>#include<stdio.h>#include<sys/types.h>int main(){ printf("1 2 3"); fork();}代码2:#include<unistd

2018-08-12 22:25:22 1085

原创 web性能压力测试工具

为了测试之前写的HTTP服务器的项目,学习一下以下几个web压力测试工具。http_load1、概念 http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载。 但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死,还可以测试HTTPS类的网站请求。 2、下载与安装 (1)利用wget远程安装: wget http://soft.v...

2018-08-12 20:57:06 1610

原创 设计模式简介

简介设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。设计模式分为三种类型,分别是:创建型模式、结构型模式,行为型模式。设...

2018-08-12 17:46:48 139

原创 项目-STL空间配置器

这篇博客主要讲一下SGI-STL中的空间配置器的工作流程。一、项目背景小块内存带来的内存碎片问题(外碎片问题)小块内存频繁申请释放带来的性能问题二、空间配置器的思想对于我们来说,对new和delete很熟悉,这两个函数可以分别完成内存的申请和释放,和c里面的malloc和free如出一辙。 Std::alloc的主要思想是: (1)定义一个空间大小阈值,128...

2018-08-12 16:33:44 231

原创 调整数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 注意:此题要求保证数的相对位置不变 方法一:类似冒泡算法,前偶后奇数就交换:class Solution {public: void reOrderArray(vector<int> &arr...

2018-08-11 21:58:15 523

原创 斐波那契数列&&变形题目

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 这个问题很简单,若是用递归可能效率会很低,重复计算太多。 因此我们使用非递归自下而上计算,代码如下:class Solution {public: int Fibonacci(int n) { int f0=0; int f1=1; ...

2018-08-09 10:39:41 1428

原创 对指针和引用的理解?指针和引用的区别?

对指针和引用的理解?指针和引用的区别?

2018-08-07 16:09:37 1908

原创 C++与C的区别

C++和C的区别C语言是面向过程编程,C++是面向对象编程面向过程编程就是分析出解决问题的步骤,然后把这些步骤一步一步的实现,使用的时候一个一个的依次调用就可以了。 面向对象编程就是把问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题步骤中的行为。 面向过程编程的性能比面向对象高,因为类调用的时候需要实例化,开销比较大,比较消耗...

2018-08-06 21:46:44 1681 1

原创 在浏览器输入一个网址后,发生了什么?

这几天看面经觉得这道题十分经典,下文中总结了过程,附了很多之前的文章,介绍细节。当你在浏览器中输入一个网址,浏览器的处理过程如下:浏览器查找该域名的 IP 地址TCP建立连接浏览器根据解析得到的IP地址向web服务器发送一个 HTTP 请求服务器给浏览器进行一个301永久重定向响应浏览器根据重定向地址再次进行HTTP请求。服务器收到请求并进行处理服务器返回一个响应浏览器对该...

2018-08-06 11:03:30 1921

原创 HTTPS和HTTP的区别

HTTPS和HTTP的区别在网络的学习中,我们频繁的接触到HTTP这个协议。从概念上来说,超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。 我们知道,HTTP就是浏览器和服务器进行交互数据时,双方都要遵守的数据格式规范。 举个例子: 两个人写信,需要都遵守一些规则才能互相看懂对方的...

2018-08-05 15:57:19 433

原创 C/C++的内存分配?栈和堆的区别?为什么栈快?

一个由 C/C++ 编译的程序占用的内存分为以下几个部分 :栈区( stack ) ——由编译器自动分配释放,存放为运行函数而分配的局部变量、函数参数、返回数据、返回地址等。其操作方式类似于数据结构中的栈;堆区( heap )——一般由程序员分配释放, 若程序员不释放,程序结束时可能由 OS 回收 。分配方式类似于链表;全局区(静态区)(static)——存放全局变量、静态数据。初始化的...

2018-08-05 09:41:25 8727 2

原创 函数指针与仿函数

函数指针在平常的C/C++代码编程中, 我们经常会碰到函数指针(Function Pointer)这个概念,函数指针,顾名思义,指向函数入口的指针。 像我们平常使用的指向数组的指针,我们可以传递数组的地址。函数指针也一样,我们用代码演示一下具体用法:#include<iostream> using namespace std;typedef void(*func)(i...

2018-08-04 16:32:56 1632

原创 STL的各个容器?

STL的各个容器?序列式容器vecor,动态数组模型,它维护的是一个连续线性空间。vector的扩容:并不是在原空间之后接着开辟新空间(因为无法保证之后有可供配置的空间),而是每次再分配原大小两倍的内存空间,这是一个配置新空间(malloc),拷贝移动数据(memcpy),释放旧空间(free)的大工程,时间成本很高。因此,对vector的任何操作,一旦引起控件重新配置,指向原ve...

2018-08-04 14:24:55 1100

原创 迭代器失效的几种情况

关于迭代器失效,,今天做一个总结。迭代器失效分三种情况考虑,也是三种数据结构考虑,分别为数组型,链表型,树型数据结构。1、对于序列式容器,比如vector,删除当前的iterator会使后面所有元素的iterator都失效。举例如下:void vectorTest(){ vector<int> v; for (int i = 0; i < 10;...

2018-08-04 11:47:05 5113

原创 C++中四种类型转化

我们都知道: C中的强制类型转换(Type Cast)很简单,不管什么类型的转换都是: Type b = (Type)a而C++中有四种转换类型如下: static_cast ,const_cast ,dynamic_cast,reinterpret_cast 我们来详细了解一下:1.static_cast静态转换(在编译期间处理)类似于C风格的强制转换最常用的类型转换符,...

2018-08-04 09:38:15 739

原创 用C来模拟实现多态?

如何用C来模拟实现多态?要实现多态,首先我们应充分了解多态的原理。 C++是如何实现多态的?在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数。也就是说: 如果类中包含了虚函数–>类对象大小+4个字节–>地址(虚表)–>虚函数集合...

2018-08-03 16:53:43 855

原创 32位和64位机数据类型的大小?32位指针为什么是4个字节?

今天在CSDN论坛看到很多讨论int类型大小由什么决定,争论的由机器字长决定还是编译器决定,int类型比较特殊,具体的字节数应该是同机器字长和编译器都有关。C、C++标准中只规定了某种类型的最小字节数(防止溢出)。32位系统和64位有什么区别?通常的64位技术是相对32位而言的,这个位数指的是CPU GPRs(General-Purpose register通用寄存器)的数据宽度为64...

2018-08-03 15:56:07 11378 4

原创 C++设计一个类:不能被继承

C++如何设计一个不能被继承的类?我们首先想到,不能被继承,那把构造函数和析构函数设计成私有的不就行了,这样的话子类不能访问父类的构造函数和析构函数,也就无法继承了。然而这样一来,这个类在其他地方也就不能实例化了,没有存在的意义了。这时候我们应该想到静态方法,我们可以通过静态方法来返回类的实例,然后通过另一个静态方法来释放该类对象。看如下代码:class A{public:...

2018-08-02 16:53:23 884

原创 设计一个类:只能在堆上创建对象?只能在栈上创建对象?只能创建一个对象?

在C++中,类的对象建立分为两种,一种是静态建立,如A a;另一种是动态建立,如A* ptr=new A;这两种方式是有区别的。静态建立一个类对象,是由编译器为对象在栈空间中分配内存,是通过直接移动栈顶指针,挪出适当的空间,然后在这片内存空间上调用构造函数形成一个栈对象。使用这种方法,直接调用类的构造函数;动态建立类对象,是使用new运算符将对象建立在堆空间中。这个过程分为两步,第一步是执...

2018-08-01 18:03:39 2346 1

原创 C++内存管理分析

malloc/calloc/realloc的区别?1. malloc 函数原型: void *malloc(size_t size); 函数功能: malloc()在内存的动态存储区中分配一块长度为size字节的连续区域。参数size为需要的内存空间的长度,返回该区域的地址。 区别: malloc不能初始化所分配的内存空间,需要用memset,而函数calloc能初始化。如果这部...

2018-08-01 17:16:50 834

原创 this指针详解

什么是this指针this是指向实例化对象本身时候的一个指针,里面存储的是对象本身的地址,通过该地址可以访问内部的成员函数和成员变量。一个对象的this指针并不是对象本身的一部分,其不会影响sizeof(对象)的结果。this指针的用处this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。 也就是...

2018-08-01 14:49:33 1807

空空如也

空空如也

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

TA关注的人

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