草庐IT

想成为好的软件测试工程师?你得了解这些测试思想和工作方法~

软件测试人员的工作主要是检测软件系统中的存在的BUG,但并不是毫无逻辑的盲目抓瞎。学会运用测试思维去完成测试工作,会使你的工作事半功倍。01、软件测试的前提假设测试人员进行软件测试的基本假设是“有罪推断”。即:认为被测程序一定是有bug的,而且每个功能点的实现都存在bug,而且一定存在严重的bug。请牢记这个假设。在实际工作中,一旦在日后的工作过程中产生了这样的认识:“这个功能很简单,肯定不会出现问题,就不再测试了。”或者“这个功能上一轮刚测试过,当时就没有问题,这一轮应该也不会有问题,就不用测试了。”等等诸如此类的意识,那么你就有90%的概率导致漏测,造成线上问题。其原因也正是这个测试工作的

Hadoop 2.7 再次降临——深入剖析 Hadoop 的设计思想

作者:禅与计算机程序设计艺术1.简介随着云计算、大数据和机器学习的应用普及,越来越多的企业、组织和个人开始使用基于Hadoop之上的开源分布式框架进行数据处理、分析和挖掘,甚至构建自己的大数据平台。作为Hadoop框架最主要的开发者和拥护者,ApacheHadoopPMCChairman在他的新书《Hadoop:TheDefinitiveGuide》中谈到过,“ApacheHadoop是当今最流行的开源分布式计算框架”,它不仅仅是一个大型项目,更是一个社区及其重要的一部分。近几年来,Hadoop项目的版本迭代经历了三个阶段,分别是1.x、2.x和3.x。随着Hadoop1.x的结束,2.x版本

【数据结构】深入探讨二叉树的遍历和分治思想(一)

🚩纸上得来终觉浅,绝知此事要躬行。🌟主页:June-Frost🚀专栏:数据结构🔥该文章主要讲述二叉树的递归结构及分治算法的思想。目录:🌍前言:🌍二叉树的遍历🔭前序遍历🔭中序遍历🔭后续遍历🌎分治🔭一些例子❤️结语🌍前言: 为了实现二叉树的基本操作以及更好的了解二叉树的结构,先手动创造一个链式二叉树。#include#includetypedefstructBinaryTreeNode{ structBinaryTreeNode*left; structBinaryTreeNode*right; intval;}BTNode;BTNode*BuyNode(intx){ BTNode*node=(B

Reactive编程思想

1.JDK9Reactive-(真的要使用,建议使用jdk11)Reactive响应式(反应式)编程是一种新的编程风格,其特点是异步或并发、事件驱动、推送PUSH机制以及观察者模式的衍生。reactive应用(响应式应用)允许开发人员构建事件驱动(event-driven),可扩展性,弹性的反应系统∶提供高度敏感的实时的用户体验感觉,可伸缩性和弹性的应用程序栈的支持,随时可以部署在多核和云计算架构。响应式编程与命令式编程的区别:在命令式编程中,a:=b+c意味着将b+c的结果赋值给a,并且此后b或c的值发生变化不会影响到a的值。而在响应式编程中,a的值会随着b或c的改变而自动更新,并且不需要重

【LeetCode力扣】LCR170 使用归并排序的思想解决逆序对问题(详细图解)

目录1、题目介绍2、解题思路2.1、暴力破解法2.2、归并排序思想2.2.1、画图详细讲解2.2.2、归并排序解决逆序对的代码实现1、题目介绍首先阅读题目可以得出要点,即当前数大于后数时则当作一个【逆序对】,而题目是要求在一个数组中计算一共存在多少个这样的逆序对并输出结果。  原题链接:LCR170.交易逆序对的总数-力扣(LeetCode)​2、解题思路2.1、暴力破解法看到这里的第一反应就是这不是很简单吗?心想着这困难题也不过如此吧(笑)。就是直接使用暴力破解法,只需要两个for循环嵌套,一个record[i]在原地,另一个record[j]将后面所有遍历一遍,只要比record[i]的小

用区块链思想来保护消费者信息

作者:禅与计算机程序设计艺术1.简介随着互联网的飞速发展,传统的互联网服务商以及门户网站逐渐成为新媒体平台,纷纷推出属于自己的商业模式,吸引大量用户的目光。但另一方面,越来越多的人依赖手机支付、社交账号、购物记录等个人信息进行日常生活活动,这些信息也正逐步成为各类互联网公司数据最大的敌人。如何合理利用个人信息确实是个难题。区块链作为一种开源的分布式系统,可以让不同组织或者个人之间共享、保障和传递价值。从根本上看,它打破了信任关系,解决了很多信任问题。由于所有参与者都能够验证身份和数据完整性,使得个人信息得以安全地存储、共享、交易。因此,通过将个人信息存放在区块链上,可以实现以下几点优势:数据不

游戏引擎的cpu/gpu粒子系统设计思想

开篇网上有很多篇粒子系统源码解析,但是只是简单的接口罗列,没有从最原理出发去讲清楚粒子系统的来龙去脉,我将从粒子系统的本质去讲清楚它的设计理念,当理解了它的理念以后,很多粒子遇到的问题就会迎刃解决了,这篇文章主讲粒子的实现和一些框架级的优化方式,其实有很多优化细节就不赘述粒子系统的设计思想在早期游戏发展的时候,有一些粒子效果是实现一些鼠标特效的,比如《刀剑封魔录》中滑动鼠标后,鼠标本身就会作为一个粒子发射器,在鼠标拖动后,会产生很多粒子并随着时间消亡,这就是最早的粒子系统模型 在早期的桌面系统中实现的粒子全是用cpu在屏幕上渲染的,如果需要世界中的3D粒子,则会将世界坐标转换为屏幕坐标,在屏幕

用区块链思想来保护消费者信息

作者:禅与计算机程序设计艺术1.简介随着互联网的飞速发展,传统的互联网服务商以及门户网站逐渐成为新媒体平台,纷纷推出属于自己的商业模式,吸引大量用户的目光。但另一方面,越来越多的人依赖手机支付、社交账号、购物记录等个人信息进行日常生活活动,这些信息也正逐步成为各类互联网公司数据最大的敌人。如何合理利用个人信息确实是个难题。区块链作为一种开源的分布式系统,可以让不同组织或者个人之间共享、保障和传递价值。从根本上看,它打破了信任关系,解决了很多信任问题。由于所有参与者都能够验证身份和数据完整性,使得个人信息得以安全地存储、共享、交易。因此,通过将个人信息存放在区块链上,可以实现以下几点优势:数据不

深入剖析ThreadLocal使用场景、实现原理、设计思想

前言ThreadLocal可以用来存储线程的本地数据,做到线程数据的隔离ThreadLocal的使用不当可能会导致内存泄漏,排查内存泄漏的问题,不仅需要熟悉JVM、利用好各种分析工具还耗费人工如果能明白其原理并正确使用,就不会导致各种意外发生本文将从使用场景、实现原理、内存泄漏、设计思想等层面分析ThreadLocal,并顺带聊聊InheritableThreadLocalThreadLocal使用场景什么是上下文?比如线程处理一个请求,请求会经过MVC流程,由于流程很长,会经历很多方法,这些方法就可以叫上下文ThreadLocal作用在上下文中存储常用的数据、存储会话信息、存储线程本地变量等

【算法思想】Reed-Solomon 纠错编码基础概念,编码、解码算法原理、数学公式 & Python代码实现

【算法思想】Reed-Solomon纠错编码基础概念,编码、解码算法原理、数学公式&Python代码实现文章目录【算法思想】Reed-Solomon纠错编码基础概念,编码、解码算法原理、数学公式&Python代码实现简介基础概念基础原理有限域有限域的定义有限域的应用场景有限域的性质如何使其成为密码学和编码理论的基础?编码解码错误定位Berlekamp-Massey算法原理错误纠正代码实现编码解码总结附录:完整Python代码rscode.py