Good Good study,Day Day up!

发布新日志

  • python学习之读写文件

    2013-08-27 21:25:41

    1. 打开文件
    语法:open(name[,mode[,buffering]])
    eg:f = open(r'c:\test\somefile.txt')
    1)文件模式mode
    r     读模式
    w     写模式
    a     追加模式
    +     读/写模式(可添加到其他模式中使用)
    b     二进制模式(可添加到其他模式中使用)
    2)buffering:控制着文件的缓冲
    若为0或False,I/O就是无缓冲的,即所有的读写操作都直接针对硬盘;
    若为1或True,I/O就是有缓冲的,意味着python使用内存来代替硬盘,让程序更快,只有使用flush或close时才会更新硬盘上的数据;
    若为大于1的数字代表缓冲区的大小,单位是字节;若为-1或任何负数,代表使用默认的缓冲区大小
    3)使用open方法打开文件后,记得调用close方法关闭文件:f.close()

    2. 读取数据
    f.read([size])          size为读取的长度,单位为byte;若未指定,则读取所有内容
    f.readline([size])      读取单独的一行;若指定了size,则返回一行的一部分
    f.readlines([size])     读取文件中的所有行,并将其作为列表返回

    3. 写数据
    f.write(str)            将str写入到文件中,不会加换行符
    f.writelines(seq)       将seq中的内容全部写入文件中,多行一次性写入,且写入时程序不会自动增加新行

    4. 对文件内容进行迭代
    1)read()方法迭代每个字符
       f = open(filename)
       for char in f.read():
           pass
       f.close()
    2)readlines()方法迭代行
       f = open(filename)
       for line in f.readlines():
           pass
       f.close()
    3)fileinput对行进行迭代
       import fileinput
       for line in fileinput.input(filename):
        pass


  • python学习之string模块

    2013-05-02 21:42:10

    string模块提供了一些用于处理字符串类型的函数
     
    >>> import string
    >>> dir(string)
    ['Template', '_TemplateMetaclass', '__builtins__', '__doc__', '__file__', '__name__', '_float', '_idmap', '_idmapL', '_int', '_long', '_multimap', '_re', 'ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 'atof', 'atof_error', 'atoi', 'atoi_error', 'atol', 'atol_error', 'capitalize', 'capwords', 'center', 'count', 'digits', 'expandtabs', 'find', 'hexdigits', 'index', 'index_error', 'join', 'joinfields', 'letters', 'ljust', 'lower', 'lowercase', 'lstrip', 'maketrans', 'octdigits', 'printable', 'punctuation', 'replace', 'rfind', 'rindex', 'rjust', 'rsplit', 'rstrip', 'split', 'splitfields', 'strip', 'swapcase', 'translate', 'upper', 'uppercase', 'whitespace', 'zfill']
     
    常用的一些方法
     
    string.upper() 全部转换为大写
    string.lower() 全部转换为小写
    string.swapcase() 实现大小写转换
     
    string.strip(s) 剔除字符串s左右空格
    string.lstrip(s) 剔除字符串s左侧空格
    string.rstrip(s) 剔除字符串s右侧空格
     
    string.center(s,width[,fillchar]) 用指定的宽度在返回一个居中版的s,如果需要的话,用fillchar填充,默认用空格填充;不会对s进行截取,即使s的长度逼width大
    string.ljust(s,width[,fillchar])
    string.rjust(s,width[,fillchar])
    string.zfill(s,width)与center类似,不过这里的填充使用0来代替
     
    string.count(s,sub[,start[,end]]) 返回在s[start:end]范围内子串sub在字符串s中出现的次数
    string.find(s,sub[,start[,end]]) 返回在s[start:end]范围内子串sub在字符串s中出现的最小下标;若没有找到sub,返回-1
    string.rfing() 反向查找
    string.index(s,sub[,start[,end]]) 与find方法类似,但当没有找到sub时,抛出ValueError异常
     
    string.split(s,sep=None,maxsplit=-1) 用sep拆分s,返回拆分后的列表;若sep未提供或为None,默认为空格
    join(list,[,sep]) 用sep把list组合成一个字符串返回
    string.capitalize() 字符串第一个字母大写
    string.capwords(s,[,sep]) 每个单词的首字母大写
     
    string.maketrans(from,to) 定义字符串的转换规则,再用translate来实现(from和to的长度必须一致)
    string.translate()
     
    s.isalpha() 是否全是字母,并至少有一个字符
    s.isdigit() 是否全是数字,并至少有一个字符
    s.isspace() 是否全是空白字符,并至少有一个字符
    s.islower() 是否全是小写字母
    s.isupper() 是否全是大写字母
    s.istitle() 是否是首字母大写的
     
  • 命令行输入ipconfig提示不是内部或外部命令

    2013-02-21 14:48:52

    命令行中用ipconfig可以查看电脑ip,mac等信息,如果提示“ipconfig不是内部或外部命令”,是由于系统环境变量设置不当造成的,可以通过修改系统环境变量解决

    原理:

    因为ipconfig.exe在系统system32目录下,当要求系统运行ipconfig.exe而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找,所以可以通过通过设置path解决

    设置方法:

    环境变量窗口中,找到path,点编辑,弹出编辑用户变量窗口,在变量值后面追加“;%SystemRoot%\system32”(不包括引号),确定即可。


    1. ipconfig/all显示所有网络适配器的完整TCP/IP信息

    2. ipconfig/release使计算机将自己目前租用的IP地址交还给DHCP服务器(只在动态配置IP地址的机器上起作用)

    3. ipconfig/renew向DHCP服务器申请新的IP地址,与上条命令一起使用(只在动态配置IP地址的机器上起作用)

    4. ipconfig/displaydns显示DNS客户解析器缓存的内容,包括从本地主机文件预装载的记录以及由域名解析服务器解析的所有资源记录

    5. ipconfig/flushdns清理并重设DNS客户解析器缓存的内容

    6. ipconfig/registerdns初始化网络适配器上配置的DNS和IP地址,可用于解决客户和DNS服务器之间的动态更新问题,而不必重新启动计算机

  • 使用eclipse调试程序时弹出错误“xxx无法解析为类型”

    2012-10-02 18:19:20

    使用eclipse调试程序时弹出错误:“xxx无法解析为类型”
     
    解决方法:
    将焦点定位到出错的代码上(划红线的地方),在弹出的浮层上选择“导入 xxx”,导入对应的库
     
    Eclipse中使用Shift+Ctrl+O可以自动根据内容生成所需要import的package
  • 解析Hosts文件

    2012-09-05 22:31:46

        Windows XP系统中C:\Windows\System32\drivers\etc目录下有个hosts文件,没有扩展名,可以直接用普通的文本编辑工具,如记事本打开。这个文件包含了IP地址和主机名(host name)之间的映射关系。
     
    作用:
        将一些常见的网址域名与其对应的IP地址建立一个关联的“数据库”
     
    Hosts在Windows中的工作方式:
       在浏览器地址栏中输入网址域名访问网站时,首先要通过DNS服务器将网址域名解析成IP地址后,计算机才能访问。要是对于每个域名请求,我们都要等待域名服务器解析后返回IP信息,这样访问网络的效率就会降低。
       根据Windows系统规定,在进行DNS请求以前,Windows系统会先检查自己的hosts文件中是否有这个地址映射关系,如果有则调用这个IP地址映射,如果没有再向DNS服务器提出域名解析。也就是说Hosts的请求级别比DNS高。
     
    应用:
    1. 屏蔽网站
       利用hosts把网站的域名映射到错误的IP,达到屏蔽目的
       如:在hosts文件中另起一行,输入   0.0.0.0 屏蔽的网站
     
    2. 方便登录局域网
       给局域网服务器取个容易记住的名字,然后在hosts中建立IP映射,这样以后访问的时候输入这个服务器的名字就行了
     
    3. 连接系统
       对于Lotus的服务器和一些数据库服务器,在访问时如果直接输入IP地址那是不能访问的,只能输入服务器名才能访问;那么我们配置好Hosts文件,这样输入服务器名就能顺利连接了。
     
    注意:
        hosts文件配置的映射是静态的,如果网络上的计算机更改了请及时更新IP地址,否则将不能访问。
  • robotium学习(一)

    2012-09-05 18:01:57

  • ADB概述

    2012-06-11 22:41:32

    adb的全称为Android Debug Bridge,就是起到调试桥的作用。

    adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行,通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序。

      
    adb是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备(如G1手机). 它的主要功能有:   
    * 运行设备的shell(命令行)   
    * 管理模拟器或设备的端口映射   
    * 计算机和设备之间上传/下载文件   
    * 将本地apk软件安装至模拟器或android设备   

    ADB是一个 客户端-服务器端 程序, 其中客户端是你用来操作的电脑, 服务器端是android设备.

    ADB常用的几个命令
    1. 查看设备
    * adb devices   
    这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示   

    2. 安装软件   
    * adb install <apk文件路径>   
    这个命令将指定的apk文件安装到设备上   

    3. 卸载软件   
    * adb uninstall <软件名>   
    * adb uninstall -k <软件名>   
    如果加 -k 参数,为卸载软件但是保留配置和缓存文件.   

    4. 登录设备shell   
    * adb shell   
    * adb shell <command命令>   
    这个命令将登录设备的shell.   
    后面加<command命令>将是直接运行设备命令, 相当于执行远程命令   

    5. 从电脑上发送文件到设备   
    * adb push <本地路径> <远程路径>   
    用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机)   

    6. 从设备上下载文件到电脑   
    * adb pull <远程路径> <本地路径>   
    用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑   

    7. 显示帮助信息   
    * adb help   
    这个命令将显示帮助信息

  • IPC-进程间通信

    2009-03-30 14:57:48

    IPC: Interprocess Communication 进程间通信

    IPC是运行在多任务操作系统或联网计算机上的程序和进程使用的一组技术。程序使用IPC的一个好处是能有效的利用其它程序或计算机的过程。

    IPC分为两种类型:
    1)本地过程调用(LPC):在多任务操作系统中使用,它们允许并发运行的任务能彼此对话。LPC能共享内存空间、同步任务并相互发送消息。
    2)远程过程调用(RPC):类似于LPC,但却工作在网络上。客户机、服务器模式就利用了RPC。客户在他自己的机器上执行部分任务,但还要依赖服务器提供的后端文件服务。RPC为客户提供通信机制,以使服务请求发送到后端服务器。

    RPC有时称作耦合(coupling)机制,首先出现在运行UNIX操作系统的SUN微系统公司和HP公司的计算机上。UNIX中正常的进程间通信机制是管道(pipe),而套接字(socket)是工作在多个网络上的进程间通信的机制。

  • 域名常识

    2009-02-23 13:11:29

    什么是域名?
    域名(Domain Name),是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。DNS(网域名称系统,Domain Name System,有时也简称为域名)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址数串。

    例如,www.wikipedia.org作为一个域名,便和IP地址130.94.122.199相对应。DNS就像是一个自动的电话号码簿,我们可以直接拨打wikipedia的名字来代替电话号码(IP地址)。DNS在我们直接呼叫网站的名字以后就会将像www.wikipedia.org一样便于人类使用的名字转化成像130.94.122.199一样便于机器识别的IP地址。

    为什么要注册域名?
    Internet域名如同商标,是您在因特网上的标志之一。Internet上的域名是非常有限的,因为每个域名都只有一个。如果您公司的名字是Intellectual Business Management Ltd.,您想把公司的域名注册成IBM.COM,国际商用机器公司(IBM)同您相比并不具有什么优先权,然而这个域名早已被它抢到手了!在美国,连街头上的小百货店和小加油站都在注册他们的域名,以便在网上宣传自己的产品和服务。作为有头脑、有远见的商人,越早行动,越有可能获得您所需要的域名。

    域名的结构
    顶级域名:
    域名由两个或两个以上的词构成, 中间由点号分隔开。最右边的那个词称为顶级域名。下面是几个常见的顶级域名及其用法:
     .COM--用于商业机构。它是最常见的顶级域名。任何人都可以注册.COM 形式的域名。
     .NET--最初是用于网络组织,例如因特网服务商和维修商。现在任何人都可以注册以.NET结尾的域名。
     .ORG--是为各种组织包括非盈利组织而定的。现在,任何人都可以注册以.ORG 结尾的域名。
    国家代码由两个字母组成的顶级域名如.cn, .uk, .de和.jp称为国家代码顶级域名(ccTLDs), 其中.cn是中国专用的顶级域名, 其注册归CNNIC管理, 以.cn结尾的二级域名我们简称为国内域名。注册国家代码顶级域名下的二级域名的规则和政策与不同的国家的政策有关。您在注册时应咨询域名注册机构, 问清相关的注册条件及与注册相关的条款。某些域名注册商除了提供以.com, .net和.org结尾的域名的注册服务之外, 还提供国家代码顶级域名的注册。ICANN并没有特别授权注册商提供国家代码顶级域名的注册服务。

    二级域名:
    顶级域名的下一级,就是我们所说的二级域名。domainpeople.com,域名注册人在以.com结尾的顶级域名中,提供一个二级域名。域名形式也可能是something.domainpeople.com。在这种情况下,something 称为主名或分域名。 

    Internet上域名命名的一般规则是什么?
     由于Internet上的各级域名是分别由不同机构管理的,所以,各个机构管理域名的方式和域名命名的规则也有所不同。但域名的命名也有一些共同的规则,主要有以下几点:
    一、域名中只能包含以下字符:
    1. 26个英文字母
    2. "0,1,2,3,4,5,6,7,8,9"十个数字
    3. "-"(英文中的连词号)

    二、域名中字符的组合规则:
    1. 在域名中,不区分英文字母的大小写
    2. 对于一个域名的长度是有一定限制的 CN下域名命名的规则为:
    一、遵照域名命名的全部共同规则
    二、只能注册三级域名,三级域名用字母(A-0Z,a-z,大小写等价)、数字(0-9)和连接符(-)组成,各级域名之间用实点(.)连接,三级域名长度不得超过20个字符;
    三、不得使用,或限制使用以下名称(下表列出了一些注册此类域名时需要提供的材料):
    1)注册含有"CHINA"、"CHINESE"、"CN"、"NATIONAL"等 经国家有关部门(指部级以上单位)正式批准
    2)公众知晓的其他国家或者地区名称、外国地名、国际组织名称不得使用
    3)县级以上(含县级)行政区划名称的全称或者缩写 相关县级以上(含县级)人民政府正式批准
    4)行业名称或者商品的通用名称不得使用

    什么是域名地址服务器(即DNS)
    域名服务器用于把域名翻译成电脑能识别的IP地址。例如,如果有人要访问sohu的网站 (www.sohu.com), DNS就把域名译为IP地址 61.135.132.3 。这样就便于电脑查找域名所有人的网站服务器。

  • 关于网址重定向

    2009-02-21 17:09:04

    重定向

    网站建设中时常会遇到需要网页重定向的情况:比如因网站调整,网页目录结构发生改变,网页需要被移到一个新地址,再或者,网页扩展名改变,如因应用需要把.php 改成.Html或.shtml,在这种情况下,如果不做重定向,用户收藏夹或搜索引擎数据库中旧地址只能让访问客户得到一个404 页面错误信息,访问流量白白丧失;再如某些注册了多个域名的网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点,等等。

    301重定向

    301转向(或叫301重定向,301跳转)是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。 其它常见的状态码还包括,200表示一切正常,404网页找不到,302暂时转向,等等。

    301 重定向可促进搜索引擎优化效果

    从搜索引擎优化角度出发,301 重定向是网址重定向最为可行的一种办法。当网站的域名发生变更后,搜索引擎只对新网址进行索引,同时又会把旧地址下原有的外部链接如数转移到新地址下,从而不会让网站的排名因为网址变更而收到丝毫影响。同样,在使用301永久性重定向命令让多个域名指向网站主域时,亦不会对网站的排名产生任何负面影响。
    网址转向方法主要包括:301 转向,302 转向,JavaScript. 转向,PHP/ASP/CGI 转向,META. REFRESH 网页META. 刷新等。302 转向可能会有URL 规范化问题。其它方法都是常用的作弊手法,当然不是说不可以正当地用,方法本身没有错,但被作弊者用多了,搜索引擎对这些可疑的转向都很敏感。
    当网页A 用301 重定向转到网页B 时,搜索引擎可以肯定网页A 永久地改变位置,或者说实际上不存在了,就会把网页B 当作唯一的有效目标。好处是,第一,没有网址规范化问题,第二,也很重要的,网页A 的PR 网页级别会传到网页B。

    IIS 服务器实现301 重定向

    打开internet 信息服务管理器,在欲重定向的网页或目录上按右键;选中“重定向到URL”;在对话框中输入目标页面的地址;切记,记得选中“资源的永久重定向”;当然,最后要点击“应用”。

    Apache 服务器实现301 重定向

    相比较来说,Apache 实现起来要比IIS 简单多了。在Apache 中,有个很重要的文件.htaccess,通过对它的设置,可以实现很多强大的功能,301 重定向只是其中之一。
    redirect permanent /http://SEO.highdiy.com/:将目录下内容重定向到http://SEO.highdiy.com/redirectpermanent
    /old.htmlhttp://SEO.highdiy.com/new-url/:将网页old.html 内容重定向到http://SEO.highdiy.com/new-url/
    通过合理地配置重定向参数中的正则表达式,可以实现更复杂的匹配。有兴趣的朋友可
    参考Apache 手册。

    PHP 下的301 重定向
    <? Header( "HTTP/1.1 301 Moved Permanently" );
    Header( "Location: http://SEO.highdiy.com" );?>

    ASP 下的301 重定向
    <%@ Language=VBScript. %>
    <% Response.Status=”301 Moved Permanently” Response.AddHeader “Location” , ”
    http://SEO.highdiy.com”>


    ASP .NET 下的301 重定向
    <script. runat=”server”>
    private void Page_Load(object sender, System.EventArgs e)
    {
    Response.Status = “301 Moved Permanently”;
    Response.AddHeader(”Location”,”http://SEO.highdiy.com”);
    }
    </script>

  • 优秀测试工程师识别手册 (经典)

    2008-12-22 14:11:25

    优秀测试工程师识别手册

    1. 早上起床晚点,因为没听见闹钟响。你为了确认是不是闹钟出了问题,打算明天早上再试它一次。

    2. 出门打车,你花了半个多小时才打到一辆,并不是因为的士太少,至少有十一辆曾从你面前经过,可你毫不动心,因为它们顶部的 Taxi 标识牌都没有被摆正,界面不友好。

    3. 你在车上给老板打电话想解释一下,分别从电话本、手机键盘、已拨电话、已接电话和未接电话给老板连打五个,中间还不时让老板给你打过来,搞得老板以为你出什么事了,最后才高兴地对老板说:"老板,你知道吗?我手机的 Call function没有 BUG 耶。"老板电话里沉默了一分钟,说道:"我也正在测我小灵通接听电话后长时间通话的稳定性,你给我打过来吧。"结果,你打过去后老板一整天都没再去碰那小灵通,你刚冲的 500 元手机套餐。

    4. 总算到公司了,你签到的时候不忘提醒一下前台小姐,她在微笑时那 8 颗牙齿没有全露出来, 有半颗被遮住了,不符合 UI 标准。

    5. 见到老板时,不知为什么,老板看你时笑容满面,你心里不禁想:是不是有新的 Release 到了?唉,看来又得加班了-_-!!

    6. 中午和同事一起去外面吃饭,在菜里吃出来一只苍蝇,同事们愤怒地去找饭店老板理论,只有你不露声色,仍然在那大吃特吃,心里想着:作为一名专业的测试人员,需要具备发散性的思维,菜里既然有苍蝇,那就很有可能还有别的东西,另外这个现象还很有可能在别的菜里 Reproduce。等到同事们拉着老板过来看的时候,在一个盘子里整齐陈列着你的劳动成果:苍蝇两只,蚊子一只,笤帚枝两根,小飞虫三个,毛发若干。。。

    7. 下午在办公室,同事小王说她新交了个男朋友,那个男孩说要爱她一生一世。你发表意见,认为该用例测试难度较大,建议她要么换个爱她时间在一年以内的男孩,要么换个说要爱她一生一世的老头。小王说那男孩愿意为她去死,你建议她回去后做一个现场测试。小王说那个男孩要让她成为世界上最幸福的女孩,你说缺乏测试数据,建议让那个男孩先送 一座别墅、一辆劳斯来斯、一块劳力士、金银珠宝若干、名牌服饰不计其数再说。

    8. 有同事询问你上次去相亲的结果,你叹口气道:“"唉!客户满意度没达标,被 Fail 掉了。

    9. 总算熬到下班,去坐城铁回家,在城铁上发现城铁列车的车门如果被东西挡在中间就关不上,你便想测一下如果挡住的 话,车门会持续开多长时间。得到的结论是:车门会一直开着,直到引起公愤被人踢出去为止。

    10. 你到家后不进家门,依旧是先去邻居家,在门口对躲在里面的邻居喊:"我半年前某年某月某日某时,向您报的关于您家的狗对我不友好甚至在我面前拉 x 的问题,经过我 1xx 天的跟踪,至今天为止这个问题还是没有修复。

    11. 邻居终于搬家了,你打听到他的新家,专程在与平时同样的时间去拜访他,并且告诉他你想见见他家那条狗,因为你要做个 Regression 测试。结果问题重现了,那条狗还是一样的不欢迎你,你一个人捂着受伤的脚去了医院。

    12. 在街上花 5 角钱买了一个指甲刀,结果用了两天坏了,你第二天就递交了一份详尽的测试报告给那个小贩,告诉他只要按这个操作来,两天后就能重现问题。并在临走时说了一句:以后我每天都会来跟踪一下的。没想到小贩说这个问题已经有 N 个人给他报过了,你这个属于 Duplicated,你晕死!

    13. 路上有人找你问路,你给他指点时,把到那个地方的所有可能的路径都覆盖到了,总共 97 种走法。

    14. 你想换个工作,去一家公司面试,面试题目是:桌上放了半杯水,让你站在一名测试工程师的角度上,会有何反应?你看着那杯水,先闭上双眼,随即又睁开,在确认这半杯水可以被重现后,开始以 2 次/s 的频率眨眼睛,打算做一个 5000 次的压力测试。在你被送往医院的救护车上,那个公司的人事主管告诉你被录取了。

    15. 你坐公交车,车上人又多又挤,突然一个急刹车,你的手不小心碰到了旁边一位 MM 的 breast,正当你连忙想道歉时,发现那位 MM 好像对你的动作没什么反应,你一想:不对啊,好像与期望结果不符。为了验证一下,你把手又伸了出去。

    16. 你被狗咬了,朋友劝你赶紧去打防疫针,你拒绝了:一位优秀的测试人员应该严格以现象为依据,在错误发生以前我们是不会报的。

    17. 在你测一个游戏软件时,发现这个软件成熟度非常高,半天做下来没有发现一个 BUG。作为一名优秀的测试人员,是绝对不允许这种情况发生的。于是,你在错误报告中写下:游戏难度过高,无法打通第一关。几天后,该游戏软件难度被重新调整,开发员在 Solution 报告中的记录为:经 10 位 3 - 5 岁儿童测试,十五分钟内全部通关,故难度被提高。

    18. 接到通知,过几天会进行 Monkey Testing,并且到时客户会来现场观摩,如果客户觉得满意就会与公司签下大单,领导相当重视。精神传达下来后,你也相当重视,立马委托在动物园上班的朋友,把自己的电脑给动物园的猴子搬去,想看看真正的猴子到底是如何测的,自己可以先接受一下培训。没想到那猴子竟然对着电脑嘘嘘@_@!原来如此,你终于领悟到 Monkey Testing 的精义了。于是,几天后在测试现场,你当着客户的面--

    19. 老婆生 baby 了,你很高兴,给孩子取个小名叫:小 BUG。

    20. 有一天,你突然发现世界上所有的软件都没有 BUG 了,你顿时失去了活下去的意义,当你从一座悬崖上跳下去时,梦醒了。这天你工作效率相当高,看着那些 BUG,个个都是那么的亲切,觉得生活是多么的美好!

    21. 你找了个搞开发的女朋友,周围的人都觉得很惊讶,不明白你们在一起时是如何相处的。你自有你的秘诀,与 GF 在一起时一定要忍住,她说什么在你眼里都是对的。等到了公司,再把憋了好久的找 BUG 欲发泄在工作上,结果你的业绩遥遥领先于其它人。两个月后,客户公司破产,原因据说是那边的程序员有 11 个被炒了鱿鱼,3 个进了疯人院,剩下的全部都辞职了。从此,全国所有的程序员人手一张你的照片,你所到之处,软件尽毁,寸 code 不生。

    22. 在街上看见两个人吵架,你急忙过去劝说:"不要争了,看看 UI 就明白了。"

    23. 认识你的都说你是个很有办法的人,没错,作为一名手机测试工程师,无论遇到任何难题,你的办法永远都是:关机,重起,卸电池。。。

    24 .你日记当中的一段话——"曾经有一个 Critical 的 BUG 摆在我面前,我没有珍惜,等它被别人报了的时候我才后悔莫及, 做测试最痛苦的事莫过于此。开发员你尽管修复它吧,不用再犹豫了。如果上天能够给我一个给那人分任务的机会,我会对那个人说三个字——压力 Testing。如果非要给它的次数加个限制,我希望是——一万遍!!"

    以上为判别您是否是一名优秀测试工程师的二十四条标准。

    如果您符合其中一条,那么恭喜您,您已经是一名优秀测试工程师了。
    如果您符合其中两条,那么恭喜您,您已经是一名资深优秀测试工程师了。
    如果您符合其中三条,那么恭喜您,您已经是一名骨灰级的优秀测试工程师了。
    如果您符合其中四条,那么恭喜您,您已经达到了测试老妖的级别了。
    如果您符合其中五条或者五条以上,那么恭喜您,汉口精神病院已经为您预留了床位,届时将有中外知名精神病专家组成国际医疗小组为您提供一流的服务。

    最后想告诉大家,工作重要,身心健康也很重要。平时有空多锻炼身体(不要象偶,周末爱睡懒觉),另外工作压力大时 记得要去主动调节,身体好心情好工作也好,哈哈~~

  • 【转】如果能够执行完美的黑盒测试,还需要进行白盒测试吗?

    2008-11-24 16:46:36

    黑盒测试:从用户角度出发,根据规格说明设计测试用例,并不涉及程序的内部特性和内部结构,只依靠被测程序输入和输出之间的关系或程序的功能设计测试用例。黑盒测试有两个显著特点:
       (1)黑盒测试与软件的具体实现过程无关,在软件实现的过程发生变化时,测试用例仍然可以用。

       (2)黑盒测试用例的设计可以和软件实现同时进行,这样能够压缩总的开发时间。

        黑盒测试主要是为了发现以下几类错误:

       1、是否有不正确、遗漏或额外的功能实现?

        2、在接口上,输入是否能正确的接受?能否输出正确的结果?

        3、是否有数据结构错误或外部信息(例如数据文件)访问错误?

        4、性能上是否能够满足要求?

        5、是否有初始化或终止性错误?

      白盒测试:已知程序的内部结构,检查内部操作是否按规定执行。主要对程序细节进行严密检验,针对特定条件和循环设计测试用例,对程序的逻辑路径进行测试。通过在程序的不同点检查程序状态,确定实际状态是否与预期的状态一致。

        白盒测试主要是想对程序模块进行如下检查:

       1、程序的所有语句至少执行一次。

        2、对所有的逻辑条件都能至少执行一次。

        3、在循环的边界和运行的界限内执行循环体。

        4、测试内部数据结构的有效性,等等。

       从以上可以看出就算执行了完美的黑盒测试也是无法测试程序内部特定部位,另外当规格说明本身有误,也不能发现问题。而白盒测试能对程序的内部特定部位进行覆盖测试,所以黑盒和白盒测试为互补关系,结合起来进行测试用例的设计更为合理。

    经验表明,通常在进行单元测试时采用白盒测试方法,集成测试采用灰盒测试方法,系统测试采用黑盒测试方法。

  • 【转】软件测试BUG参考标准

    2008-07-28 15:59:57

    一、目的

            对 BUG 概念、类型划分、 BUG 状态、 BUG 严重程度等内容进行定义和规范,以便进一步指导我们的软件测试工作

        二、概念

            BUG :软件中存在的瑕疵,可能会导致系统失效。简单的说就是软件系统中存在的可能导致系统出错、失效、死机等问题的错误或缺陷。

        三、 BUG 的类型划分

        功能类

        A. 重复的功能

        B. 多余的功能

        C. 功能实现与设计要求不相符

        D. 功能使用性、方便性、易用性不够

        界面类

        A. 界面不美观

        B. 控件排列、格式不统一

        C. 焦点控制不合理或不全面

        数据处理类

        A. 数据有效性检测不合理

        B. 数据来源不正确

        C. 数据处理过程不正确

        D. 数据处理结果不正确

        流程类

        A. 流程控制不符和要求

        B. 流程实现不完整

        提示信息类

        A. 提示信息重复或出现时机不合理

        B. 提示信息格式不符和要求

        C. 提示框返回后焦点停留位置不合理

        建议类
     
        A. 功能性建议

        B. 操作建议

        C. 检校建议

        D. 说明建议
     
        性能类

        A. 并发量

        B. 数据量

        C. 压缩率

        D. 响应时间

        常识类

        A. 违背正常习俗习惯的,比如日期 / 节日等

        特殊类

        A. 不符合 OEM 版本或 DEMO 版本特殊要求的

  • 【转】为什么要使用测试用例

    2008-07-28 15:54:30

    其实,测试用例不是必须的。如果你是一个特别有想法的人,或者在软件测试方面很有天赋,每天都能找到其他人几天时间才能找到的Bug,那么你可以不用测试用例,如果我是Test Manager的话,就会让你做一个Ad-hoc Tester,因为我已经觉得你足够好了,不需要测试用例来指导你了,因为你很有想法,有自己的测试思路。就像陈宏刚博士在Microsoft公司做Tester的时候,就是一个Ad-hoc Tester,因为他有自己的测试思路,他每天找到的Bug比他们小组其他所有Tester测试出来的Bug总和还要多,所以Test manager 根本就不管他,也不给他什么要求,就让他每天测好了。
               
            但是不幸的是,你可能不是这样的人,或者你身上存在着几种情况,就最好使用测试用例。

            1. 你工作不主动,你需要测试用例来催着你去工作;

            2. 你测试时总感觉思维很混乱,或者总感觉有些功能没有测到,而一些功能已经测过好几遍了,这样测试用例能够帮你理清头绪,进行比较系统的测试,不会有太多的重复,也不会让你的测试工作产生遗漏;

            3. 在测试时间紧迫的情况下,你不知道要测什么,或者要先测试那些功能,测试用例这个时候就可以帮你分清重点,因为测试用例写完后一定要标重要程度和优先级,以防止在紧急的情况下有重点的工作。

            4. 你积极的工作状态不能持续,这个时候测试用例又帮你一个大忙,因为测试用例上面操作步骤和预期结果都已经写好了,你根本不用思考,只需要照着上面做就行了。

            5. 测试用例是你工作的见证,也是你每次测试以后向上级汇报的依据,有了测试用例,我知道我这次测试了那些功能,还有那些功能没有测到,对上级是一个交代,也做到了自己心中有数。

            6. 测试用例可以记录你的灵感。如果灵感突发,有一个新颖的测试思路,你可以写成测试用例,或许这个测试用例就是挽救整个软件的重大功臣。

            7. 测试用例有助于不断的改进工作。因为通过测试用例,可以知道哪些测试用例测出Bug的机率比较大,还有那些测试用例需要改进,对我们以后工作的改进提供了依据。

            以上几条如果还不能推动你写测试用例的话,那么只有通过时间来证明了。我现在已经习惯在测试之前写测试用例了,如果测试之前没有测试用例的话,反而觉得不习惯。当然在不同的情况下(比如时间紧迫和有充足的时间的情况),测试用例的写法是不一样的。

     

  • 忽然

    2007-06-26 22:32:48

        

             忽然,很想醉,是因为早已心碎;

             忽然,很想睡,是因为身心早已疲惫,

             忽然,很想喝一杯咖啡,是因为要映衬内心的苦味;

             忽然,很想一个人颓废,是因为再没有什么人让我不累! 

      PS:在朋友日志中看见的,就转了过来,很喜欢这样的句子,诗情画意的!呵呵``~``

            忽然,很想肺,是因为肺是心旁边的宝贝!

            忽然,很想家,是因为那里有很多放心不下!

  • 晕忽忽

    2007-06-24 00:57:11

         这几天一直在看SPEC,让我看了三个版本的,现在都不知道哪些功能是哪个版本里面的了,晕忽忽的。

         下周就让我开始写Test Case,虽然只写几个功能项的,但我现在连一些具体的功能项都还没操作过。哎哟,咋办列?大致看了下公司以前的Test Case,还没搞清楚为什么要那样设计。唉,还是下周边做边问了。

         为什么不先让我测试几天再写Case呢?

         明天在网上找点资料看看。

         It's the time for sleeping.

         Good night.

  • 端午节快乐!

    2007-06-19 22:09:32

        今天,端午节,公司没粽子吃,不过下班后,leader给我们加餐,在外面吃了一顿。嘿嘿~

        好久没这样很多人一起吃饭了!虽然今天的人都不熟悉,但吃的还比较开心。因为她们都是很好很好的人,和她们相处和愉快,一起工作也很开心!

        上班也有几天了,感觉还可以吧。这几天都在看写资料,虽然有些晕忽忽的,但我想多看看就会好的。这工作也让我能有更多的机会接触英语,还不错。

        以后要好好努力了!学测试,学英语。

        端午节快乐!

        今天要早点睡啦,这几天困死我了,养好精神学习。

      

  • 劳动就业合同[转]

    2007-06-10 22:39:32

                市外商投资企业劳动合同书

    甲  方:___________

    地址及邮政编码:____________________________________________

    乙  方:___________

    身份证号码:______________________

    住址及邮政编码:____________________________________________

    甲方因生产经营需要,按照中华人民共和国及省、市人民政府(以下简称政府)劳动法规和政策,聘用___________(乙方)为合同制职工,双方根据平等自愿、协商一致的原则,签订本合同,确定劳动关系,并共同遵守履行。

    一、本合同自_________年_______月_____日起生效,生效后前__________月为试用期。合同有效期采取下列第____________种形式。

    1.无固定终止期限(即长期合同,但可按本合同第七条变更、解除或终止)。

    2.合同期限________年_______月______日至_______年_______月_____日止。

    3.合同期限至___________工作(任务)完成时终止。其完成的标志事件是___________ _______________________________________________________。

    本合同甲乙双方各存一份。鉴证时还需交鉴证机构一份,均具同等效力。

    二、工作岗位与职责任务

    乙方的工作部门及岗位(职务):__________________________________________。

    乙方在合同期内,应遵守政府的法律法规及甲方依法制定的规章制度,按本职位的职责要求,完成甲方安排的正常生产(工作)任务。甲方可视企业生产经营需要,经协商或依照合同约定可调整乙方工作,同时甲方可依乙方的工作表现按规定给予奖惩。

    三、劳动时间与休假

    1.甲方实行国家规定的工作时间制度。甲方因生产经营需要可安排乙方加班加点,但每月累计不超过36小时,每个工作日累计工作时间不超过11小时。

    2.乙方在合同期内享受政府规定的节日、公休假日及探亲、婚丧、计划生育、女职工劳动保护等有薪假期。

    四、劳动报酬

    1.甲方按照国家有关外商投资企业职工工资和本市最低工资标准的规定,以及本企业工资制度,确定乙方按下列第________种工资形式执行;

    (1)计时工资,乙方试用期月工资_________元;试用期满根据乙方岗位定为________元。以后按企业工资制度调整工资:

    (2)计件工资。按乙方岗位计件单位及完成情况计发计件工资。

    2.甲方每月如期以货币发放工资。

    3.甲方要求乙方(工人岗位)加班加点,无法安排补休的,按不低于政府有关规定发放加班加点工资。

    4.非因乙方原因所致的停工、停产期间,甲方按不低于乙方停工前3个月的月平均工资70%的标准,发给乙方停工工资。

    五、保险福利待遇

    1.乙方患职业病及因工负伤医疗终结期内,甲方按本市社会工伤保险有关规定发给工伤生活费和报销医疗费。

    2.乙方在合同期内享受国家、省、市规定的因病和非因工负伤医疗期,女工孕期、产假期及哺乳期等保险福利待遇,以及乙方符合计划生育子女的劳保医疗等各种保险福利待遇。

    3.乙方在合同期内因工负伤或患职业病以及非因工伤亡,按国家及本市有关规定由社会保险机构和甲方分别发给乙方亲属丧葬费、一次性抚恤金或优抚金,以及供养直系亲属抚恤金或救济费等。

    4.合同期内,甲、乙方须按照本市政府的规定,缴纳退休养老保险基金、失业保险基金、工伤保险基金等社会保险基金,甲方应定期向乙方通告交缴社会保险基金情况。

    六、劳动保护

    1.甲方按照政府有关劳动保护规定和《广东劳动安全卫生条例》,提供符合安全卫生要求的工作环境,切实保护乙方在生产、工作中的安全和健康。

    2.甲方按政府有关规定,为乙方配备符合国家标准的劳动保护用品,并按劳动保护规定免费安排乙方进行体检。

    3.甲方按政府有关部门规定对乙方进行安全生产知识、法规、规程的教育培训。

    4.甲方执行政府有关女职工及未成年工(16周岁至未满18周岁)的劳动保护规定。

    5.乙方严格遵守劳动安全卫生法规、规章、制度和操作规程,正确使用劳动保护用品,不得违章作业。乙方有权拒绝违章的指挥,对甲方及其管理人员漠视员工安全健康的行为,有权提出批评并向有关部门检举、控告。

    七、续订、变更或解除、终止劳动合同的条件

    1.本合同期限届满即自然失效,双方终止执行。如经双方协商同意,可以续订合同。

    2.甲方因生产经营情况变化,调整生产任务,或者乙方因个人原因要求变更合同条款,经双方协商同意,可以变更劳动合同的相关内容,并由双方签字(盖章)。

    3.有下列情况之一的,劳动合同即告终止:

    (1)乙方已达到政府规定的退休年龄;

    (2)乙方死亡;

    (3)甲方被依法撤销、解散、歇业或宣告破产;

    (4)劳动合同约定的终止条件出现。

    4.在下列情况下,甲方可以解除劳动合同:

    (1)试用期内乙方被证明不符合录用条件的;

    (2)合同期虽未满,但甲方因生产(工作)任务不足,以及破产或濒临破产处于法定整顿期间,需要裁减人员,但必须征求工会意见并向劳动行政部门报告;

    (3)乙方违反国家法律、法规被送劳动教养或判刑的;

    (4)乙方严重违反甲方依法制定的劳动纪律,按规定应予辞退的;

    (5)乙方患病或非因工负伤,医疗期满后仍不能从事原工作,也不能从事由用人单位另行安排的工作的。

    5.下列情况下,甲方不得解除劳动合同:

    (1)合同期未满,又未发生本合同第七条4款各点规定;

    (2)乙方因工负伤或患职业病医疗终结期内,和未作出劳动能力鉴定前以及医疗终结后,经劳动鉴定委员会确认完全或大部分丧失劳动能力的(国家另有规定者除外);

    (3)乙方患病或非工负伤在规定医疗期内,以及医疗期虽满但仍需住院治疗的。非因工伤病医疗期限标准为:本企业工作五年以内的为三个月;六年至十年的为六个月;十一年至十五年的为九个月;十六年至二十年的为一年;二十年以上可视伤病情况延长半年至一年;

    (4)符合计划生育规定的女工在怀孕、产假和哺乳期间;

    (5)乙方经批准享受法定休假期间。

    6.在下列情况下,乙方可以解除劳动合同:

    (1)试用期内;

    (2)经政府劳动部门确认,甲方劳动安全、卫生条件恶劣,严重危害乙方身体健康;

    (3)甲方不能按照劳动合同规定的数额和如期支付劳动报酬的;

    (4)甲方不按规定为乙方缴纳养老保险、失业保险;工伤保险等社会保险基金的;

    (5)经甲方同意自费考入中等专业学校全脱产学习的;

    (6)甲方不履行劳动合同或者违反国家政策、法规,侵害乙方其他合法权益的;

    (7)乙方被批准自费出国留学或出境定居的。

    八、违反合同承担的责任

    1.除试用期内或符合本合同第七条第4款(3)、(4)以及第6款(1)、(2)、(3)、(6)规定可构成立即解除合同外,其他情况需要解除劳动合同的,劳动合同甲、乙双方都必须提前30天以书面形式通知对方。提前通知时间不足者,按相距的实际天数以乙方当月实得工资的日平均数计算补偿。

    2.除本合同第七条各款外,甲、乙双方在合同期内要求解除劳动合同,应经双方协商同意,违者应按《广州市劳动合同管理暂行规定》及本合同规定向对方赔偿。

    乙方赔偿损失的金额超过上年本人全部工资收入部分可以减免。但属教育培训费或住房方面的损失赔偿除外。

    3.经甲方培训或由甲方出资聘用的大、中专毕业生、专业人员,服务年限少于培训合同规定时间的,除本合同第七条第3款(1)、(2)、(3)、(4),第4款(1)、(2)、(5),第6款规定情况外,应按合同期和甲方实际支出费用剔除已服务年限递减赔偿。

    本合同终止时间早于培训合同规定的服务年限终止时间的,以培训合同终止时间为准。

    九、甲、乙双方所订合同期满甲方不再续订的,甲方应按政府有关规定发给乙方生活补助费。合同期满甲方提出新的合同条件和待遇均不低于原合同而乙方不愿意续订合同的,甲方可不发给生活补助费。

    甲方因本合同第七条第4款(2)、(5)所列情况在合同期内辞退乙方,甲方应按本市政府有关规定发给乙方生活补助费;属第七条第4款(5)的,还需发给乙方医疗补助费。

    合同期未满,乙方要求辞职,除本合同第七条第6款(2)、(3)、(4)、(6)所列情况外,或甲方执行本合同第七条第4款(1)、(3)、(4)规定解除劳动合同的,甲方均可不发给乙方生活补助费。

    十、甲、乙双方解除、终止劳动合同时,甲方应按本市政府有关规定,为乙方办理享受失业救济的手续,乙方达到退休年龄,甲方应按政府有关规定为其办理退休(退职)等手续。

    十一、双方履行劳动合同如发生争议,应当先协商解决;协商无效,向甲方所在地的劳动争议仲裁委员会申请仲裁;对仲裁不服的,可在收到仲裁裁决书之日起15天内,向甲方所在地的人民法院起诉。

    十二、本劳动合同未尽事宜,按国家有关规定办;在合同期内,如本合同的条款与本市有关劳动管理新规定不符,双方按新规定执行。

    十三、双方需明确的其他事项(含双方违约责任),

    1.__________________________________________________________________

    2.__________________________________________________________________

    3.__________________________________________________________________

    4.__________________________________________________________________

    甲方(盖章):           乙方(签名或盖章):

    法定代表人

    (或委托代理人):

    年  月  日          年  月  日

    鉴证机构(盖章):

    鉴证人:

    鉴证日期:  年  月  日

  • 终于做了这个决定

    2007-06-10 16:17:31

        终于还是签下了那个合同,尽管我心里还是很不舒服。对于GP,我真的很抱歉,答应去上班的,而我做不到了,因为这家单位适合我一些,毕竟我现在还是一个新手。对此,我只能说对不起了。要是早点让我去上班,也许就不会有后面的事情了。这几天也有别的公司打电话让我去复试,我也去不了了。为什么这晚才给我通知?!为什么总是这个样子?!
        公司地理位置比较好,离我住的地方较近,又是我比较喜欢的一栋大厦,而且是个外企,但就是不知道里面的工作怎么样?朋友说这是一个机会,要好好把握!
        不管怎样,以后要努力的安心工作。不要让我失望好吗?为此我放弃的实在太多。
        我会努力的!

  • 艰难的抉择

    2007-06-07 22:43:04

        我到底该怎么办呢?
        事情总是这样子,要么不来,一来全出来了,让人一点心理准备都没有,都不知道如何是好。郁闷!
        不管怎样,明天还是先去看看情况。唉,为什么他们不能早点告诉我呢?
        算了,不想了,明天去看看好了,但愿不是我想象的那样糟!

231/212>
Open Toolbar