自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 memmove和memcpy的模拟实现

一、函数声明memcpyvoid * memcpy ( void * destination,const void * source,size_t num );·函数memcpy从source的位置开始向后复制num个字节的数据到destination的内存位置。·这个函数在遇到’\0’的时候并不会停下来。·如果source和destination有任何的重叠,复制的结果都是未定义的。memmovevoid * memmove ( void * destination,const void

2020-11-24 17:23:46 935 4

原创 Synchronized详解

一、 使用场景静态同步方法:当前类对象加锁public class Synchronized { public void husband(){ synchronized(Synchronized.class){ } }}实例同步方法:this对象加锁public class Synchronized { public synchronized void husband(){ }}同步代码快:指定对象加锁public class Synchro

2021-07-30 11:16:26 249 1

原创 测试之selenium工具集2

一、元素的定位对象的定位应该是自动化测试的核心,要想操作一个对象,首先应该识别这个对象。一个对象就是一个人一样,他会有各种的特征(属性),如比我们可以通过一个人的身份证号,姓名,或者他住在哪个街道、楼层、门牌找到这个人。那么一个对象也有类似的属性,我们可以通过这个属性找到这对象。注意:不管用那种方式,必须保证页面上该属性的唯一性webdriver 提供了一系列的对象定位方法,常用的有以下几种idnameclass namelink textpartial link texttag nam

2021-07-04 09:35:00 279 1

原创 测试之selenium工具集

一、自动化测试工具jmeter性能测试工具设置/录制脚本接口测试loadrunner 性能测试工具U界面录制soupUl接口测试功能 postmanappium APP自动化测试工具Macaca MOnkeyselenium特点:轻量级支持多语言:ruby Python java C#等支持多平台:WindowsMac支持多浏览器:Firefox IE Chrome edge Safari 0pera支持分布式测试二、如何实施自动化测试1、自动化测试的适用对象实施自动化测

2021-07-03 22:41:36 257 3

原创 测试之文件压缩项目项目实践

一、项目启动,介入了解需求项目背景:磁盘空间不够,需要一个压缩、解压缩文件目标:完成所有文件类型的压缩、解压缩。时间:2018-6-1到2018-6-7项目成员:项目经理:唐僧产品经理:孙悟空开发:猪八戒测试:沙和尚二、需求分析功能需求:文件类型:支持所有的文件压缩文件个数:最多压缩100个文件压缩大小:不超过5G性能需求: 压缩、解压缩文件不超过30分钟安全需求: 带有病毒感染的文件不能压缩易用性需求 操作简单、方便界面需求:布局、排版美观兼容性需求: windows

2021-06-25 21:32:17 118

原创 测试之管理篇

一、测试策略产品定位:不同的用户群体测试优先级:用户(用户经常使用的功能)、测试人员(边界条件)、开发人员(逻辑)需求,是软件设计与测试的来源,但是需求除了终端用户的功能需求外,还有设计性需求、可靠性需求、可测试性需求、性能需求、安全性需求等。1、测试策略的具体实施测试策略需要确认测试使用的测试技术、测试过程的管理和控制、测试团队的组建根据测试的需要,选择测试技术,例如:1、需不需要白盒测试?2、自动化测试采用哪种工具?针对接口测试还是UI测试?3、性能测试采用哪种工具?jmeter还是l

2021-06-25 21:00:47 1084 2

原创 百度云盘测试用例

一、百度云盘(非功能性测试需求)二、百度云盘核心功能需求分析三、百度云盘需要测试的文件类型

2021-06-19 15:20:26 4328 4

原创 浅谈try-catch-finally

一、执行顺序仅仅在下面4种情况下不会执行finally语句:若在try或catch语句中执行了System.exit(0)在执行finally之前jvm崩溃了try语句中执行了死循环电源断电除以上情况,finally语句都会执行。二、执行原则不管有没有出现异常,finally中代码都会执行。若无异常,顺序为:try-finally当try和catch中有return语句时,finally语句仍会执行注意:当finally里没有return语句时,执行try和finally语句之后,

2021-06-10 21:02:13 156

原创 构造函数的详解

一、概念构造函数:一种特殊的函数,用来在对象实例化时初始化对象的成员变量。二、特点构造函数必须与类的名字相同,并且不能有返回值(返回值也不能为void)每个类可以有多个构造函数。当开发人员没有提供构造函数时,编译器在把源代码编译成字节码的过程中会提供一个没有参数默认的构造函数,但该构造函数不会执行任何代码。如果开发人员提供了构造函数,那么编译器就不会再创建默认的构造函数。构造函数可以有0个、1个或1个以上的参数。构造函数总是伴随着new操作一起调用,且不能由程序的编写者直接调用,必须要由系统调

2021-06-10 20:41:48 5959

原创 微信发红包的测试用例

练习:微信群发红包,拼手气红包,30个人,100块钱,全部抢完。问题:如何测试抢到钱的好友的总钱数==100块?接口测试:发红包接口:输入参数:钱数(100)、发红包人WeChatID),群ID,个数(30个)输出:红包ID抢红包参数:输入参数:红包ID,群ID,抢红包人的ID输出:抢的钱数WeChatID 30个建群:接口,群ID多线程调用接口...

2021-06-04 20:39:07 280 2

原创 测试进阶篇

一、测试金字塔与业务测试分析(1)从下到上三层测试,投入相同的时间,人力资源等,回报率(产出)越低(2)从下到上,测试的效率越来越低(3)从下到上,定位问题越来越难二、单元测试定义:是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。又称为模块测试测试阶段:编码前(TDD:Test-Drvien-Develop)测试驱动开发,编码后测试对象:最小模块测试人员:白盒测试工程师或开发工程师测试依据:代码和注释+详细设计文档测试方法:白盒测

2021-05-28 21:55:51 965

原创 手机软件测试用例

01 安装和卸载应用的安装和卸载在任何一款APP中都属于最基本功能。一旦出错,就属于优先级为紧要Critical的缺陷。因此APP的安装和卸载应作为一个测试点多加重视。主要关注以下几个方面:﹒应用是否可以正常安装(命令行安装(测试人员);豌豆荚/手机助手,应用商店等第三方软件安装﹔apk / ipa安装包安装)应用是否可以在iOS和 Android不同系统,版本,机型上进行安装(有的系统版本过低,应用不能适配)(安装兼容性的测试)安装过程中是否能暂停,再次点击﹐是否继续安装。安装空间不足时如何表

2021-05-23 20:36:21 1835

原创 测试用例篇之习题练习

问题:1、根据等价类和边界值进行测试用例的设计姓名:有效等价类无效等价类边界值1~20个字符输入为空输入为空超过20个字符11~20个数字21~20个数字+字符混合191~20个空格+字符/数字混合21年龄:有效等价类无效等价类边界值18~60之间的整数输入为空输入为空小数17汉字18大小写字母19小于18或大于60的整数59、60、612、因果图法产

2021-05-23 20:17:08 1176 4

原创 微信朋友圈测试用例

2021-05-07 23:08:40 439 5

原创 测试用例篇

一、测试用例的基本要素1、测试用例:向测试系统发起的一组集合,测试平台,测试数据,测试步骤,预期结果等。(测试方法,标题,重要性,优先级,功能模块等)2、评价测试用例的标准(对比好坏代码的评价标准):用例表达清楚,无二义性。用例可操作性强。用例的输入与输出明确。一条用例只有一个预期结果。用例的可维护性好。用例对需求的覆盖率高。暴露程序Bug的能力强力。二、设计测试用例的方法需求分析(用户)——软件需求(产品经理)——开发软件(程序员)——测试功能(测试人员)——产品上线1、根据

2021-05-07 21:20:33 1079

原创 Web实验三 Web组件重用与JavaBeans

一、实验预习内容静态include指令何时执行?主页面和被包含的子页面是否转换为一个转换单元?同一个转换单元的页面之间如何共享数据?答:静态包含是在JSP页面转换阶段将另一个文件的内容包含到当前JSP页面中。静态include指令与主页面同时执行;主页面和被包含的子页面是转换为一个转换单元;同一个转换单元的页面之间通过request作用于共享。jsp:include动作指令何时执行?主页面和被包含的子页面是否转换为一个转换单元?动作包含的子页面与主页面共享同一个请求吗?在不同的转换单元中如何

2021-04-28 15:35:55 1096

原创 PC端QQ登录的测试用例

PC端QQ登录的测试用例

2021-04-23 21:52:28 515 1

原创 测试基础

一、软件测试的生命周期软件测试流程:需求分析——测试计划——测试设计/开发——测试执行——测试报告需求分析:分析需求、细化需求、验证需求、正确性和合理性;测试计划:规划测试人员、规划时间、测试范围、测试目的;测试设计/开发:分析需求、从细化的需求者提炼功能点、设计测试用例;测试执行:执行测试用例、记录BUG;测试报告:测试范围、有多少测试用例、执行了多少、余留了多少测试用例、发现多少BUG、修改了多少BUG(验证)、遗留的BUG以及解决方案。二、如何描述一个BUG版本号(代码版本号)

2021-04-23 21:47:06 86

原创 测试基本概念

1、什么是需求?定义:满足用户的期望或者规定的文档(合同、规范、标准)所需的条件和权限;用户需求:简单的描述;软件需求:具体的用户需求实现的细节2、什么是BUG?定义:有两个方面,当且仅当软件规格说明书存在并合理,如果软件功能和规格说明不相符,就说明是软件错误(BUG);如果软件规格说明不存在,用户需求存在不相符,说明是软件错误(BUG)。3、什么是测试用例?定义:测试人员向被测试系统发起的一组集合,这组操作集合包括,测试数据,测试平台,测试步骤,预期结果。4、软件开发的五个模型

2021-04-23 19:30:34 206

原创 Web实验二 JSP技术及应用

一、实验预习内容JSP语法元素有哪些?使用时应注意什么问题?(1)JSP脚本元素、JSP指令、JSP动作、JSP注释、表达式语言;JSP页面的生命周期包括哪几个阶段? 页面转换、页面编译、加载和创建实例、调用jspInit()、调用_jspService()、调用jspDestroy().JSP指令和动作有哪些?有什么区别? JSP指令:向容器提供关于JSP页面的总体信息,指令有三种类型:page指令、include指令和taglib指令。JSP动作:是页面发给容器的命令,它指示容器在页面执行期

2021-04-22 16:38:48 1771

原创 水杯测试用例

水杯测试用例

2021-04-22 16:16:53 99

原创 Web实验一 Servlet技术及应用

一、实验预习内容Web页面中都可以使用哪些方式来发送HTTP请求?(1)用户在浏览器的地址栏中输入URL并按回车键;(2)用户点击了HTML页面中的超链接;(3)用户在HTML页面中添写一个表单并提交.GET与POST两种请求方式有什么区别?分别适用于什么情况?(1)GET方法用来检索资源.它的含义是”获得由该URI标识的资源”.GET方法请求的资源通常是静态资源.使用GET也可以请求动态资源,但一般要提供少量的请求参数.(2)POST方法用来向服务器发送需要处理的数据,它的含义是”将

2021-04-22 14:58:46 4686 1

原创 浏览器输入一个http协议的url,如何定位服务资源

一、简介1.HTTP协议是什么?即超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。从网络参考模型来看,它是属于应用层。它规定了计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。简单的来说,它就是基于应用层一个规范一个标准!通讯双发都需要遵守这一准则,这就是http协议!2.URI是什么?URI:统一资源

2021-04-19 19:08:05 330

原创 MySQL之表的增删改

一、新增注意: 如果直接插入中文是不行的,因为MySQL默认的编码方式是拉丁文,需要配置成utf-8这样的编码方式才可以.语法:insert into 表名 values(具体的值)(具体的值)...1. 普通插入2. 插入的时候,某些列可以不填写,不填写的时候需要使用null来占位.3.如果只插入其中某些列,就需要在values之前通过()来指定插入那几列4.还可以通过values一次性插入多组记录二、删除语法:delect from table_name [where...

2021-04-15 16:33:59 64

原创 MySQL之表的查询

表的查询语法:SELECT[DISTINCT] {* | {column [, column] ...}[FROM table_name][WHERE ...][ORDER BY column [ASC | DESC], ...]LIMIT ...先创建一个表:1.查找所有列一般不建议这样写。2.查找指定列3.查询字段为表达式4.别名为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称.语法:select column [AS] alias_name

2021-04-15 16:32:50 933

原创 MySQL之数据库基础

一、数据库的操作1.显示当前数据库语法:show databases;举例:2.创建数据库语法:create database 数据库名;create database if not exists 数据库名;举例:3.选中数据库语法:use 数据库名;举例:4.删除数据库语法:drop database 数据库名;举例:注意: 这是很危险的操作,一旦删除就没有了.二、常用数据类型1.数值类型:数据类型对应java类型BIT[ (

2021-04-10 16:26:43 86

原创 数据结构之Map

一、Map的基本概念Map是一个接口类,该类没有继承自Collection,该类中存储的是<K,V>结构的键值对,并且K一定是唯一的,不能重复.二、<K,V>结构的键值对Map.Entry<K, V> 是Map内部实现的用来存放<key, value>键值对映射关系的内部类,该内部类中主要提供了<key, value>的获取,value的设置以及Key的比较方式。方法名作用K getKey()返回entry中的key

2021-04-09 22:53:03 2014

原创 数据结构之排序

一 、冒泡排序1、基本思想:两个数比较大小,较大的数下沉,较小的数冒起来。2、过程:比较两个相邻的元素,看是否符合升序要求,如果不符合就交换。一趟遍历下去,就能找到最大值,并且把最大值放到最后(从前往后遍历)。也能找到最小值,并且把最小值放到最前(从后往前遍历)。继续重复上述过程,依次将第2.3…n-1个最小数排好位置。3、各项指标:时间复杂度:O(NlogN)空间复杂度:O(1)稳定性:不稳定4、源程序: public static void swap(int[] arr

2021-03-26 16:38:18 187

原创 数据结构之堆

堆常用来实现优先队列,在这种队列中,待删除的元素为优先级最高(最低)的那个。在任何时候,任意优先元素都是可以插入到队列中去的,是计算机科学中一类特殊的数据结构的统称。一、堆的定义:如果有一个关键码的集合K={k0,k1,k2,…kn-1},把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,并满足:Ki<=K2i+1且Ki<=K2i+2(Ki>=K2i+1且Ki>=K2i+2) i =0,1,2…则称为小堆(或大堆)。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆

2021-03-22 10:59:18 404

原创 数据结构之二叉树的非递归排序

一、非递归先序遍历方法:1、创建一个栈;2、把根节点入栈;3、取出栈顶元素,访问这个节点;4、把当前节点的右子树入栈,左子树入栈(非空);5、回到3重复执行。源程序: public static void preOrderByLoop(TreeNode root) { if (root == null) { return; } // 创建一个栈 Stack<TreeNode> stack =

2021-03-21 21:33:41 674

原创 数据结构之完全二叉树

一、完全二叉树定义完全二叉树(Complete Binary Tree)若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。完全二叉树是由满二叉树而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。一棵二叉树至多只有最下面的一层上的结点的度数可以小于2,并且最下层上的结点都集中在该层最左边的若干位置上,而在最后一层上,右边

2021-03-17 15:44:21 119276 4

原创 数据结构之二叉树

一、树的基本概念1、定义树结构的特点是:它的每一个结点都可以有不止一个直接后继,除根结点外的所有结点都有且只有一个直接前趋。以下具体地给出树的定义及树的数据结构表示。(一)树的定义树是由一个或多个结点组成的有限集合,其中:1.必有一个特定的称为根(ROOT)的结点;2.剩下的结点被分成n >=0个互不相交的集合T1、T2、…n,而且,这些集合的每一个又都是树。树T1、T2、…Tn被称作根的子树(Subtree)。树的递归定义如下:(1)至少有一个结点(称为根);(2)其它是互不相交的

2021-03-13 20:29:25 319

原创 数据结构之队列

一、 基本概念队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出(First in First Out)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为队头。假设队列是q=(a1,a2,…,an),那么a1就是队头元素,而an是队尾元素。这样我们就可以删除时,总是从a1开始,而插入时,列在最后。这也比较符合我们通常生活中的习惯,排在第一个的优先出列,最后来的当然在队伍的最后。二、存储结构及自定义实现基本操作队列既然是一种线性表,所以

2021-03-09 21:52:23 141 1

原创 数据结构之栈

一、基本概念栈(Stack)又称堆栈,它是一种运算受限的线性表,其限制是仅允许在表的一端进行插入和删除运算。人们把此端称为栈顶,栈顶的第一个元素被称为栈顶元素,相对地,把另一端称为栈底。向一个栈插入新元素又称为进栈或入栈,它是把该元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称为出栈或退栈,它是把栈顶元素删除掉,使其下面的相邻元素成为新的栈顶元素。由于栈的插入和删除运算仅在栈顶一端进行,后进栈的元素必定先出栈,所以又把栈称为后进先出表(Last In First Out, 简称LIFO

2021-03-09 20:16:36 271 1

原创 数据结构之实现链表的基础操作(1)

要求:已知一条链表,不知道其长度的情况下:通过遍历,打印链表的每个元素。通过遍历,找到链表的最后一个结点。通过遍历,找到链表的倒数第二个结点。通过遍历,找到链表的第 n 个结点。(链表的长度 >= n)通过遍历,计算链表中元素的个数。通过遍历,找到链表中是否包含某个元素。源代码及注释Nodepackage java;// 使用 Node 表示链表的节点public class Node { public int val; public Node next =

2021-02-02 15:26:07 86

原创 自定义JAVA顺序表的基本操作

package java;class MyArrayListIndexOutOfRangeException extends RuntimeException { public MyArrayListIndexOutOfRangeException(String message) { super(message); }}// 为了代码简单, 就不写泛型版本了. 直接认为 ArrayList 中存的是若干的 Stringpublic class MyArrayLis

2021-02-01 17:31:10 179

原创 小型产生式系统——昆虫识别

一、研究背景和目的1.研究背景(1)产生式概念产生式是表征程序性知识的最小单位,是指人脑中贮存的一系列如果—那么形式表示的规则。一个产生式是一个由条件和动作组成的指令,即所谓的条件—活动规则。“产生式”这一术语是在1943年由美国数学家E.L.Post首先提出的,它根据串替代规则提出了一种称为Post机的计算模型,模型中的每一条规则称为产生式。产生式通常用于表示具有因果关系的知识,其基本形式为:P→Q 或者 IF P THEN Q。(2)产生式系统概念产生式系统简称产生式。它是指形如->或I

2021-01-27 17:10:37 7955 7

原创 JAVA图书管理系统

简单的图书管理系统源代码Testpackage BookSystem;import java.util.Scanner;public class Test { public static void main(String[] args) { Object o = null; // 1. 先准备好书籍的数据 BookList bookList = new BookList(); // 2. 创建用户(涉及到登陆过程)

2021-01-27 16:52:34 941 1

原创 JAVA中的异常

一、异常的背景异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。例如:代码少了一个分号System.out.println("he")//执行结果Error:(5, 33) java: 需要';'除以 0System.out.println(10 / 0);//执行结果Exception in thread "main" java.lang.ArithmeticException: / by zero数组下标越界int[] arr = {

2021-01-25 16:40:30 127

原创 JAVA中的多态

一、什么是多态多态是同一个行为具有多个不同表现形式或形态的能力;是同一个接口,使用不同的实例而执行不同操作。具体的语法体现:向上转型,方法重写,动态绑定。多态性是对象多种表现形式的体现。举例说明:现实中,比如我们按下 F1 键这个动作:如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;如果当前在 Word 下弹出的就是 Word 帮助;在 Windows 下弹出的就是 Windows 帮助和支持。同一个事件发生在不同的对象上会产生不同的结果。二、向上转型定义:父类的引用

2021-01-21 17:30:46 105

空空如也

空空如也

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

TA关注的人

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