自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 资源 (5)
  • 收藏
  • 关注

原创 图解测试之稳定性-设计测试场景

了解场景法何为场景法?简单的来说的话,场景法就是电影里的一幅幅画面。如何使用场景法进行测试设计呢?我们要转换自己的视角,站在用户的角度,从用户的使用习惯出发,结合系统的功能点,设计测试用例。稳定性测试场景关键点场景设计的关键词就是用户,产品或系统推向市场都是为了能够让用户满意,所以在设计稳定性场景时,要从用户使用角度思

2015-10-14 15:21:30 1007

原创 图解测试之稳定性-合适的产品和功能

合适的产品我的观点当我们考虑到稳定性测试时,一般的产品都是需要进行的,如果我们使用排除方法的话,一些使用频次低,影响范围小或为了短期需求而产生的工具或系统是没有必要投入人力进行专门的稳定性测试。合适的功能我的观点当我们人力或时间有限的情况下,要进行稳定性测试,则需要挑选合适的

2015-10-14 15:15:30 683

原创 图解测试之稳定性-如何开始稳定性测试

一、测试流程我的观点稳定性测试需要规范细致的流程,上图对流程作了总结,本文将首先分析如何进行前两项工作:需求分析和测试计划,其他项敬请期待本系列文章~二、需求分析我的观点在进行软件测试前,我们需要进行测试需求分析;通过测试需求分析,我们可以全面了解软件测试最终可达到的效果及可能遇到的问题等,提前预防风险的发生。

2015-09-08 20:59:41 1610

原创 开发不改bug?给你支个招

在测试过程中,不免会遇到开发人员因为一些原因不想修改个别bug的情况。那一般遇到这种问题时,我们该如何去推进开发修改bug呢?我们先来分析下到底会有哪些原因会导致开发不修改bug1、开发与测试对bug的定义理解不一致产生的问题,例如暴力操作、非常规操作出现的问题、问题路径深、服务器返回的数据不规范、竞品同样有的问题、个别机型问题等情况,开发可能会不愿意修改。2、

2015-08-28 16:43:54 1425

原创 图解测试之稳定性-了解稳定性测试

一、定义我的观点稳定性测试是在保证基本功能完整正确的前提下,软件或系统在一定时间或压力下,检验功能稳定运行的情况及性能劣化趋势,以减少系统或软件崩溃的发生。二、关注点我的观点稳定性测试直接的关注点,就是软件或系统功能特别是用户常用功能的稳定性;其次关注的是性能指标的变化情况;在测试过程中,我们需要特别考虑多线程进程及不同测试环境的问题。三、后续内容

2015-08-28 16:40:16 1528

原创 使用 gtest 给 DLL 工程编写单元测试

一、背景说明任何时候给你的代码增加单元测试(或接口测试)都不晚,对于 C/C++ 使用比较广泛的单元测试框架应该非 googletest莫属了。通常在工程代码中,使用 gtest 比较广泛的方式是以 lib 的形式来做单元测试,这种方式使用也比较简单直接,本文就不再赘述。但是,对于大部分工程代码而言,并不是只有 EXE 文件,通常这些 EXE 文件都会依赖至少一个 DL

2015-08-17 20:33:43 2692 1

原创 [效率提升]工作中的那些命令行

工作中,如果我们能够将批处理使用的炉火纯青的话,对于效率的提升作用是非常明显的。今天,我们从日常工作的角度来给大家分享一些实例。一、运行测试脚本在完成一些Case编写后,为了比较方便的回归执行,我们一般会编写一个批处理脚本来完成脚本的启动执行。如果仅仅在我们自己的机器上执行的话,我们直接将路径写死就可以了,比如说…\runtest.exe -vl2 -xo

2015-08-17 20:30:58 920

转载 软件测试之独步武林系列(一)

开篇风吹过,卷起了漫天红叶。 剑气袭人,天地间充满了凄凉肃杀之意。。。 败了,终究还是败了,留给小明的只剩下身后的那万丈深渊。………………..最后的一点枫叶碎片已落下,枫林中又恢复了静寂,死一般的静寂。序幕一个月后,京城,位于水木之巅的狗厂门前熙熙攘攘,慎是热闹。一位少年正在和一位老者争论着些什么,仔细一瞧,不是小明又是谁?原来上次华山之巅的那一战,

2015-08-17 20:23:14 693

原创 Objective-C中Copy和MutableCopy,你了解多少?

在iOS开发中,对于copy和mutableCopy都不陌生。如果您不知道它们之间区别的话,看完本文我相信您肯定会分的很清楚。接下来,就通过几个小例子来了解一下吧。NO.1NSArray * array = [[NSArray alloc] initWithObjects:@"sogouqa", nil];NSArray * retainArray = array;

2015-07-09 15:23:11 872

原创 [Python自动化]使用C来扩展Python

一、需求背景Python 几乎能解决你所遇到的所有问题,但 Python 常被人提及的问题就是速度问题,这时如果想提升 Python 的速度,基本都会使用 C/C++ 来扩展 Python 接口,这种方法仅仅是提升 Python 速度的诸多方法中的一种而已。同时,对于一些使用 Python 来解决的问题比较棘手时,也可以考虑使用 C/C++ 来扩展 Python 接口,这样在调

2015-07-02 14:44:25 1405

原创 Jenkins源码分析

StaplerStapler 是一个将应用程序对象和 URL 装订在一起的 lib 库,使编写 web 应用程序更加方便。Stapler 的核心思想是自动为应用程序对象绑定 URL,并创建直观的 URL 层次结构。下图显示了 Stapler 的工作原理:上图左边显示了应用程序的代码信息,右边显示了 URL 的层次结构。通过反射机制,Stapler 可

2015-06-15 19:59:30 7535 1

原创 jenkins中使用到的Jelly标签库

jelly:corehttp://commons.apache.org/proper/commons-jelly/tags.htmljelly:staplerhttp://stapler.kohsuke.org/jelly-taglib-ref.htmljelly:definehttp://commons.apache.org/proper/commons-jelly/libs

2015-06-15 19:58:45 2776

原创 使用Adt自带的工具进行Android自动化测试(三)

在这个系列的上一篇文章中,我们介绍了MonkeyRunner,并提到如果根据坐标来编写自动化脚本的话存在着一定的局限性(点击文末“阅读原文”可以打开这篇文章查看)。这篇文章将进一步介绍根据控件的id来编写自动化脚本的方法根据控件的id来操作控件从Android 2.3.3开始,MonkeyRunner增加了EasyMonkeyDevice和By这两个类,它们都位于com

2015-06-03 10:11:07 1020

原创 使用Adt自带的工具进行Android自动化测试(二)

在这个系列的上一篇文章中,我们介绍了Monkey的用法,这篇文章将继续介绍Adt自带的另外一个自动化工具MonkeyRunnerMonkeyRunner和Monkey的关系在这个系列的上一篇文章中,我们介绍了Monkey最常规的一种用法,即进行完全随机的测试(点击文末“阅读原文”可以打开这篇文章查看)。在这种情况下,Monkey会自己产生一些随机的操作指令给自己执行

2015-06-03 10:09:21 1170

原创 memset函数导致内存泄露的问题

我们一般常说的内存泄漏是指堆内存的泄漏。程序从堆中分配的内存使用完毕后必须显式释放,否则这块内存就不能被再次使用,即这块内存泄漏了。内存泄漏导致软件在运行过程中占用越来越多的内存,程序的效率会越来越低,从而影响用户的体验,失去市场竞争力。 为了预防内存泄漏我们要求程序使用malloc、new等函数从堆中分配的内存必须在使用完后调用free、delete函数释放该内存。但是如果指向该内存指

2015-06-03 10:02:53 6611

原创 测试人员都应该是好的产品人员

“作为一款用户规模达到数亿的大众必备软件,任何一个微小的BUG都可能影响至少数百万的用户,因此不能放过每一个BUG”这句话是否是正确的?错误的!这是为什么呢?因为你没有对BUG的等级进行划分,有些BUG是用户感受不强烈的,比如在线翻译、字符表情、皮肤盒子等,存在一点BUG对我使用输入法打字没啥影响,我不太可能因为这个而卸载输入法,并且用户不至于写篇微博泄愤,那么这个BUG的严重等级就低,暂时可以放

2015-05-14 11:15:35 511

原创 使用Adt自带的工具进行Android自动化测试(一)

在开始自动化测试的时候,我们可能需要一些工具支持。对于Android平台,官方在开发者工具Adt中已经集成了几种可以用于自动化测试的工具。如果使用这些工具,你可以不用为了开始自己的自动化测试而去额外下载安装其它的工具(当然为了Adt的正常使用,Java环境还是必须的)。这个系列的文章将会分别对这些工具做出一些简单的介绍。Adt中集成的可以用于自动化测试的工具包括:MonkeyMon

2015-05-14 11:11:08 1000

原创 “虐心”的获取C++函数列表

今天在这里和大家分享一下如何获取c++文件中的函数列表,问题和灵感来自于同事小W自开发的C++代码覆盖率工具,原理是通过给现有的代码进行打桩,在运行到该函数的时候对该函数进行标记,最终统计得到代码的函数覆盖度。如图:程序的源代码经过打桩后的代码原理大致如下,这里就不给大家详细介绍了。那么问题的重点来了,如何解析并且获取cpp文件中的函数呢?

2015-05-07 20:31:14 2042 1

原创 【iOS测试】如何高效的分析崩溃日志

对于iOS崩溃日志,开发同学可以使用Mac连接iPhone设备后,在XCode的Device里面查看崩溃日志。如果本机正好有对应的符号表文件的话,会自动解析崩溃日志。而当XCode不自动解析崩溃日志时,也可以用过symbolicateCrash、atos等命令行工具解析崩溃日志。但是当缺少Mac机器的情况下,比如测试人员发现了崩溃并获取到了崩溃日志,他们该如何解析呢?之前的做法

2015-05-06 11:56:50 1207

原创 单元测试之如何测试模板类

一、背景在搜狗内部对于C++项目进行单元测试,基本都是使用gtest进行的。无论是单元测试,还是接口测试我们都做了大量工作。具体来说,就是对函数进行单元测试或接口测试,对模块进行集成测试。但是,对于模板类并没有进行测试,而是对其上层调用进行测试。现在的问题是,对于模板类需不需要进行单元测试或接口测试?被写成模板类,说明这个类是比较通用且很多地方都在使用它,所

2015-04-30 17:32:02 1963

原创 windows虚机环境下,如何快速有效的删除大文件夹?

在调试稳定性测试过程中,由于有的机器C盘越来越小,就必须进行电脑清理,清理%tmp%目录和回收站是必须的。    现在我的虚机的%tmp%目录下有15万个文件,该如何快速有效删除呢?这些文件中有的是拒绝删除的。    方法1:直接删除Temp文件夹,它会一直扫描,最后会告诉你,不能删除,说什么有其他地方在用,而我压根就没有;    方法2:进入Temp文件夹,Ctrl+A选中所有文

2015-04-28 10:04:46 1058

原创 [搜狗测试]自动化测试后台揭秘

大家还记得前段时间推送的一篇浏览器自动化测试相关视频的文章么?想重温一下?发送“搜:浏览器自动化”到“搜狗测试”公众号吧。先看下一张截图~视频截图通过平台,使用者只需要新建任务,配置参数,选择用例,选择机器,点击确定,即可开始执行一个任务;我们今天来给大家揭秘一下在点击了确认后,后台做了哪些事情。数据流程图我们对主要的事件

2015-04-23 18:35:19 500

原创 [nodejs]svn命令行中避免进入用户交互出现卡住的情况

问题在服务器后台nodejs上使用svn导入变更记录出现“Error: spawn ENOMEM”错误提示,查了下发现是“底层抛了错误,并且设置了errno为ENOMEM,内存不够用”现象登录到后台系统,发现有很多svn进程驻留在了后台,于是想着应该是异常情况后svn进程出现了驻留不退出的情况过程调试发现了两种情况会出现驻留的情况,一种是用户名使用了邮箱全写,比

2015-04-17 09:56:42 2250

原创 使用Ant打包部署STAF插件

打包部署STAF插件,简单来说,分为清理、初始化、编译、打包、部署、测试几个部分 1.清理   此处为删除文件及删除文件夹操作,使用ant中的delete标签来实现   2.初始化 由于STAF插件的打包需要的目录层次为 STAF-INF STAF-INF/classes  ...用户包及类的相关层次 META-INF META-INF/MANIFEST

2015-04-16 11:33:36 625

原创 自动化软件测试的指导原则[译]

在最近与软件测试人员的谈话中,我不断听到同样的事情:测试自动化在大多数项目中是需要的。合理使用以下指导原则,可以有助于自动化测试工作的开展。指导原则1:避免过早开发测试脚本我们鼓励软件测试人员,在应用程序开发初期就开展自动化测试。但是,在程序功能还不齐全的情况下,编写自动化测试脚本,效果会大打折扣。如果在程序还在不停改动的情况下编写测试脚本的话,你不得不随时重写你的脚本。但

2015-04-16 11:28:39 838

原创 iOS自动化测试之常用UI Automation API

在iOS自动化测试中UI Automation的对象,都是以UIAxxx的形式出现的,例如UIAButton等。UIA是UI Automation的缩写,如果忽略掉前缀,直接看对象的名称,在表达方面应该会明确。接下来对UI Automation所提供的API进行初步了解吧。UIALogger日志输出负责日志输出的对象是UIALogger,主要有两部分的职责:记录测试结果

2015-04-08 15:33:09 1125

原创 开发STAF扩展插件

开发STAF插件,主要是实现STAFServiceInterfaceLevel30接口,实现init、term、acceptRequest三个方法即可,根据名称可以得知:一个为初始化方法,一个为销毁方法,一个为处理请求方法。 举个例子,我们可以在init中初始化一个handle,然后再term中销毁这个handle  init:  try { fServiceName = inf

2015-04-02 10:54:26 600

原创 LoadRunner缓存设置引发的问题

问题现象:在使用LoadRunner对起始页做压力测试时,遇到一个大家都容易碰到的问题,即没有设置脚本运行时清除浏览器的缓存,导致虚拟用户上去了但是Http请求却没有发出去。具体现象是这样:1. 用lr录好请求页面的脚本,启动controller连接agent对服务器打压力。2. 每1分钟增加100个虚拟用户,当达到2000个时持续5分钟。3. 执行过程中,虽然虚拟用户按照计划

2015-04-02 10:45:08 4456 1

原创 Python写自动化之使用sphinx提取Python代码docstring

在使用Python时,一个特性是Python中的文档字符串,文档字符串又称为DocStrings。使用文档字符串可以为我们的模块、类、函数添加说明性文档,使程序更容易被看懂。这好像和其他语言中的注释没什么区别,然而,Python中的文档字符串特殊在于Python提供了相应的方法,可以将这些说明性的文档输出。假设有如下的函数:def Test(): ''' | ##@fu

2015-03-31 11:50:23 2845

原创 Android自动化工具Appium的使用

Appium 是一个开源、跨平台的自动化测试工具,用于测试原生和轻量移动应用,它支持iOS、Android和FirefoxOS平台。在iOS平台上,Appium驱动iOS的UIAutomation库。在4.2及以上的Android平台上,Appium则借助Android的UIAutomator框架。对于4.2以下的Android系统,Appium仍然可以

2015-03-31 11:47:41 1332

原创 愚人节篇:搜狗两枚测试开发小屌的对话

首先声明,本故事纯属虚构,不,是半虚构,如有雷同纯属巧合~本故事由搜狗测试、搜狗QA、搜狗TEST冠名播出万万没想到,duang~~搜狗测试公众号出现了,duang~~它还成长的如此迅速,欢迎广大测友多多传播、尽情传播、传出新体验故事发生在搜狗测试团队的两个屌丝身上,愚人节快到了,来看看他们在唠什么。。。。。。提示:他们聊的很兴奋,时间有点长,需要一点耐心往

2015-03-27 11:18:58 603

原创 Python写自动化之设置Windows自动登录

在某些情况下,测试过程会涉及到操作系统的重启过程,比如说测试操作系统重启后,程序的启动时间评测;这时如果操作系统设置了用户名密码的情况下,就会涉及到如何实现Windows的自动登录。首先,看下Windows如何实现自动登录,看下如何手动操作吧,百度经验:http://jingyan.baidu.com/article/54b6b9c0d7bf6c2d583b47f2.html了解了手动操作

2015-03-25 15:16:34 4019 4

原创 Python写自动化之Ftp上传下载

之前,有篇文章介绍了http文件的下载,有些情况下,我们会使用FTP服务器存储文件,这时,在脚本中,我们就会涉及到FTP的上传下载操作了。首先看下FTP文件的上传操作,整个过程大致可以拆分成登陆、打开本地文件、文件传输、退出几步,看下代码try: f = FTP(server) try: f.login(user, pwd) localFile = op

2015-03-23 20:34:22 1132

原创 Python写自动化之注册表的读写操作

Windows上的自动化测试经常会接触到对于注册表的读写操作问题,比如,获取一个程序的安装目录,一般情况下,我们可以去注册表的App Paths下去查找,这时就涉及到了注册表的读取操作,我们使用Python的_winreg模块来实现,代码如下:def reg_query(path, key): try: path = path.replace("/", "\\")

2015-03-20 14:58:55 2418

原创 Windows命令实现匿名邮件发送

在日常工具开发中,经常会有发送邮件的需求。在一些高级语言中,如Python,C#中,都有专门的邮件发送模块,如Python 中的 smtplib 模块。那么,一封邮件到底是如何发送到一个特定的邮箱呢?举个例子:使用[email protected] 发送一封邮件到 [email protected]。首先,看下邮件系统的组成部分,如下图再看下邮件发送的整个过程,如下图:①发送

2015-03-19 09:34:07 2475

原创 Python写自动化之ini文件的读写

在我们写一些测试工具时,经常会需要使用到配置文件,此时一般选用ini文件是比较合适的标准并且可以通过参数命名知道参数的含义,那么使用Python如何进行ini文件的读写呢?首先看下,读取ini文件,我们直接使用Python自带的模块ConfigParser来进行配置文件的读写看下代码吧def ReadConfig(configPath): configDict = {}

2015-03-17 15:00:19 980

原创 Python写自动化之以不同优先级启动进程

在windows上的进程,可以设置优先级,如下图那么,如果我们在自动化测试过程中,需要设置进程的优先级,如何来做呢?下面使用win32相关的接口实现此功能,代码如下:# 获取用户句柄 hToken = win32security.OpenProcessToken(win32api.GetCurrentProcess(), win32con.TOKEN_DUPLI

2015-03-16 11:31:25 1589 1

原创 Python写自动化之邮件发送(匿名)

为了能够实现邮件发送功能,首先,我们需要了解一下邮件的发送过程是什么样子的,此处不再详细说明,请大家自行搜索或查看http://www.sogouqa.com/?p=438在了解了邮件的发送过程后,为了实现邮件的全自动匿名发送,我们需要通过windows的命令行,解析邮件的匿名服务器,然后使用匿名服务器,发送邮件到相应的邮箱代码如下:def _get_mail_exchanger(do

2015-03-13 10:09:12 6038

原创 搜狗自动化测试之介入时机

前段时间分享过一篇关于搜狗浏览器的自动化测试和单元测试的视频文章。今天与大家分享讨论的主题是:自动化测试在何时开始介入收益才能得到最大化呢?是在开发初始阶段就着手,还是等到手工用例执行结束之后(这个阶段意味着软件功能已经趋于稳定)?你在负责自动化测试时,会选择怎样的准入条件?又在何时开始着手呢?对于不同的项目组及实际场景,其自动化测试的介入时机会有所差别。从搜狗浏览器项目组的实

2015-03-12 10:09:57 765

原创 Python写自动化之SVN更新

在远程机器上执行脚本时,为了能够保证脚本的实时性,我们一般会将脚本存放到SVN上,远程机器通过SVN的操作去更新脚本;SVN更新脚本只需要2步就可以实现了,这个地方使用到pysvn库,看下实现# 初始化clientself.client = pysvn.Client()self.client.set_default_username(self.username)self.client

2015-03-09 09:59:40 13366

ant编译staf插件

ant编译staf插件

2015-04-16

搜狗测试期刊

关于搜狗测试的各种新奇热门的测试技术汇集,各种酸甜苦辣的测试感悟分享,《搜狗测试期刊》将一直陪着你!

2015-04-15

搜狗测试期刊第0期

搜狗测试期刊,软件测试资料,软件测试提升,自动化,白盒测试,黑盒测试 搜狗测试文章精选

2015-04-11

SATF插件开发简单示例

SATF插件开发示例,插件开发中的Hello World

2015-04-02

XP-UIA补丁

如果想在XP下使用UIA,则需要在XP下安装此补丁 WindowsXP-KB971513-x86-CHS

2015-01-23

空空如也

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

TA关注的人

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