该流程为笔者整理的一个小型项目的测试流程,不代表测试的全部。更适合于一些小公司的测试流程。
仅供参考。
起因收到一条用户反馈问题描述:在软件A中使用输入法卡死跟进过程获取用户出现问题的系统和架构获取用户出现问题的输入法版本测试小S在本地环境复现问题跟进结论用户反馈可以复现,提交bug给开发bug描述:在软件A中使用输入法,触发B功能后,输入法卡死开发跟进开发小X接到bug后查找问题原因,尝试修改,在此过程中,小X联系了用户方,反馈给测试小S说复现的问题不对,跟用户的现象不一致,两方说的不是同一个问题修正后的用户描述:在软件A中使用输入法,进行了C操作,输入法卡死问题分析收到这个信息后,小W和小S一起跟小X进行了沟通确认,小X始终咬定两边不是同一个问题,要求重新复现用户的问题用户描述:在软件A中使用输入法,进行了C操作,输入法卡死小S描述:在软件A中使用输入法,触发B功能后,输入法卡死小W对问题重新进行了梳理,觉得从问题的现象上应该就是同一个问题,但是如何说服开发呢?(@[]@!!)小W将重点放在了触发C操作和触发B功能上,觉得这两个动作应该有什么未想到的神秘关系存在 小W对两个动作进行了比较,进行了如下思考分析:这两个动作的区别是什么呢?这两个动作对输入法的影响分别是什么呢?小W在本地环
这篇笔记整理下硅光芯片的耦合封装方案。硅光芯片的耦合器主要分端面耦合和光栅耦合两种,对应的封装方案可谓五花八门,这里选取一些典型的方案。Intel选取了片上异质集成激光器的方案,因而不存在耦合封装这一问题。1.端面耦合a)IBM方案关于IBM的耦合封装方案,之前的笔记IBM的硅光封装方案介绍过。IBM走的技术路线是端面耦合,并结合它们自己的foundry,开发了两种对应的耦合封装方案。其一,如下图所示,(图片来自文献1)在硅光芯片端面处进行刻蚀,形成V型槽阵列,用于放置光纤阵列。绿色小长方体是聚合物lid,将其压在FA上,使得FA落入V型槽中。每根光纤的位置可进一步精细调节,使光纤完全落入V型槽中,达到最优的耦合效率。另一种方案借助于聚合物波导,如下图所示,聚合物波导充当单模光纤与硅波导之间的桥梁,光从单模光纤耦合进聚合物波导,再由聚合物波导耦入硅波导中。(图片来自文献1)b)Interposer方案该方案与IBM的方案二类似,采用二氧化硅制成的PLC波导作为interposer,将光纤里较大模斑转换为较小的模斑,再耦合进硅光芯片中,如下图所示。下图中的中间物体即为PLCinterpo
笔记分享|NoteShareNomatterwhereIam,IwillreplyyouimmediatelywhenIseetheemail.MyEmail:echo"YUBzYW1lZ28uY29tCg=="|base64-d目的应用程序部署的信息和程序进行模块分离特点生成为容器内的环境变量设置容器启动的命令参数volume 形式挂载成容器内的文件或目录示例使用文件创建 configmap#创建configmap ➜kubectlcreateconfigmapone.json--from-file=/Users/alicfeng/demo/configmap/one.json configmap/one.jsoncreated ➜kubectlcreateconfigmapone.json--from-file=/Users/alicfeng/demo/configmap/one.ini configmap/one.jsoncreated #查看configmap ➜kubectlgetconfigmap NAMEDATAAGE one.ini143m on
Earlier函数这是一个让很多初学者困惑的函数,尤其是看到下面这样的句型。许多人是在学习了DAX很久之后才领悟了Earlier的使用方法,其实我认为有时候我们把它想复杂了。Earlier=当前行我们第一阶段学习的Filter是一个行上下文函数,Earlier也是一个行上下文函数。主观地讲,Earlier这个函数的命名很容易让人困惑,英文直译为“更早”,它的本义是指前面用到的行上下文,基于这个语义的命名没毛病,然而这个概念很抽象,在使用中是很难体会到更早的含义。 所以学习这个公式最好方法是我们先忽略它的命名,把它看做CurrentRow,即Earlier=当前行,至少99%的应用情况可以这样去理解,相信我,这是入门理解Earlier公式的最快办法。我们现在就来看看是不是这样。前些日子有一位读者问了我一个关于顺序计数的问题,正好就用它来做个举例说明。下面的表每行都是一位顾客的订单,索引是以时间顺序排序,我们想要添加一列,求每笔订单是该顾客的第几次购买。不难想到的一个方法是先筛选一张表(使用Filter),筛选条件是与当前行顾客同名字,索引号<=当前行的索引号,再求这张表的行数。有了
尽管围绕DebianLive项目发生了很多戏剧性事件,关于DebianLive项目结束的公告的影响力甚至小于该项目首次出现时的公告。主要开发者的离开是最显而易见的损失,而社区对他本人及其项目的态度是很令人困惑的,但是这个项目也许还是会以其它的形式继续下去。所以Debian仍然会有更多的工具去创造启动光盘和其他介质。尽管是用这样一种有遗憾的方式,项目创始人DabielBaumann和DebianCD团队以及安装检测团队之间出现的长期争论已经被「解决」了。在11月9日,Baumann发表了题为「DebianLive项目的突然结束」的一篇公告。在那篇短文中,他一一列举出了自从这个和他有关的项目被发起以来近10年间发生的不同的事件,这些事件可以表明他在DebianLive项目上的努力一直没有被重视或没有被足够重视。最具决定性的因素是因为在「包的含义」上存在冲突,R.Learmonth申请了新的包名,而这侵犯了在DebianLive上使用的命名空间。考虑到最主要的DebianLive包之一被命名为live-build,而R.Learmonth申请的新包名却是live-build-ng,这简直是对
文|曾响铃 来源|科技向令说(xiangling0815)百度APP里那个悄悄上线、备受关注的“优信二手车”小格子背后的布局,已经尘埃落地。5月22日,2018百度联盟峰会上,百度APP业务部总经理、百度小程序负责人平晓黎对小程序进行了“预热”,将其正式抛出,同时回应所有对小程序的猜测。 至此,BAT都有了自己的小程序,从搜索、电商、社交三种互联网粘性最强的功能上,都衍生出“即点即用”模式的应用。不同的是,或者说不出所料的是,转型完成、技术立身的百度这次给小程序也带上了智能的“帽子”,即将上线的是所谓“智能小程序”。在小程序这件事上,百度在流量、技术及生态方面肯定会有自己的优势,但是,A\T都玩了很久的内容,要做出点不一样来,百度也面临必然少不了的挑战。1“超级APP”中,小程序已经成为标配做“入口”替代操作系统,曾经是移动浏览器们的伟大梦想,后来梦想变成了闷响,原因在于这些浏览器们并没有变成“超级APP”。1、“超级APP”推出小程序是互联网生态演进的必然目前为止推出的小程序还算上道的APP,都是王牌级的产品,微信、支付宝莫不如是。百度敢于做小程序,与百度APP成为信息流日活过亿、集
文章目录均值(mean)方差(variance)标准差(standarddeviation) numpy自带一些函数接口,可以用来很方便的计算一组数据的均值(mean),方差(variance)和标准差(standarddeviation)。均值(mean)>>>a=np.array([1,2,3,4,5,6,7,8,9]) >>>np.mean(a) 5.0复制除了np.mean函数,还有np.average函数也可以用来计算mean,不一样的地方时,np.average函数可以带一个weights参数:>>>np.average(a) 5.0 >>>np.average(a,weights=(1,1,1,1,1,1,1,1,1)) 5.0 >>>np.average(a,weights=(1,1,1,1,1,1,1,6,1)) 6.071428571428571复制mean函数有axis参数可以使用:>>>a array([[0,1,2,3,4], [5,6,7,8,9],
1.接口描述接口请求域名:cds.tencentcloudapi.com。 本接口(DescribeDbauditUsedRegions)用于查询可售卖地域列表。 默认接口请求频率限制:20次/秒。 APIExplorer提供了在线调用、签名验证、SDK代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成SDK调用示例。 2.输入参数以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见公共请求参数。 参数名称 必选 类型 描述 Action 是 String 公共参数,本接口取值:DescribeDbauditUsedRegions。 Version 是 String 公共参数,本接口取值:2018-04-20。 Region 否 String 公共参数,本接口不需要传递此参数。 3.输出参数 参数名称 类型 描述 RegionSet ArrayofRegionInfo 可售卖地域信息列表 RequestId String 唯一请求ID,每次请求都会返回。定位问题时需要提供该次请求的R
vm.overcommit_memory表示内核在分配内存时候做检查的方式。 这个变量可以取到0,1,2三个值。对取不同的值时的处理方式都定义在内核源码mm/mmap.c的__vm_enough_memory函数中。 取1的时候:此时宏为OVERCOMMIT_ALWAYS,函数直接return0,分配成功。 取2的时候:此时宏为OVERCOMMIT_NEVER,内核计算:内存总量×vm.overcommit_ratio/100+SWAP的总量,如果申请空间超过此数值,则分配失败。vm.overcommit_ratio的默认值为50。 取0的时候:此时宏为OVERCOMMIT_GUESS,内核计算:NR_FILE_PAGES总量+SWAP总量+slab中可以释放的内存总量,如果申请空间超过此数值,则将此数值与空闲内存总量减掉totalreserve_pages(?)的总量相加。如果申请空间依然超过此数值,则分配失败。 以上为粗略描述,在实际计算时,如果非root进程,则在计算时候会保留3%的空间,而root进程则没有该限制 vm.overcommit_memory 默认
很多时候从设备采集的数据并不能直接使用,还需要进行处理一下。如果采用脚本处理,有点太复杂了,而采用表达式运算,则很方便地解决了此类问题。 一. 设备连接 运行环境搭建:Win7系统请下载相关的设备驱动,下载地址为:请安装VS2010/VS2015及拓展包 准备材料:YF3300设备套装,组态key(购买产品时厂家会附赠一个月体验版)官方下载YFIOsManager组态管理软件。下载链接: http://www.yfiot.com/content/downsort?current=1&title=1 设备连接:a.将组态key插入电脑,将附赠GPRS天线连接好,插入附赠的物联网卡(也可使用自己购买的物联网卡) b.将YF3300通过Type
转:https://blog.csdn.net/l18710006370/article/details/78180467复制 万万没想到有一天我会在下载上出问题(*/ω\*) (好的运维应该不会让碰到这个坑,如果必须自己维护,更新一下下载源吧) 以下是apt的各种源,但是目前清华源是最好用的 更换方式: 编辑源列表文件 sudovim/etc/apt/sources.list 删除里面的源列表,替换为以下 清华大学源 debhttp://mirrors.tuna.tsinghua.edu.cn/ubuntu/xenialmainmultiverserestricteduniverse debhttp://mirrors.tuna.tsinghua.edu.cn/ubuntu/xenial-backportsmainmultiverserestricteduniverse debhttp://mirrors.tuna.tsinghua.edu.cn/ubuntu/xenial-proposedmainmultiverserestricteduni
题目描述:牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student.aamI”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“Iamastudent.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么? ac代码; 1publicclassSolution{ 2publicStringReverseSentence(Stringstr){ 3String[]ss=str.split(""); 4if(ss.length==0) 5returnstr; 6Stringt=""; 7for(inti=ss.length-1;i>=0;i--){ 8if(i!=ss.length-1) 9t+=""+ss[i]; 10else 11t+=ss[i]; 12 13} 14returnt; 15} 16}复制
Welcome!!!tomypresentation!,Aboutfriendship,andgrowth. Wheniwaslittle(靠过来正式),iusedtomakemanyfriends.nomatterwhotheyare!,wecaneasilybuildintimaterelationship,bysharingalmosteverything. Atthattime,friendsmeanawholeworldtome, Sowheniwentintothecollege!,iwantedtobuildandmaintainthesamekindofrelationship (平淡)Butsoonifoundmyselfwrong.incollege,friendshipseemstobemorecomplicateandsometimesutilitarian. Evenmyhighschoolbestfriends,arelosingcontactwithme(担心)becauseofourdecreasingintersection. Itseemsthat?
选择排序: 两个for循环嵌套,外循环记录每次循环开始的位置,内循环查找本次循环内的最小值; 实质是每循环一次将查到的最小值放在每次循环的最初开始的位置; 代码: //选择排序 functionarrSort3(arr){ varlen=arr.length, minIndex,nu; for(vari=0;i<len-1;i++){ minIndex=i;//记录每次循环的第一个数为该次循环的最小值索引 for(varj=i+1;j<len;j++){ if(arr[j]<arr[minIndex]){ minIndex=j;//找到每次循环到的最小值, } } nu=arr[i]; arr[i]=arr[minIndex];//将找到的最小值放在每次循环的最开始的地方; arr[minIndex]=nu; } console.log(arr); } 复制
diff--gita/core/res/res/xml/storage_list.xmlb/core/res/res/xml/storage_list.xmlindexc0cebdd..c61fc12100644---a/core/res/res/xml/storage_list.xml+++b/core/res/res/xml/storage_list.xml@@-26,11+26,11@@ android:storageDescription="@string/storage_usb" android:primary="true"/> <storage+ android:mountPoint="/storage/otg_storage"
图像卷积与滤波的一些知识点 1174548879@qq.com 一、线性滤波与卷积的基本概念 线性滤波可以说是图像处理最基本的方法,它可以允许我们对图像进行处理,产生很多不同的效果。做法很简单。首先,我们有一个二维的滤波器矩阵(有个高大上的名字叫卷积核)和一个要处理的二维图像。然后,对于图像的每一个像素点,计算它的邻域像素和滤波器矩阵的对应元素的乘积,然后加起来,作为该像素位置的值。这样就完成了滤波过程。 对图像和滤波矩阵进行逐个元素相乘再求和的操作就相当于将一个二维的函数移动到另一个二维函数的所有位置,这个操作就叫卷积或者协相关。卷积和协相关的差别是,卷积需要先对滤波矩阵进行180的翻转,但如果矩阵是对称的,那么两者就没有什么差别了。 Correlation和Convolution可以说是图像处理最基本的操作,但却非常有用。这两个操作有两个非常关
UART协议详解 UART简介 通用异步收发传输器(UniversalAsynchronousReceiver/Transmitter),通常称作UART。UART通信在工作中相当常见,项目中需要生成uart信号,在博客中记录下。uart是异步通信,因为它只有一根线就可以数据的通信。不像SPI,I2C等同步传输信号。所以串口的传输速度和其它协议的速度相比是比较慢的。下面具体讲解一些uart协议以及是如何通信的。 图-1 图-2 上图是uart协议传输一个”A”字符通过示波器的uart解码而得到的波形示意图。根据此图来介绍一下uart的一些基本参数。 波特率:此参数容易和比特率混淆,其实他们是由区别的。具体可以百度更清楚。但是我认为uart中的波特率就可以认为是比特率,即每秒传输的位数(bit)。一般选波特率都会有9600,19200,115200等选项。其实意思就是每秒传输这么多个比特位数(bit)。 起始位:先发出一个逻辑”0”的信号,表示传输数据的开始。 数据位:可以选择的值有5,6,7,8这四个值