精华内容
下载资源
问答
  • 好久不见啊各位亲,最近刚中期答辩完,得以有时间好好更新下博客啦。 自从上一个单目AR系统做完后,就仔细...贝叶斯滤波器(EKF扩展卡尔曼滤波,PF粒子滤波)和通用优化(G2O)是使得姿态更加精准稳定两种方法。近些

            好久不见啊各位亲,最近刚中期答辩完,得以有时间好好更新下博客啦。 自从上一个单目AR系统做完后,就仔细思考了一下我到底在做什么,接下来要做什么。之前博客上写的是3d重建,后来视野开阔了之后发现无论我做3d重建,SLAM,AR,重要的都是姿态更新。一个精准的稳定的姿态更新,决定着系统的好坏。贝叶斯滤波器(EKF扩展卡尔曼滤波,PF粒子滤波)和通用图优化(G2O)是使得姿态更加精准稳定的两种方法。近些年来G2O在视觉SLAM领域逐渐成为了主流的后端优化方法。 具体的视觉SLAM流程和G2O的相关知识,我将在模块《关于SLAM的那些事》里的接下来两篇文章中讲到(包括自己优化的一些代码)。本篇博客主要讲一下G2O在windows环境下的搭配。为什么要选windows,因为这些年一直用的是vs的编辑器(vc++6.0,vs2012,vs2013),对于这个熟悉的领域突然换到ubuntu下使用cmake还是有点不适应的(尽管这么说,我还是推荐做学术的童鞋多用用linux系统如ubuntu,各种库真的很方便而且能学到很多东西)。言归正传,接下来讲一下开发win32程序和x64程序的G2O的环境搭配(win32使用橘黄色字体x64使用粉色字体,大家可以根据需求跳着看)。

    首先放一张G2O官方github的windows编译的步骤图以及G2O源码的下载链接




    一共6个步骤:编译Eigen,安装Qt,编译libQGVLiewer,Cmake编译g2o,VS2013生成g2o,添加环境变量并开始使用。不需要g2o_viewer.exe来查看优化结果的不需要qt和libqgliewer(我觉得一般人都需要)。在ubuntu下还需要suitesparse但是windows不需要(其实EXTERNAL中有csparse)。

    1.编译Eigen3.2.7

    这个步骤在我的PCL编译中有详细讲解(32位)

    这里简单展示下64位的cmake和vs编译结果:






    2.安装Qt5.5.1

    这里我们安装的是5.5.1的32位和64位的版本。大家也可以下载Qt4和Qt5的其他版本,都是可行的。注意下载的时候选择离线安装包里的windows主机下面的。有一个点要强调一下,要开发win32程序,程序中用到的所有lib和dll都需要是32位的,要开发x64程序,程序中用到的所有lib和dll都需要是64位的。include就无所谓了都一样。为什么要开发64位的程序呢,因为32位的程序在64位的win7,win8,win10系统里最大只能使用4G内存(微软官方说明,使用IMAGE_FILE_LARGE_ADDRESS_AWARE设置),而64位的程序可以使用高达几百G的内存。当然有小伙伴要说怎么可能使用那么多的内存,肯定存在内存泄漏问题,但是我还是想说,在内存管理得当的基础上,内存越大,我们能做的事越多。下载完成后分别安装,并用容易区分的名字命名(当然也可以只下载安装大家需要的位数的版本):




    大家可以使用cmd输入qmake -v来查看qt是否安装成功。

    接下来安装vs2013的QT插件(其他下载 中的 Visual Studio Add-in 1.2.4 for Qt5 (156 MB)),可以在vs中打开qt的工程(如下一步中的libQGLViewer.pro):




    当然也可以用qt creator打开编译,但是我的C盘user中的用户名是中文,而creator编译过程中产生的临时变量在C:\Users\柴\AppData中老是识别不了中文,报错,而我不太熟悉qt creator所以经过尝试没有解决于是使用了vs的插件来打开编译qt工程。下载安装好之后打开vs2013,左上角可以看到QT5,开发选项:




    添加刚才安装的qt版本的name和path。name自己决定,path按照下图中的写:




    (注意图中下方的默认版本设置比较重要,下一步中编译不同版本的libqglviewer需要这里设置不同默认版本的qt。想开发win32的选择默认版本为QT_VS2013_32想开发x64的选择默认版本为QT_VS2013_64

    3.编译libQGLViewer_2.6.3

    安装好QT之后,我们下载libQGLViewer_2.6.3解压后我们用vs2013打开(左上角QT5 -> 打开工程)




    右键点击QGLViewer中的生成,或者按下图中的方式生成:




    等待,然后看到了成功编译的Debug版本:(注意我们之前设置默认使用的是64位的qt,所以这里得到的是64位的libqglviewer编译结果: QGLViewerd2.lib QGLViewerd2.dll)




    选择Release,再编译生成一遍:




    同样成功编译并得到了64位的release版的libqglviewer编译结果: QGLViewer2.lib QGLViewer2.dll。

    对于32位的,我们只需要更改qt插件的默认配置版本:




    确定后重新使用插件打开libQGLViewer.pro,编译生成debug和release即可。完成后可以用不同名字区分开来,方便后续步骤库的选取:




    4.Cmake编译g2o源代码

    有了Eigen,Qt,libQGLViewer,我们就可以开始编译g2o源代码了,这里也是分32位和64位两个版本。文章一开始已经放出了G2O的下载链接,解压一次命名为win32在解压一次命名为x64




    (先以32位为例)打开cmake,源码路径和编译路径为下图,提示建立build:




    32位的话编译器选择Visual Studio 12 2013:




    只需关注eigen,qt,libqglviewer,其他的如csparse等cmake已经帮我们找到了,不需要管。先找到Ungrouped Entries里和G2O里的EIGEN,添加路径(我的为C:/third_party/eigen/include/eigen3,大家的后缀应该一样X:/.../eigen/include/eigen3)。然后对于qt,如果没有改过安装后的qt原文件夹的名字的话,cmake是可以找到的。但是我们这里改成了Qt_32,所以还需要手动添加一下路径(如下图),QT_QMAKE_EXECUTABLE选择qmake.exe文件,Qt5_DIR选择文件夹cmake中的Qt5文件夹:




    对于libqglviewer,手动添加include和lib(其中lib为文件,QGLViewerd2.lib是debug版,QGLViewer2.lib是release版)




    include选择的是QGLViewer文件夹,而不是里面的文件:




    手动添加完后,点击configure,系统会找到剩下的qt相关信息:




    再次点击configure确认即可。没有红色后点击generate,即可在build中生成g2o.sln:




    接下来再走一边x64的流程。 cmake设置好64位的源代码路径和编译路径,提示创建build文件夹并选择Visual Studio 12 2013 Win64编译器(注意和32位不同)




    设置好eigen,qt,libqglviewer的路径:




    点击configure:




    确认qt的其他信息然后再点一次configure,无红色提示后点击generate:



    我们可以看到32位和64位的build文件夹中都出现了g2o.sln:





    5.VS2013生成G20

    用VS2013打开win32的g2o.sln,然后生成all_build:




    等待,然后得到全部成功的结果:




    Release下再生成一边:




    成功后可以在bin看到生成的lib,dll,exe文件:






    VS打开64位文件夹中的g2o.sln然后生成debug版的all_build:




    然后64位的release版的all_build:




    6.添加环境变量并开始使用

    添加环境变量,在path中添加dll的文件夹路径,32位和64位都加上,只开发win32的话不需要添加64位的:

    C:\Qt_32\Qt5.5.1\5.5\msvc2013\bin;C:\Qt_64\Qt5.5.1\5.5\msvc2013\bin;C:\g2omaster_x64\bin\Release;C:\g2o-master_x64\bin\Debug; C:\g2o-master_win32\bin\Release; C:\g2o-master_win32\bin\Debug;




    到此G2O的编译和环境配置就都完成啦。我在我的slam工程中已经成功使用g2o,其中有一些注意点,将在《关于SLAM的那些事》的第三篇文章中讲到(就是下下篇啦,下篇讲一下视觉SLAM的基本流程和代码)。这里说几个重要的:(1)把C:\g2o-master_win32\build\g2o\config.h拷贝到C:\g2o-master_win32\g2o\下,不然vs中提示找不到config.h (2)把C:\g2o-master_win32\EXTERNAL\csparse\cs.h 和 cs_api.h拷贝到C:\g2o-master_win32\g2o\solvers\csparse\里,然后打开本文件夹下的csparse_helper.h文件,把#include <cs.h>改成#include "cs.h" (3)右键vs工程,属性,C/C++,预处理器 中加上 _WINDOWS(64位的操作相同,注意文件夹)(4)不要把g2o放在含有中文字符的路径下,不然编译时会出现matrix_operations.h(51): fatal error C1001: 编译器中发生内部错误的错误,如下图:


    下面两张图是我跑TUM数据集中的Fr1_XYZ数据集(792帧)的g2o优化结果:第一张没有加保护措施,新的一帧和上一个关键帧之间如果一直没有匹配上(合适的汉明距离,合适的姿态变换),那么接下来很多帧都会丢失,直到重新回到上一个关键帧附近的场景;第二张加了保护措施,连续8帧以上没匹配上,就会把新的一帧加入到关键帧里,同时计算上一个关键帧到这个关键帧的连续姿态变换然后存到图优化的边中。


    57个关键帧节点,616条边:



    139个关键帧节点,1270条边:



            具体的信息接下来的博客中会慢慢讲道。我现在还在学习G2O,未来努力看能不能改进点什么。最后推荐一篇大牛半闲居士的博客,我在上面也学到了很多东西,感谢大家,欢迎交流,共同进步!

    展开全文
  • 微信图文中不可或缺的是配图了别具一格的配图可以立即让你的公众号与众不同我自称自己是个玩公众号的自媒体吧平时我写推文时花在找配图的时间也不少时间长了,经验那么一点长进分享出来希望可以帮助到一些微信公众号...

    最近接到粉丝给D君私信,很多是关于微信图片找图,微信排版如何新颖美观的问题,下面D君倾毕生所知的图片网以及一些经验分享出来。

    微信图文中不可或缺的是配图了

    别具一格的配图

    可以立即让你的公众号与众不同

    我自称自己是个玩公众号的自媒体吧

    平时我写推文时花在找配图的时间也不少

    时间长了,经验那么一点长进

    分享出来

    希望可以帮助到一些微信公众号新手

    或者朋友圈缺图的朋友

    现在我来推荐一些我自己觉得不错的找图网站吧

    创客贴

    ★★★★★

    一个非常好用的图片制作网站,网站根据各种新媒体的展示效果,制定出相应的图形模板,极大地方便了用户制作属于自己的图片。

    这个是我做公众号首页、封面最喜欢的网站,可以按照自己需要的图片配上文字或者图案。good......

    例如:微信首图文封面图的最佳尺寸为900PX*500PX,网站贴心的为大家制做了相应的模板,可选择自己需要的风格,也可根据文章的内容配以相应的图片和文字。

    网址:http://www.chuangkit.com/dc.html

    花瓣

    ★★★★★

    清新、唯美、文艺范的一个网站……,品类多,个人经常上面找图。

    文艺青年居家旅行朋友圈发图必备

    网址:http://huaban.com/

    Magdeleine

    ★★★★★

    这个图片网站的好处是,你可以选择图片的主色系进行搜索。

    都是一些很有意境的图片,加载有点慢,稍稍等一下,大大们一定会觉得“好吃”。

    网址:http://magdeleine.co

    Unsplash

    ★★★★★

    每10天更新10张照片,推荐它的理由就是:首先这是一个免费的摄影网站,很多风景照,照片分辨率高,有时候我还会拿去做电脑壁纸。由于它的分辨率足够大,要高清无码的上,就是更新速度你也看到,太慢太少了,死忠粉追上。

    网址:https://unsplash.com/

    POCO摄影作品

    ★★★★★

    POCO摄影作品网是排名前10名的摄影网站,有很多作品摄影爱好者的分享图片。不过使用时要注意啊,作者严禁转载的别用哈。原创不易,尊重原创。还有建议有一些加上水印的可以在用图时留作者的一席之位,加个“图片来源于”

    网址:http://photo.poco.cn/

    堆糖

    ★★★★★ 有网页版也有APP。没有尺寸限制。

    分专辑提供图片,大多是网友自己收纳的图片,还会配上有意思的配文,可以为你的文案提供建议。有专门的gif动图集,有趣好玩,令你找图停不下来。

    网址:http://www.duitang.com

    上面就是我经常使用的一些找图网站,节省时间,而且比较容易找到自己喜欢、适用的图片。

    至于很多人喜欢gif动图的,我实在是不经常用gif图,不过我会在阅读别人的推文是慢慢的收集一些,或者跟你的基友聊天偷他的表情包也是一种好方法。

    另外有一点是很重要的 建一个自己的图片库。养成看到好图就及时收藏的习惯。无聊的时候就点开看看这些图,这样在写某篇文案需要配图时你第一个想到的是“我有一张图特别适合”,而不是打开百度大海捞针。底下是我的图片库第一层,每个文件夹里还有很多子文件夹。不必问该怎样命名,设立几个子文件夹,适合自己就好。

    AND想要原创吗?

    你也可以自己外出看到一些美好的事物或者景物拍下来,可以写一篇原创图片的游记哦,公众号也是个玩摄影的好地方呢。好比如我这个人质量不太高的摄影图片,看起来还是挺舒服的。

    至于排版

    D君最近用的比较多的有三个,这是我用了那么多编辑器之后还念念不忘的:

    1、i排版:http://www.ipaiban.com/

    2、秀米:http://xiumi.us/studio/v5/paper#/for/new

    3、易企微:http://www.e7wei.cn/

    1、这三个各有特点,i排版是一个比较干净的编辑器,而且有很多新颖的排版样式,都是代码堆积出来的样式,不断更新,年轻运营者必备。

    如:自动轮播图片啊,上下左右滑动的图片集,弹幕图片,这是一个编辑器届中神奇的网站。

    2、秀米是我图文字体色彩首先想到的编辑网站,它的官方公众号会经常更新一些比较好看的“字体色号”,让我欲所不能。

    3、至于易企微是我之前一直玩公众号到现在支持的,有留住我的好样式,也有情怀。至于效果,还是你自己去试一试吧,好不好,你说了算。

    五分钟已过

    说到这里,再送你一句

    多尝试,多学习

    一定会找到属于适合你自己的风格

    阅读完之后,还有什么问题

    可以加我私人微信

    或者下方右下角留言给我

    阅读原文:http://mp.weixin.qq.com/s?__biz=MzI4ODExNDI2NA==&mid=2649999683&idx=1&sn=0318c5bf59ce1a31e3960b5420b5a967#rd

    展开全文
  • 1.界面使用MVC架构  1.1.>分为 控制器 / 模型 / 视图 三层 ... 2.1.1 > 自己发微博分为两块 - > 头像/姓名/皇冠/时间/来源 - >正文/配图  2.1.1.1.> 正文/配图 -> 分为

    1.界面使用MVC架构

        1.1.>分为 控制器 / 模型 / 视图 三层


    2.视图几个view板块

      2.1>整个微博分为两个板块-> 自己发的微博 - > 转发的微博;

           2.1.1 > 自己发的微博分为两块 - > 头像/姓名/皇冠/时间/来源 - >正文/配图

                         2.1.1.1.> 正文/配图 ->  分为 正文 / 配图 两个板块

                                                  需要判断是否有配图,有则显示,没有则不显示。

                         2.1.1.1.1>配图里面再添加一个图像板块,需要判断图片为几个,根据图片的数量计算自己的大小。这里提供一个计算图片大小等方  式,根据行 和 列来计算。


        2.1.2.>转发微博分为两块 -> 正文 -> 配图。(需要判断有没有配图,有则显示配图板块,可以重用)

    3.模型 层的划分

      3.1> 模型 -> 显示内容模型 -> 视图内部控件frame模型 (包含内容模型属性)    
             3.1.1> frame 模型 具有内容模型属性,重写内容set方法,设置控件位置

             3.1.2> 由于视图分为几个板块,所以在计算位置时需要分开计算

             3.1.3 > 计算图片位置时,需要首先得到图片数量,根据数量计算图片大小

    4.图片位置计算逻辑

      4.1 > 计算九宫格,确定有多少个图片

      4.2 > 确定一行放几张图片 

      4.3 > 确认有几行 ,几列

             4.3.1    给出图片宽高度  70        每张图片的间距 10   一行放3个   一共有count张图片

             4.3.2    列 =  NSUInteger  列 = (count >= 3) ? 3 : count;

             4.3.3    行 = NSUInteger  行   =  (count + 3 - 1)  /  3;

      4.4 >  整个图片view的计算

             4.4.1    整个图片view的宽度等于  (70 *列 )+ ((列 - 1)* 10)

             4.4.2    整个图片view的高度等于   (70 *行)+ ((行 - 1)* 10)

    5.关于行的计算

    1.固定格式:

    行 = NSUInteger  行   =  (count + 3 - 1)  /  3;

    2.精简前

              将列的个数设为3,图片个数count

                NSUInteger row = 0;
         //计算有几列  可以用排除
         if (count / 3 == 1) {      //如果 = 1 只有3.6.9
            row = count / 3;       //count 等于几 就有几行
        }else{                          // 如果不等于1  那么只有 1.2.4.5.7.8
            row = (count / 3) + 1 ;
        }

    3.精简前

    //行 精简
        NSUInteger row = count /3 ;
        if (count / 3 != 0) {
            row += 1;
        }


    /-------代码截图-------/






              

         

    展开全文
  • 看近期职业机会,提到“软件测试工程师”,基本上都有关于自动化测试要求。例如: 了解 selenium、appium或者其他自动化测试框架 至少熟悉一门面向对象开发语言,有一定代码功底优先 熟悉Java或者.

    在这里插入图片描述

    其实自动化测试已经不是一个新兴产物。为了更好的让大家阅读理解,我特意去百度百科搜索了一下,这个是百度自动化测试的官方定义。

    在这里插入图片描述

    接下来我们大约用一分钟的时间来了解自动化测试。尽量精简,有利于大家的阅读理解。

    在这里插入图片描述

    显而易见,掌握了自动化测试,薪资待遇是十分可观的。

    首先我们从招聘岗位需求说起。看近期的职业机会,提到“软件测试工程师”,基本上都有关于自动化测试的要求。例如:

    • 了解 selenium、appium或者其他自动化测试框架

    • 至少熟悉一门面向对象开发语言,有一定的代码功底优先

    • 熟悉Java或者python,有一定的测试自动化经验和代码阅读能力

    • 了解接口集成测试,会使用JMeter、Postman、SoapUI等接口测试工具

    等等,上述内容不再一一列举。突然自动化测试遍地开花,好像测试工程师的自动化测试能力成为了标配一般。

    本文就从自动化测试的要求入手,简单的进行自动化测试扫盲,争取让各位在一分钟之内了解自动化测试。

    那么我们就从“自动化测试”五个字来剖析。

    测试

    测试:这个我们熟悉。最经典的一个解释“程序测试是为了发现错误而执行的过程。”这个来自于G.J.Myers的经典著作《软件测试的艺术》的定义,给我们展示了测试的本质:过程。

    测试是为了发现软件的错误,而执行的过程,这个过程可以是以下内容:

    • 运行被测试的软件,执行软件的功能

    • 运行其他工具,去检查软件的内部和外部

    总而言之,是一个过程,执行的过程。接下来就一张最常见的测试示意图:

    在这里插入图片描述

    比如:测试主管让测试工程师去把软件的所有功能遍历一遍,该测试工程师通过鼠标、键盘、麦克风、手机屏幕触控等,把软件所有的功能,全部遍历了,这个叫做什么?

    熟悉测试的童鞋明白,这就是传说的“手工目测”呀,这是“人肉测试”。

    我们好好的画这张图,实际上是这样的。

    在这里插入图片描述

    自动化

    到这里,结合上面的说法,自动化测试就是让被测试的软件自己运行起来,执行软件的功能;或者就是让其他的工具自己运行起来,去检查软件的内部和外部。

    既然测试是一个过程,那么自动化测试,就是自动的执行的过程。

    接下来我们探讨的一个核心的问题:自动。什么叫做自动呢?让机器自己动,就是自动。让机器按照人类的要求,把软件的所有功能遍历一遍,这是自动化。。这样说会不会清晰一点?

    重点来了,机器。让机器去动,这可不是“吃鸡”哦,这是人类命令机器去操作。不知道童鞋们有没有思考过,机器怎么知道人类的要求?

    上面的例子,测试主管只要告诉测试工程师,命令传达就完成了。可是人类直接的沟通,远比人机沟通容易啊。

    • 首先,机器听不懂“人话”,无论中文,英文……

    • 其次,机器默认会的“汇编语言”,应该是绝大部分的童鞋不会,并且短期掌握不来吧。

    好吧,用“编程语言”。是时候拿出我们的另一张图了:

    在这里插入图片描述

    机器学习一个编程语言,轻松和简单到令人发指的地步:安装上去,机器就学会了。好在人类学习编程语言也不是特别难的的事情。看来这个可行。

    有了编程语言,就有了人机交流的桥梁,剩下的事情,是帮机器挑选工具。做对应的测试,就需要找到对应的工具,这样自动化就自动起来了。能到这里,我希望各位童鞋了解了基本的“自动”原理。

    同样,好好的画这张自动化测试的示意图:

    在这里插入图片描述

    然后我们介绍各种常见的工具,来继续讨论自动化测试。进一步探讨之前,我们先看看测试的常用分类。这里不同的分类维度下,我们可以分为不同的测试,这里我们认真分析一下。

    • 从软件测试的实践过程看:单元测试、集成测试、确认测试、系统测试、验收测试……

    • 从软件测试的方法策略看:白盒测试、黑盒测试、灰盒测试……

    • 从软件测试的测试视角看:功能测试、性能测试、兼容性测试、安全测试、探索性测试……

    • 从软件测试的技术程度看:手工测试、自动化测试、测试开发……

    以上这些维度下的分类,只有一部分测试可以通过“人肉测试”的“手工目测”完成,剩下的其实从广义概念上,都是需要机器来完成的。

    我们把这一部分测试抽取出来:系统测试-黑盒测试-功能测试-手工测试。不可否认的讲,这条线是目前软件测试从业者的重点覆盖范围,该范围之外的地方,便是自动化测试的用武之地。

    自动化测试

    接下来我们探讨一下主流的自动化测试方案,无一例外,都有人机沟通的编程语言,加上机器操作的工具来组成。

    • 功能自动化测试

    • VBScript + QTP(HP UFT),商用功能自动化测试方案

    • Python/PHP/Java/C#/JavaScprit/Ruby + Selenium/Appium + 单元测试框架,开源功能自动化测试方案

    • 这里我们多介绍一点,Selenium/Appium 本身不能算是测试工具,而只是机器用来操作浏览器的工具,并且这个工具能听懂多种语言:

    • Java,C# 这两个重 (zhòng) 语言

    • Python,Ruby 这两个脚本轻语言

    • PHP,JavaScript 这两个专门处理 Web 的语言

    • 工具外加指定的语言,可以让机器来操作浏览器,但是到此时还无法做到测试,于是才需要每个语言自己的单元测试框架,来一起完成这个功能自动化测试方案的构建。

    • 此外,业界还一种暂时临时的方案,就是 Python 2 + Robot Framework + Selenium Library 插件 + 单元测试框架 构成的一种测试方案,这个方案笔者不是非常推荐,主要基于两点:

    • 理念:这是一种基于关键字的方案,那么关键字是 QTP(HP UFT)的特长,并不是Selenium的本意

    • 技术:Python 2 终究是要退出历史舞台的,如果从零开始做自动化测试,还是直接入手 Python 3 吧,然而 Robot Framework 不支持 Python 3……

    • Python/Java/C#/JavaScprit/Ruby + Gauge,又一款开源的功能自动化测试方案

    • Thoughtworks 的基于BDD理念的自动化测试工具

    • Gauge 本身就是完整的测试方案

    • Gauge 是从需求分析师(BA)到测试工程师(QA)都覆盖的测试方案

    • Java/Python + Macaca,阿里巴巴的功能自动化测试方案,缺点是文档少

    • JavaScript + TestCafe,DevExpress 的开源

    功能自动化测试方案

    • pure node.js - TestCafe不使用Selenium,并且不需要插件来在实际浏览器中运行测试。 它建立在node.js的顶部,因此它与现代开发工具集成和工作良好

    • 无需额外的设置或配置- TestCafe是所有设置后立即运行测试npm install

    • 完整的测试工具 - 使用单个启动命令,TestCafe启动浏览器,运行测试,收集结果并生成报告

    • JavaScript + Postman,免费的Web接口功能自动化测试方案

    • Groovy + SoapUI,开源的Web接口功能自动化测试方案

    性能自动化测试

    • Java/C + HP LoadRunner,商业版性能测试方案

    • Java + JMeter,开源版性能测试方案

    • Python + locust,开源版性能测试方案

    这里,我们借用一张别人的图,Martin Fowler,敏捷开发方法的创始人之一,他借用金字塔的概念来展示测试的层次。

    在这里插入图片描述

    事实上,自动化测试覆盖了从 UI (功能测试)到契约(接口测试)以及底层代码方法(单元测试)的整个过程,要想很好的掌握自动化测试,那么的确需要以下三种领域的经验积累:

    • 编程语言,面向对象编程优先,因为大量的开源技术方案,都是基于面向对象的编程方式

    • 第三方测试工具和测试框架,这些主要通过官网的文档学习

    • 测试的理念与设计,工具和语言,只是测试的手段,如何准备测试数据,如何设置测试的检查点与测试步骤,这些决定了测试的成败

    此外综合的 前端与服务器后端技术,是测试执行的保障。加油吧童鞋们,一分钟过去了么?那么你现在了解到自动化测试了么?如果依旧有疑问,欢迎联系笔者进一步的沟通交流

    我深刻体会到闭门造车是不可取的,一个人需要琢磨一下午的问题,在有经验的前浪那里也许就是点拨一下就马上可以理解通电开窍之感。

    如果对python软件测试、接口测试、自动化测试、面试经验交流。感兴趣可以加软件测试交流:718897738,还会有同行一起技术交流。

    在这里插入图片描述

    逆水行舟不进则退,关注我加入一起成长。 在学习过程中,网络上的资源对我有很大的帮助,所以我将之前收集的资料整理分享给各位共同学习成长的朋友。转发+关注一起成长。

    emmm 就是我有一个直播学习群,有兴趣学习的话每天都有直播公开课。时间自由安排,免费的公开课~ 有兴趣需要录播的私信我~python自动测试技术总结,关注爱码小哥,一起成长。

    展开全文
  • Pandas最初被作为金融数据分析工具而开发出来,因此,pandas为时间序列分析提供了很好支持。Pandas名称来自于面板数据(panel data)和python数据分析(data analysis)。panel data是经济学中关于多维数据集一个...
  • 关于个人形象插画

    2019-07-15 10:09:20
    关于个人形象插画 作者:陈涛 写作时间:2019.7.3 很开心,我们又见面了!在这里我要说关于自己个人...今天通行于国外市场商业插画包括出版物配图、卡通吉祥物、影视海报、游戏人物设定及游戏内置美术场景...
  • 关于flink watermark一些理解 1 首先介绍flink中的时间概念: flink中有三种时间概念,分别是Event time、ingestion time、processing time 从下可以很方便看出来 eventTime 指是事件本身固有属性,是包含在...
  • 在此统一回复一下哈,笔记中的配图都是自己画的,画图工具是latex中自带的画图神器tikz,辅助工具是tikzedt和inkscape,这两个都是开源免费的软件,可以放心使用。tikz出图效果非常好,而且直接输出为矢量图。如果你...
  • 关于url-pattern问题

    2018-06-22 16:58:26
    我在做项目过程中路径写错,跳转不到目标页面,花了好长时间才发现原因,鉴于自己惨痛经历,就把这几种url路径总结了一下,上了我具体项目结构和详细源码。对于该问题,网上虽也有类...
  • 关于ospf虚链路

    2013-09-09 02:13:56
    前段时间东西,要么一下子内容太多,要么一个实验几十张配图,实在是不适合茶余饭后观看,得花点时间来鼓捣一下,所以我决定后面做一些简单实验好了。关于ospf其实是有很多内容可以研究,比如FA地址和LSA...
  • 1.界面使用MVC架构  1.1.>分为 控制器 / 模型 / 视图 三层 2.视图几个view板块 ... 2.1.1 > 自己发微博分为两块 - > 头像/姓名/皇冠/时间/来源 - >正文/配图  2.1.1.1.> 正文/配图 -> 分
  • 排序算法是《数据结构与算法》中最基本算法之一。 排序算法可以分为内部排序和外部排序。 内部排序是数据记录在内存中进行排序。 而外部排序是因排序数据很大,一次不能容纳全部排序...关于时间复杂度: ...
  • 一次关于工作决策

    2018-03-28 15:23:00
    配图 一位学长通过了阿里面试,交接原工作。打算让我去他公司顶替原本他工作,给我薪资在厦门对于同期毕业同学薪资大约是他们2倍~3倍。 学长第一遍问我要不要去他公司时候,我回答不方便过去。再和学长...
  • 参考论文中文字:图像配准是图像处理基本任务之一,用于将不同时间、不同传感器、不同视角及不同拍摄条件下获取的关于同一目标或场景两幅或多幅图像进行主要是几何意义上匹配套和过程。在对图像配准研究...
  • 参考论文中文字:图像配准是图像处理基本任务之一,用于将不同时间、不同传感器、不同视角及不同拍摄条件下获取的关于同一目标或场景两幅或多幅图像进行主要是几何意义上匹配套和过程。在对图像配准研究...
  • Eclipse在线安装插件奇慢的解决办法 Eclipse的强大很大的原因是因为N多插件的支持,所以插件安装成了必然。我们常常会使用在线安装插件,但是在线安装时,有时会发现速度奇慢无比,这...后面查了资料,说是Site的配...
  • 这篇文章在界面设计方面写一点, 配图也是网上, 没有经过加工, 需要点想象啊 由于我没有足够设计能力, 相关技术也不成熟, 因此 Demo 暂时不会有 双十一网页 双十一没有买东西, 网页没有细看, 只是扫了一眼淘宝...
  • 作为一个草根站长,日常生活除了看看百度官方搜索指南文档,逛逛各大站长博客... 声明一下,文章配图均为百度自然搜索结果截图,图中带有品牌仅为分析研究用,没有广告意图,如有侵权,请联系删除。 1.资讯...
  • 截止报告发布时间(2020 年 3 月 6 日),周五全球数字货币资产总市值为 2,615.04 亿美元,同比上涨 109.26 亿美元,上涨 4.36%。...反弹中继 市场等待进一步择向|标准共识配图(2) 数据来源:标准共识、Coi..
  • 关于公司采购网络存储设备 可行性分析 2009年3月 关于公司采购网络存储设备可行性分析 目 录 一.网络存储技术基本模式 1.1 DAS(直接连接存储) 1.2 SAN(存储区域网络) 1.3 NAS(网络附加...
  • 在网上找了一些关于Eclipse开发资料,但对Eclipse界面和它功能深深吸引了,尤其是了解了Eclipse能够进行C/C++开发更是欣喜若狂,起初对Eclipse配置不胜了解,有一段时间也很徘徊,想在网上找到图形化配置,...
  • 来自布衣公子的关于时间管理的培训PPT课件,漂亮的配图和排版,华丽的动态效果,最好的时间管理课件,没有之一。
  • 获取服务器时间添加到数据库中作为用户使用起始时间,不想在程序中单独实现这个功能显得繁琐。...因为我这里只用到了时间相关设置,所以这里就专门给大家讲讲关于时间应用。 使用: GetDate(); 实现对...
  • 对于大多数样品,从衍射图的一定反射率评估出维氏显微硬度和广角X射线线宽通常都随老化而增加。 较高显微硬度很可能与管道较高脆性有关。 X射线线宽随老化增加间接证明减小了微晶尺寸以及增加了微晶缺陷。
  • 关于大学PS课程就业方向 图文广告设计 游戏界面开发 网页界面开发是一般都有编程。 摄影图片后期修改制作。 大学PS课程相对就业是比较理想,这需要学生在课余时间好好练习,加深自己能力。
  • 现在,几乎所有中文期刊都对论文中地图配图做出以下严格规定: 接国家“关于开展问题地图专项治理通知”,请从自然资源部标准地图服务网获取中国地图、世界地图及专题地图。并在文中或图下注明下载地址及审图...
  • 关于纽约客

    2016-02-14 01:14:55
    慢慢欣赏杂志编辑精心挑选和排版的配图与精美的印刷体文字,真心是种享受。 传统纸媒日子不好过,买纸版杂志的越来越少了,人们更习惯于去上网获得想要的东西,况且现在人的注意力也没有那个时代集中了,手机上各种...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 301
精华内容 120
关键字:

关于时间的配图