watermark

不知道软件测试什么?这些是你需要知道的软件测试类型和常识

依然范特西╮ 提交于 2020-08-09 18:42:12
文章篇幅较长,阅读完大概20min,建议收藏阅读, 读完会有收获。欢迎点赞关注 原文链接:https://www.softwaretestinghelp.com/types-of-software-testing/ 有多少软件测试类型呢? 我们作为测试人员了解很多种不同的软件测试类型,例如功能测试(Functional Test)、非功能测试、自动测试、敏捷测试、以及它们的各种子类型. 尽管在我们的测试过程中会接触很多种测试类型, 或者听说过某些测试类型,但是很少人敢说精通所有的测试类型. 每个测试类型都有自己的特点、优势和劣势。所以我写这篇文章,科普一下我们今天最常用的测试类型. 文章为意译,并且在原文的基础之上进行演绎和扩展 不同的软件测试类型 下面是软件测试的通用类型列表 功能测试类型: 单元测试(Unit testing) 集成测试(Integration testing) 系统测试(System testing) 健全性测试(Sanity testing) 冒烟测试(Smoke testing) 接口测试(Interface testing) 回归测试(Regression testing) Beta/验收测试(Beta/Acceptance testing) 非功能测试类型: 性能测试(Performance Testing) 负载测试(Load testing)

spring security oauth2 实战(仿微博第三方登录)

北战南征 提交于 2020-08-09 18:03:27
前言 很久之前写了 4 篇关于 spring security 的入门实战文章 Spring Security 01- 将 Spring security 引入到工程 Spring security 02-自定义用户登录页面和登录处理逻辑 Spring security 03-自定义登录成功后的处理逻辑 Spring security 04-整合 jwt 而在上一篇文章 结合第三方登录案例理解 OAuth2.0 授权码方式 又加深了对 oAuth2.0 协议 - 授权码模式 的理解。 接下来要做的是开发一个基于 spring security oauth2 的 仿微博第三方登录 。 本文要做的事情是: 工程搭建 微博第三方登录流程分析 阅读正文前,请确保已经了解了 oauth2.0 的相关内容,以及 spring-securiy 的入门使用。 正文 几点声明 本文案例是基于 授权码模式 springboot 版本 2.1.6.RELEASE spring-security-oauth2 版本 2.2.0.RELEASE 使用 fastjson 进行 json 字符串与对象之间的转换 页面跳转会从 controller 跳到 前台页面 页面编写使用了 thymeleaf 模版引擎 需要注意的主要是版本问题,其他的只是简单声明下。 微博第三方登录流程 先来熟悉下微博的第三方登录流程。

JVM详解之:运行时常量池

会有一股神秘感。 提交于 2020-08-09 17:26:35
简介 JVM在运行的时候会对class文件进行加载,链接和初始化的过程。class文件中定义的常量池在JVM加载之后会发生什么神奇的变化呢?快来看一看吧。 class文件中的常量池 之前我们在讲class文件的结构时,提到了每个class文件都有一个常量池,常量池中存了些什么东西呢? 字符串常量,类和接口名字,字段名,和其他一些在class中引用的常量。 运行时常量池 但是只有class文件中的常量池肯定是不够的,因为我们需要在JVM中运行起来。 这时候就需要一个运行时常量池,为JVM的运行服务。 运行时常量池和class文件的常量池是一一对应的,它就是class文件的常量池来构建的。 运行时常量池中有两种类型,分别是symbolic references符号引用和static constants静态常量。 其中静态常量不需要后续解析,而符号引用需要进一步进行解析处理。 什么是静态常量,什么是符号引用呢? 我们举个直观的例子。 String site="www.flydean.com" 上面的字符串"www.flydean.com"可以看做是一个静态常量,因为它是不会变化的,是什么样的就展示什么样的。 而上面的字符串的名字“site”就是符号引用,需要在运行期间进行解析,为什么呢? 因为site的值是可以变化的,我们不能在第一时间确定其真正的值,需要在动态运行中进行解析。

【实验】阿里云大数据助理工程师认证(ACA)- 机器学习实现基本统计分析

拟墨画扇 提交于 2020-08-09 17:22:08
实验概述 本实验在阿里云PAI机器学习平台上,对一组农业数据进行基本的统计分析,包括观察数据的分布情况,对农民的收入和其他变量的相关性进行分析,对不同区域的农民收入进行分组分析和对比分析,以探讨不同地区的农民之间是否存在收入差异。 实验目标 理解基本统计分析的一些概念的原理和使用方法,运用阿里云PAI机器学习平台上的基本统计分析组件,包括数据视图、相关系数矩阵、箱线图、正态检验、全表统计和双样本T检验等。 实验架构 阿里云大数据计算服务MaxCompute + 大数据开发套件DataIDE+ 机器学习平台PAI 第 1 章:实验背景 1.1 maxcompute 请点击页面左侧的 ,在左侧栏中,查看本次实验资源信息。 maxcomputemaxcompute MAXCOMPUTE 在弹出的左侧栏中,点击 创建资源 按钮,开始创建实验资源。 资源创建过程需要1-3分钟。完成实验资源的创建后,用户可以通过 实验资源 查看实验中所需的资源信息,例如:阿里云账号等。 1.2 实验概述 本实验在阿里云PAI机器学习平台上,对一组农业数据进行基本的统计分析,包括观察数据的分布情况,对农民的收入和其他变量的相关性进行分析,对不同区域的农民收入进行分组分析和对比分析,以探讨不同地区的农民之间是否存在收入差异。 1.3 实验目的 理解基本统计分析的一些概念的原理和使用方法

小师妹学JVM之:深入理解JIT和编译优化-你看不懂系列

孤街醉人 提交于 2020-08-09 16:33:47
[toc] 简介 小师妹已经学完JVM的简单部分了,接下来要进入的是JVM中比较晦涩难懂的概念,这些概念是那么的枯燥乏味,甚至还有点惹人讨厌,但是要想深入理解JVM,这些概念是必须的,我将会尽量尝试用简单的例子来解释它们,但一定会有人看不懂,没关系,这个系列本不是给所有人看的。 更多精彩内容且看: 区块链从入门到放弃系列教程-涵盖密码学,超级账本,以太坊,Libra,比特币等持续更新 Spring Boot 2.X系列教程:七天从无到有掌握Spring Boot-持续更新 Spring 5.X系列教程:满足你对Spring5的一切想象-持续更新 java程序员从小工到专家成神之路(2020版)-持续更新中,附详细文章教程 JIT编译器 小师妹:F师兄,我的基础已经打牢了吗?可以进入这么复杂的内容环节了吗? 小师妹不试试怎么知道不行呢?了解点深入内容可以帮助你更好的理解之前的知识。现在我们开始吧。 上次我们在讲java程序的处理流程的时候,还记得那通用的几步吧。 小师妹:当然记得了,编写源代码,javac编译成字节码,加载到JVM中执行。 对,其实在JVM的执行引擎中,有三个部分:解释器,JIT编译器和垃圾回收器。 解释器会将前面编译生成的字节码翻译成机器语言,因为每次都要翻译,相当于比直接编译成机器码要多了一步,所以java执行起来会比较慢。 为了解决这个问题,JVM引入了JIT

如何做好软件项目的质量管理?

夙愿已清 提交于 2020-08-09 15:56:19
保证软件质量,是一个贯穿整个软件生存周期的重要问题。在早期,由于忽视了质量管理,导致软件项目管理的严重问题,以至于在软件开发中出现软件危机。重视软件质量管理,规范软件质量管理体系,对整个软件项目管理起到非常重用的促进作用。本文主要通过对管理策略的介绍,来达到提高软件质量的目的。 在软件开发团队中,由于质量被视为软件产品的生命。那么什么是软件质量?软件质量:与软件产品满足明确或隐含需求的能力有关的特征和特征的总和,它反映了三个方面的问题: 1、能满足客户需求的特性之全体; 2、利用各种质量标准体系,指导软件开发人员开发软件; 3、是否满足用户隐含需求。软件质量管理的目的是建立对项目的软件产品质量的定量理解,和实现特定的质量目标;着重于确定软件产品的质量目标、制定达到这些目标的计划,并监控及调整软件计划、软件工作产品、活动及质量目标以满足顾客及最终用户对高质量产品的需要及期望。 一、软件质量管理的现状 在现实软件开发过程中,许多软件产品却时常陷入质量低下、甚至软件不符合用户需求的旋涡。究其根源,有以下几个方面: 1、软件质量保证技术(审查、复审和测试)没有贯穿到整个软件开发全过程中去。 2、在于这些软件产品对其质量内涵的把握,仅仅停留在减少软件运行错误、加强软件测试,避免软件缺陷的一般性层面,而对整个软件开发生命周期的全过程质量管理,缺乏总体架构。 3

架构简洁之道:从阿里开源应用架构 COLA 说起

让人想犯罪 __ 提交于 2020-08-09 13:04:50
导读 :COLA 的主要目的是为应用架构提供一套简单的可以复制、可以理解、可以落地、可以控制复杂性的”指导和约束"。在实践中作者发现 COLA 在简洁性上仍有不足,因此给 COLA 做了一次“升级”,在这次升级中,没有增加任何新的功能,而是尽量多删减了一些概念和功能,让 COLA 更简洁有效。 最近,同事告诉我,COLA 作为应用架构,已经被选入阿里云的 Java 应用初始化的应用架构选项之一。 This is really something,于是,在这个里程碑节点上,我开始回过头来,重新审视 COLA 一路走来的得与失。 COLA 作为一种架构思想无疑是成功的。但是作为框架,个人感觉有点鸡肋之嫌。特别是在简洁性上做的不好,感觉做了不少画蛇添足的事情。 试想一下,有些功能我作为作者都很少去使用,我实在想不到,它为什么还有存在的理由。 基于上面的思考,我做了这一次 COLA 2.0 到 COLA 3.0 的升级。在本次升级中,我没有增加任何新的功能,而是尽量多删减了一些概念和功能。让 COLA 可以更加纯粹的 focus 在应用架构上,而不是框架支持和架构约束上。 支持我做这些决策的背后原因只有一个——奥卡姆剃刀原理。 奥卡姆剃刀原理 奥卡姆剃刀原理,是指如无必要,勿增实体(Entities should not be multiplied unnecessarily),即

用树莓派4,OLED,USB摄像头搭建条形码扫描设备

我们两清 提交于 2020-08-09 11:15:24
最近618优惠,买了树莓派4,打算给娃当电脑用。到手之后先自己玩了下,做了一个简单的扫码程序。 树莓派4相关硬件采购 树莓派4的4GB版本。官方定价65美金,京东300减40到手389。 Micro HDMI转HDMI线。树莓派4更换了电源接口。 HDMI母对母转接头。用于延长HDMI线。 树莓派智能贴身管家。包含可编程风扇,RGB灯和OLED显示模块。 系统安装 官网下载官方系统 https://www.raspberrypi.org/downloads/。 用Win32 Disk Imager把镜像写到sdcard里。 卡插入树莓派4,连接电源。注意:电源至少3A输出,不要随便连接USB接口供电。 系统配置 开启I2C, VNC, 和SSH。 要通过Windows远程连接,可以安装tightvncserver和xrdp: sudo apt update sudo apt install tightvncserver xrdp 接下来检查下磁盘空间是否足够: df -H Filesystem Size Used Avail Use% Mounted on /dev/root 32G 8.9G 21G 30% / devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 2.1G 0 2.1G 0% /dev/shm tmpfs 2.1G 9.1M 2.1G 1%

手机智眼——智慧视觉

不羁的心 提交于 2020-08-09 11:09:15
“你给我智眼 帮我辨认食物的热量 你给我智眼 帮我翻译冗长的文章 你给我智眼 帮我找到购物的地方 你给我智眼 帮我走出不认识物品的情况……”   二哈先给大家唱首歌,希望大家喜欢,嘿嘿。因为二哈今天给大家介绍的流量入口就和歌词有关系——“智慧视觉,您的手机智眼”。    智慧视觉是通过手机扫图或扫码的方式触发快服务的。具体的触发方式如下: 【01页面】点击智慧视觉图标进入【02页面】 【02页面】点击功能图标开始自动识别,进入【03页面】 【03页面】点击服务卡片进入【04页面】服务详情页 ----结束   目前呢,智慧视觉主要支持功能如下:   l 识物:识别所扫描物品并给出简介。   l 购物:识别所扫描物品并给出购物页面。   l 卡路里:识别所扫描物品并给出食品的热量。   l 翻译:识别文字并翻译。   在这里讲个有趣的事情,记得有一次二哈和同事一起吃茶歇,茶歇上的水果里面有一个这样的东西(如下图)。当时我和我的小伙伴都惊呆了(可能也是我们的知识比较局限,见过的大佬应该是一眼就能看出来吧),这个东西形状像苹果,颜色有点像猕猴桃但是还有点淡,摸上去还挺硬的,所以这到底是个啥呢……当时大家观察了半天,都没有下口。这时候,有个同事拿出华为手机,打开智慧视觉用“识物”功能扫了一下这个东西,结果居然是“梨”……有个“大胆”的同事拿起来,尝了一口,“还真是梨”。大伙顺着线索查了一下

分布式_分布式事务_强事务(CP)_两阶段提交协议

末鹿安然 提交于 2020-08-09 05:57:16
一、两阶段提交协议 第一阶段:提交请求阶段/投票阶段 两阶段协议就是通过两次协商来完成一个事务操作。一般第一个事务的发起方叫做 协调者。其他服务叫做参与者。第一步,协调者会通知其他系统,我们要执行一个事务啦。其他系统这时会通知协调者自己是否准备好执行事务。如果都可以执行,则进入第二步。如果有一个系统说自己不能执行事务,则整个分布式事务回滚。上图: 上图表示了投票阶段所有系统的操作过程,这里假设的是所有系统都是正常的情况下的流程。假设短信服务或者积分服务中的一个宕机了或者因为某某原因(也许积分服务这边也在执行某个事务,卡着等待了。)没有告知用户服务自己已经准备好,那么用户服务会认为事务发起失败,直接报错。如果是用户服务挂了,那么其他参与者就会一直等待用户服务的消息,需要自己写超时逻辑。要是都没问题,则进入第二阶段:提交执行阶段。 第二阶段:提交执行阶段 直接上图: 此时所有服务执行事务,并且用户服务统计各个系统的事务执行结果。如果所有系统都执行成功,则整个分布式事务执行成功。 如果此时用户服务(协调者)宕机,则其他服务就收不到用户服务下发的事务提交消息,就会一直卡着等待。因为二阶段提交默认只有协调者有超时时间,那么参与者需要自己写超时处理流程。 如果此时短信服务或者积分服务宕机或者操作执行失败,那么用户服务则会收到失败的消息,通知各个系统回滚事务。要是这个时候用户服务也挂了