自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 PyQt5中QObject类简述以及控件之间的继承机制和定时器的使用

1. 简述QObject类是PyQt5中所有类的父类,其提供了PyQt5中所有控件所具有的共性。2. QObject中的常见API>设置和获取父控件和子控件的方法setParent(parent):设置该控件的父控件(父对象),如果设置多个父控件,以最后设置的父控件为准parent():获取父控件children():获取该对象的直接子对象findChildren(obj_type):获取该对象的子控件,需要一个参数来指定查找子控件的类型,比如QLabel附: 子控件与父控件的关系

2020-12-26 22:53:14 25 1

原创 一、pyqt库的简介与安装

一、pyqt简介

2020-12-26 22:12:51 17 1

原创 使用appium桌面版在win平台连接逍遥模拟器(以梦幻西游手游为例)

1. 配置相关信息和下载软件下载逍遥模拟器,进行安装,官网为点击进入,完成后双击进行安装即可下载java jdk,安装并配置下载Android sdk,sdk下载地址点击进入,进入下载页面后直接下载ADT Bundle即可(里面包含了需要的所有工具),完成后将下载好的压缩包解压,放到自己想要放置目录下即可,然后进入到解压文件内部的sdk目录下,将sdk及其所在路径复制(例如"D:\adt-bundle-windows-x86_64-20140702\sdk"),然后添加到环境变量中,变量名为ANDR

2020-12-20 19:44:51 60

原创 python搭建puautogui+opencv+aircv环境以及pip切换下载源

1. 搭建pyautogui环境下载opencv-python:pip install opencv-python下载opencv-contrib:pip install opencv-contrib-python安装aircv:pip install aircv安装pyautogui:pip install PyAutoGUI注: 安装pyautogui时出错,报Preparing wheel metadata ... error异常的解决方法:安装wheel,命令为pip install

2020-12-06 17:36:10 66

原创 计数排序和桶排序算法的实现(python&java)

1.计数排序1. 简介计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。其时间复杂度为 O(n + k),需要注意的是,该排序算法并不是一种比较排序算法,其主要步骤如下:找出待排序数组中的最大值统计数组中每个值为v元素出现的次数,存入数组Coun的第v项反向填充目标数组,将每个元素v放在新数组result的第Coun(v)项,每放一个元素就将Coun(v)减去1从上面步骤可以看出,如果待排序数组中数

2020-12-06 17:26:28 12

转载 python中使用“*”号创建多维数组的坑

1. 现象首先是一维数组的情况:arr1 = [0]*3arr[2]=3print(arr1)结果如下,可以看到,在一维数组的情况下是没有问题的,结果符合预期。而在多维数组的情况下所示,先创建一个多维数组(这里以二维数组为例),代码如下:arr2=[[1]*2]*3arr2[0][0]=3print(arr2)结果如下:可以看到,结果明显与预期不符,代码操作的意图是将第0行第0列的元素值改为3,而结果却是将第0列的所有元素值都改为了3。2. 原因出现这种情况的原因是由pyt

2020-11-20 13:31:41 19

原创 工厂模式的实现(Java)

1、概述

2020-11-16 23:15:54 40

原创 同行评审详解(如分类、对象、结果等)

同行评审,定义为“由软件工作产品生产者的同行遵循已定义的规程对产品进行的技术评审”,是一种通过作者的同行来确认缺陷和需要变更区域的检查方法按照CMMI模型的提法,将同行评审分为3类。(1)正式评审(Inspection),通常是由经过同行评审培训的项目经理或PPQA主持,规模在3~7人之间为宜,一般在完成了一个工作产品后对其进行的评审。正式评审的目的在于定位并除去工作产品中的缺陷。(2)技术审查(Technical Reviews),或称内部评审,通常由技术负责人或项目经理召集,三人以上参加。技术审查

2020-11-10 16:54:25 99

原创 回归测试详解(定义&目的、策略以及什么叫做回归等)

1. 概述

2020-11-08 20:38:03 323 1

原创 软件测试和bug的生命周期以及bug的状态与描述

1. 概述一、软件测试的生命周期1.软件测试的生命周期需求分析–>测试计划–>测试设计、测试开发–>测试执行–>测试评估2.软件测试&软件开发的生命周期需求阶段测试人员需要了解需求,对需求进行分解,得出测试需求计划阶段根据要求编写测试计划书或方案设计阶段测试人员适当的了解设计,搭建测试用例框架编码阶段测试人员不需要进行编码,需要对需求进行测试测试阶段软件测试人员最重要的一个阶段,编写测试报告运行维护测试人员需要参与项目的实施工作,需

2020-11-06 09:04:02 125

原创 Bug及bug的级别划分和优先级

1. 概述2. bug级别的分类及其具体划分的参考意见一. 严重问题定义: 不能完全满足系统要求,系统停止运行,系统的重要部件无法运行,系统崩溃或挂起等导致系统不能继续运行。修改优先级为最高,该级别问题需要立即修改。系统崩溃导致程序重启,死机或非法退出死循环数据丢失或异常数据通讯错误。硬件故障,系统悬挂二. 高级问题定义: 严重地影响系统要求或基本功能的实现,且没有更正办法(重新安装或重新启动该软件不属于更正办法)。使系统不稳定、或破坏数据、或产生错误结果,或部分功能无法执行,而且

2020-11-05 19:28:16 132

原创 测试常见面试题之场景测试回答策略(如电梯该怎么测等)

1. 概述这类问题是考察面试者测试思路和测试策略的常见问题,主要要根据软件质量的六个特性(功能性、易用性、效率、可靠性、可维护性、可移植性)来进行思考,进而需要结合实际测试软件时考虑的角度,比如功能方面、接口方面、性能方面、维护难度方面、兼容性方面、界面或者说外观方面(比如本地化的一些内容以及界面美观等等)、操作难度或者说易用性方面、可靠度(比如应对异常情况的能力)方面、安全性方面等,根据这些角度结合具体要测试的内容进行思考并作答, 例如,在下例中,分别从功能、界面、易用、兼容、安全、性能这六个角度结合业

2020-11-04 23:27:01 648 1

原创 python的多线程及线程间的通信方式

1. 概述

2020-11-04 22:56:15 187

原创 线程同步、异步、互斥、虚假唤醒和生产者消费者模式的Java&Python实现

1、概述生产者消费者设计模式是一个典型的线程同步问题,其主要描述的场景是一个模块生产数据或者产生数据,另一个模块用于读取或者说处理数据,一般来讲,还会有一个缓冲区,用来保存生产模块产生出来的数据。其相关的模型如下所示:其中缓冲区的作用是主要有以下几个:解耦合:如上图,如果没有缓冲区,生产者将直接调用消费者中的相关方法,那么生产者模块将会对消费者模块产生依赖,也就是耦合。支持并发:由于函数调用是同步的(或者叫阻塞的),在消费者的方法没有执行完成之前,生产者只能一直处于等待状态。如果消费者处理数据

2020-11-02 16:01:22 57

原创 python中内置的高阶函数(map、filter、reduce、sorted、all)

1. 概述python中内置了map、reduce、filter、sorted这四个高阶函数。下面将详细讲解着四个高阶函数的用法2.

2020-10-29 23:39:41 57

原创 python环境selenium的安装和配置以及常见错误的解决方法

1. 安装方法selenium包的安装有以下几个方式:通过命令行安装,语法为pip install selenium[==版本号],其中版本号是选填的,比如安装版本号为2.48.0的selenium,则命令为pip install selenium==2.48.0,如果是要安装最新版本的则直接输入pip install selenium即可。通过pycharm安装,具体步骤为:菜单File–>setting–>Project 当前工程名称–>Project Interpreter–

2020-10-29 15:44:27 159

原创 软件的结构及网络协议模型概述

1、软件结构1. 软件结构分类C/S结构:是指客户端-服务端结构,通常需要安装专属的客户端,比如大型的网络游戏(逆水寒等)。B/S结构:指浏览器-服务端结构,即用户只需要安装浏览器,就可以通过浏览器使用相应软件。p2p结构:即pear to pear,指点对点的通信交换实现数据资源、服务的共享。在此结构中,用户之间可以直接通信、共享资源、无序常规意义的服务器中转处理。常见的应用有迅雷、BT下载及飞秋等软件。2. 每种结构的优缺点C/S结构:优点是安全性高、性能强;缺点是系统的扩展性差,代码

2020-10-27 15:48:40 31

原创 黑盒测试方法之场景法和测试用例设计方法的综合选择策略

1. 概述在测试用例的设计方法中,等价类、边界值及判定表等测试用例设计方法只能够解决针对单点功能的测试用例设计,而无法针对涉及业务流程的软件系统进行测试。这时候就要用到场景法来设计测试用例,也就是说场景法主要是针对业务流程来设计测试用例的。现在的软件几乎都是通过事件触发来控制流程的,事件触发时的场景便形成了场景,而同一事件不同的触发顺序和处理结果就形成了事件流。 这原本是一种软件设计的思想,不过依然可以用来指导软件测试用例的设计,可以生动的描述事件触发时的情景,有利于测试用例的设计和对测试用例的理解和执

2020-10-27 00:05:58 79

原创 黑盒测试方法之功能图法

1. 概述程序的功能说明通常由动态说明和静态说明组成, 动态说明描述的是输入数据的次序和转移的次序,而静态说明描述的是输入条件与输出条件之间的对应关系。当程序中过于复杂并且存在大量的组合时,仅仅使用静态说明设计的测试用例,往往是考虑不够的,所以采用动态说明来补充一定的测试用例时必要的。而功能图法就是使用动态描述来生成测试用例的方法,其本质是一种白盒和黑盒测试方法组合的测试用例设计方法。2. 定义功能图方法是用功能图形象的描述程序的功能说明,并机械的生成功能图的测试用例。功能图由状态迁移图和逻辑功能模型

2020-10-26 14:51:17 129

原创 黑盒测试方法之正交实验法

1、概述在利用因果图和判定表驱动法来设计测试用例时,作为输入条件的原因和输出结果之间的关系有时候很难从需求规格说明中得到;或者因果关系非常庞大,导致利用因果图得到的测试用例数目非常大,为了有效地、合理地减少测试的工时与费用(测试用例的数量),就可以使用正交实验法。2、定义此方法是由数理统计学科中正交实验方法演化而来的一种用于测试多条件多输入的用例设计方法, 是根据Galois(伽罗瓦)理论导出的“正交表”,合理安排实验的一种科学实验设计方法,是研究多因子(因素)多水平(状态)的一种实验方法。 其根据实

2020-10-26 09:40:31 322

原创 黑盒测试方法之因果图和判定表——一

1. 概述在等价类的设计方法中,虽然详细考虑到了需求输入域,但是对于输入域及输入域存在关联时无法覆盖,因此需要一种能考虑输入域相互关联的用例设计方法来考虑业务描述性的测试需求。而如果考虑输入条件的各种组合,可能的组合数将非常大,所以要考虑各种条件的组合,相应的产生多个动作的形式来考虑设计测试用例,这种情况下就需要用到因果图,并且在绘制出因果图后,也需要将其转化为判定表,最后再抽取测试用例,在设计时需要为判定表的每一列设计一条测试用例。 如果可以直接绘制出判定表,那么也就没有必要绘制因果图了。2. 判定

2020-10-25 16:21:10 99

原创 黑盒测试方法之因果图和判定表——二

1. 因果图法1. 概述在利用判定表设计方法设计测试用例的过程中,往往会遇到输入与输入之间存在约束的情况,简单业务逻辑关系可用判定表解决,但较为复杂的约束关系可能就不合适了。这种情况下使用因果图就就会比较容易理解业务的逻辑关系,因果图又称鱼骨图,用于描述被测对象输入与输入、输入与输出之间的约束关系,因果图绘制的过程中,可以理解为用例设计者针对因果关系业务的建模过程。利用因果图设计用例的大致过程为首先根据需求规格绘制因果图,然后将其转为判定表再进行用例设计,一般将因果图理解为判定表的前置过程,如果逻辑关系

2020-10-25 16:20:58 55

原创 黑盒测试方法之因果图和判定表——三

4、因果图加判定表设计测试用例实例这里以一个《软件评测师教程》上面的例子为例,来说明和演示因果图和判定表驱动法设计设计用例的过程与方法。该实例描述具体如下。1. 需求规格描述有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入一元五角硬币,按下“可乐”、“雪碧”或“红茶”按钮,相应的饮料就送出来,若投入的是两元硬币,在送出饮料的同时退还5角硬币。2. 分析需求中包含的因果根据上面的描述,可以分析提取出上面这段话中包含的原因和结果,分别如下所示:>原因投入一元五角硬币投入两元硬

2020-10-25 16:20:37 86

原创 黑盒测试方法之错误推测法概述

错误推测法不同于等价类划分和边界值分析等设计方法,其是基于测试人员的经验和直觉推测

2020-10-23 08:50:29 80

原创 黑盒测试方法之边界值分析

1. 概述在长期的测试工作中,人们发现大量的错误都是出现在了输入和输出域的边界范围上,而并不是输入范围的内部。因此要对各种边界情况设计测试用例,以查找出更多的错误。边界值属于等价类方法的特定输入域,包含在有效等价类或无效等价类中,根据等价类推断理论,边界值方法产生的测试数据测试效果和等价类方法相同,只是边界值方法产生的数据更具有针对性,通常选取输入域的边界值。2. 边界条件和次边界条件>边界条件边界条件是特殊情况,比如要求输入的长度为6-10,位,那么边界条件就是长度为6和长度为10以及两种

2020-10-22 23:55:23 217

原创 软件测试的定义、目的及原则

软件测试的定义软件测试的经典定义是在规定条件下对程序进行操作,以发现错误,对软件质量进行评估。因为软件是由文档、数据以及程序组成的,所以软件测试的对象也就不仅仅是程序本身,而是包括软件形成过程的文档、数据以及程序。随着软件工程化越来越被重视以及软件规模的不断扩大,软件分析、设计的作用越来越突出,而在实践中,越来越多的错误是在刚开始的分析与设计阶段就已经存在,所以对于软件需求和设计阶段的测试就显...

2020-10-22 17:20:56 76

原创 黑盒测试方法之等价类划分

1、等价类划分2、边界值分析

2020-10-22 16:40:48 304

原创 对于python中__name__的理解

在python中,经常会见到以下形式的代码:if __name__== "__main__": 具体要执行的代码块以上这段代码的具体含义如下:上述语句中,__name__是python每个模块或者说.py文件的内置变量,其用来保存所在文件或模块的名字,并且当其所在模块被作为程序的入口或者说主模块运行时,给他当中的__name__变量赋值“__main__”,而当模块被导入其他模块使用时,那么被导入的模块当中的__name__变量就被赋值为此模块的名字,而非main...

2020-10-22 15:24:48 41

原创 测试用例设计的八大要素及ANSI/IEEE 829标准和编写示例

1、测试用例的八大要素1. 用例编号和其他编号一样,测试用例编号是用来唯一识别测试用例的编号,要求具有易识别和易维护性,用户可以很容易根据用例编号获取到相应用例的目的和作用,在系统测试用例中,编号的一般格式为A-B-C-D这几部分的作用分别如下:A:产品或项目类型,如CMS(内容管理系统)、CRM(客户关系管理系统)B:一般用来说明用例的属性,如ST(系统测试)、IT(集成测试)、UT(单元测试)C:测试需求的表示,说明该用例针对的需求点,可包括测试项和测试子项等,如文档管理、客户投诉信息管理

2020-10-21 17:29:30 111

原创 软件质量的定义及其六大特性(质量模型)

1、软件质量的定义软件质量是软件特性的综合,指软件满足规定或潜在用户需求的能力,其主要从内部质量、外部质量、使用质量和过程质量这四个方面来衡量。2、软件质量模型测度与度量:在软件质量中用于测量的一种量化的标度和方法即为测度,而名词的度量即用来指测量的结果。1. McCail质量模型这是由McCall和他的同事在早期提出的软件质量模型,指出了影响软件质量因素的分类,其主要集中在以下三个方面:操作特性(产品运行)承受可改变的能力(产品修订)新环境适应的能力(产品变迁)具体的模型图如下(来源

2020-10-18 13:58:25 828

原创 用户和群组相关的命令和文件

1、用户和群组相关的文件/etc/passwd目录:此文件是存放用户信息的配置文件,其主要内容有:第一部分:用户名第二部分:x(本来用于存放用户登录密码)第三部分:UID,用户ID号码,新建用户时,UID的值都在500以后,最 大值为65535之间第四部分:GID,用户所在群组的ID号码第五部分:用户的全称第六部分:用户的属主目录第七部分:shell脚本注: 以上七部分如下图所示 :/etc/shadow文件用于存放用户的密码/etc/group:用于存放群组信息的配

2020-10-12 15:49:46 24

原创 在Linux系统下mysql无法插入中文的解决方法

1、首先用以下命令查看mysql的编码输入show variables like %character%;来查看mysql的编码,这里的编码为utf-8,如下:2、修改表的编码在创建表格时将表格的编码设置为mysql的编码即可,这里设置为utf8,如果表格已经创建,则通过修改表选项的方法修改相应编码即可。创建表时直接修改编码命令:create table tableName(字段)charset utf8;修改表选项的方法修改表的编码命令:``````alter table tableNa

2020-10-12 10:40:01 67

原创 python中模块的导入和发布以及安装方法

1、模块的导入方法导入模块或者函数的方法有以下几种,具体格式如下: import 包1.包2. ... .模块名 from 包1.包2. ... .模块名 import 函数名/类名 from 包1.包2. ... .包n import 模块名2、发布自己编写的python模块在需要发布的模块的公共目录(及这些模块的共有父级目录)新建setup.py文件然后从distutils.core包中导入setup函数,然后调用setup函数,写入相关参数即可,具体如下: from distu

2020-10-11 22:46:37 44

原创 二叉树的前中后序及层次遍历(python)实现(包含递归非递归)

递归实现二叉树的前中后序遍历二叉树的前序遍历# 此方法会将遍历的结果保存在result列表中def preorderTraversal(node:TreeNode,result:list): if node is None: return result.append(node.val) if node.left is not None: preorderTraversal(node.left,result) if node.right is not None: preorderTr

2020-09-23 18:21:14 53

原创 PyQt5程序的基本结构及简单示例

基本结构一个PyQt5程序,总的来说分为以下几个步骤:创建一个QApplication(sys.argv)对象app(app表示对象名,可以自拟)这一步的目的是创建一个Qt应用程序对象,所有的PyQt5应用程序必须要有这个对象。其中sys.argv参数是一个列表,可以接受从命令行输入的参数(字符串格式),这些参数被组成一个列表。进行控件的操作在这一步,主要的内容是创建控件、设置样式、为添加添加相关的响应处理等。最后调用顶层控件的show方法将控件展示在屏幕上。正式启动程序,然后进入到消息循环当

2020-05-28 16:56:09 304 3

转载 LeetCode190——颠倒二进制位

题目颠倒给定的 32 位无符号整数的二进制位。参考一1、用bin函数将其转为对应的二进制字符串,然后切割出“0b”后面的内容2、用zfill()函数将其填充到32位长度3、然后反转zfill()返回的字符串,最后将其转为十进制整数即可。代码:# 方法一def translate(s: int): res = bin(s)[2:] # 将s转为对应的二进制字符串 res = re...

2020-03-26 11:31:37 52

原创 LeetCode每日一题——岛屿的最大面积

题目:给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为0。)来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/max-area-of-island...

2020-03-15 21:09:42 71

原创 leetcode每日一题——多数元素

题目给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/majority-element著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。参考解法从多数元素...

2020-03-13 11:14:20 90

原创 leetcode——27.移除元素解答参考

题目(题目来源:力扣(LeetCode))给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/pr...

2020-03-08 19:13:10 50

原创 selenium之frame切换、窗口切换及各种选择框和弹出框

frame切换一般来讲,我们无法直接通过webdriver对象拿到frame或者iframe中的元素,这时我们就需要切换到frame或者iframe中去,方法为调用webdriver对象的switch_to.frame()方法。方法里面可以传入iframe和frame的id等属性值用以选择出该frame。具体如下:browser.switch_to.frame(browser.find_ele...

2020-01-18 10:55:27 659

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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