发布新日志

  • 软件测试大全卷1:基础知识(第1版)出炉了(BSTT整理)

    2010-11-25 09:47:53

    软件正进入测试时代,测试同仁我们的明天是光明J

    随着计算机的发展,产品功能越来越庞大,产品业务越来越复杂,用户对产品质量的要求越来越高。产品质量的提高在做好需求分析,设计分析,编码实现的前提之下,软件测试也是提高产品质量的重要手段之一。

    本书的目的结合作者经验和网络收集的资料,对测试过程,规范,测试方法,测试工具,数据库等个个方面进行收集整理。供测试同仁参考学习之用。希望能各位测试工作带来一定帮助。

    整理编写《测试大全》一书是一项具有强烈挑战的创新工作,难度大,时间紧,加之编者水平有限,书中难免有疏漏之处,敬情各位同事谅解。书中很多内容只能抛砖引玉,需要大家从其它渠道如书本,网络,交流等获取更详细的内容。

    如果有意见和建议请与大傻联系。Emailldjzj@163.com QQ交流群号:14926562

                                                                               大傻

                                                                                        2010-11-23 晚上2317

  • (已解决)VisualSVN在win2003服务不能启动

    2010-10-19 16:34:15

             Win2003中安装VisualSVN后,服务不能自动启动,手工执行bin目录下面的VisualSVNServer.exe可以启动服务,或者就是将服务的启动账户改成一个指定的新用户就可以了,试了一下,果然可以。
  • 提高缺陷描述质量的新概念---缺陷模板。

    2010-09-19 16:55:25

       最近实在太忙了,一直没写博客,实际上发生故事挺多的。最近由部门扩张,招了不少新人,项目组反应,缺陷描述提交质量不是很好。我想了好多办法,也不起效,后面看到博客格式有模板,缺陷描述能不能有模板呢。我根据我们公司缺陷类型定议

    1 功能
    语法:
    <模块名><操作步骤><错误现象>【错误原因】
    实例:
    挂号处理中新病人建档时,如果姓名输入超过四个汉字保存失败,原因ms_brda.brxm字段长为8.
    2 界面
    语法:
    <模块名><错误现象><正确结果>
    实例:
    挂号查询中挂号科室显示是内部ID,应显示科室名称
    3 易用
    语法:
    <模块名><目前操作情况><建议情况>【优点原因】
    实例:
    挂号处理模块新病人建档时,选择省份时只能下拉选择,建议可以通过拼音码调入,方便用户操作。
    4 数据
    语法:
    <模块名><错误现象><错误原因>【错误结论】
    实例:
    资产财务月报中折旧数据不对,经查发现资产重置以后,资产月结的时候和zc_yjjl(资产月结记录)的重置金额未更新,折旧金额还是按照重置前的金额计算,造成资产月报数据不对。月结处理算法不对,请修改。
    5 代码
    语法:
    <模块名><操作步骤><错误现象>【错误原因】
    实例:
    挂号信息查询中点击查看发票报错,原因是ms_fpxx缺少zfpb字段,PDM中也没这个字段。
    6 性能
    语法:
    <模块名><性能现象><原因分析>【解决方案】
    实例:
     医嘱处理模块当超过10个用户同时进行医嘱处理通过拼音码调入项目时延时超过5秒。原因调入项目是直接从数据取,而项目字典和药品字典超过2万条。建议登录时下载到本地缓存操作。
    7 建议
    语法:
    【模块名】<合理化建议>【优点原因】>
    实例:

    注意:<>必填 ,【】可选

     

  • SQL Server2000错误21002:[SQL-DMO]用户***已经存在的解决方法

    2010-08-10 13:08:07

    错误症状:
        在SQL Server2000中指定用户在新还原数据库中角色,出现错误21002:[SQL-DMO] 用户***已经存在。删除用户后重建,设置时问题还存在。

    产生原因:
         这就是我们通常所说的“孤立用户”,所谓孤立帐户,就是某个数据库的帐户只有用户名而没有登录名,这样的用户在用户库的sysusers系统表中存在,而在master数据库的syslogins中却没有对应的记录。孤立帐户的产生一般由于以下两种情况造成:
    1.将备份的数据库在其它机器上还原;
    2.重装系统或SQL SERVER之后只还原了用户库解决方法:

    解决方法(蓝色部分换在问题的用户名)
       是使用sp_change_users_login来修复。sp_change_users_login的用法有三步:
    步骤1:
     exec sp_change_users_login 'REPORT' --列出当前数据库的孤立用户
    步骤2:
    exec sp_change_users_login 'AUTO_FIX','用户名' --可以自动将用户名所对应的同名登录添加到syslogins中
    步骤3:
    exec sp_change_users_login 'UPDATE_ONE','用户名','登录名' --将用户名映射为指定的登录名。

  • QTP运行时提示“缺少对象: 'WScript'”问题处理

    2010-08-04 15:46:19

    今天BSTT群里有群友碰到一个问题缺少对象: 'WScript'”,示例如下.

    Dim WshShell

    Set WshShell=WScript.CreateObject("WScript.Shell")

    WshShell.Run "notepad"

    WScript.Sleep 2000   

    修证如下:将以上代码封装成test.vbs保存在C盘根目录下,Qtp代码编写如下。

    Dim WshShell

    Set WshShell=CreateObject ("WSCript.shell")

    WshShell.run "cmd /K wscript. c:\test.vbs"

    原因分析:WScriptwindows操作系统对象,不是QtP的对象,所以运行时报这个错误。WSCript全称“Windows Scripting Host”,它是Windows 98新增的功能,是一种批次语言/自动执行工具——它所对应的程序“WSCript.exe”是一个脚本语言解释器,位于WINDOWS目录下,正是它才使得脚本可以被执行,就象执行批处理一样,可以拿来执行.wsh.vbs.js等。它本身并不是病毒,但由于其功能十分强大,所以会被一些恶意病毒代码所利用。建议您安装用杀毒软件查杀病毒。

  • QTP实例fight应用Datatable读取第二行报错原因分析

    2010-07-29 17:47:20

    今天BSTT群里有群友碰到一个问题Datatable读取第二行报错,示例如下.

    Dialog("Login").WinEdit("Agent Name:").Set DataTable("name", dtGlobalSheet)

    Dialog("Login").WinEdit("Agent Name:").Type  micTab

    Dialog("Login").WinEdit("Password:").SetSecure DataTable("password", dtGlobalSheet)

    Dialog("Login").WinButton("OK").Click

    Window("Flight Reservation").Close

    对登录的用户名“Agent Name”和“Password”使用Datatable进行了参数化,回放是发现Datatable读取第二行报错。

    修证如下:将record and run settings中选项设置为“record and run test on and open ……”,代码修改如下。

    SystemUtil.Run "D:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe","", "D:\Program Files\HP\QuickTest Professional\samples\flight\app\", "open"

    Dialog("Login").WinEdit("Agent Name:").Set DataTable("name", dtGlobalSheet)

    Dialog("Login").WinEdit("Agent Name:").Type  micTab

    Dialog("Login").WinEdit("Password:").SetSecure DataTable("password", dtGlobalSheet)

    Dialog("Login").WinButton("OK").Click

    Window("Flight Reservation").Close

    原因分析:原来record and run settings中选项设置为“applications specified below”程序fight只运行一次,回放循环时是不会再运行fight一次的。直接” Dialog("Login").WinEdit("Agent Name:").Set DataTable("name", dtGlobalSheet)开始,而这时实际”Dialog("Login")对象是没有打开的,怎么可能会成功呢。现在解决的方法是直接SystemUtil.Run函数打开fight,不通过QTP来打开fight,这样就不存在问题了。

  • QTP_Datatable涉及方法(BSTT整理)

    2010-07-28 17:44:48

    昨天BSTT群里有人问DataTable导入数据问题,我查了一可以使用DataTable.ImportSheet(FileName, SheetSource, SheetDest) ,今天可能心情不错,我就顺便把QTP10中DataTable涉及的方法都整理了一下,其实就是帮助翻译一下,希望能给大家带来帮助。

  • 自动化测试在公司内部宣传的重要性

    2010-07-23 18:16:00

    自动化测试我们搞了快三个月,自动测试小组的人总是开玩笑“老大你又显摆去了”。我说这是必须的。是的最近我老碰到一个人我跟讨论自动化,给演示自动化测试的新结果,包括公司的领导,产品经理,开发人员等。

    我认为要想在公司最好自动化测试,必须做好宣传,不然肯定无法推广。推广做不好最后肯定是失败的下场。宣传包括三方面公司领导上层,测试部内部,开发团队。

    对公司上层重点是要经常像他汇报自动测试的进程,应用了多少项目,带来什么成效了。年中总结会我第一条就是“引入自动化测试,填补了公司之方空白,并且已三个项目测试中已应用”,引起公司领导的关切,问了很多问题,我又滔滔不绝了一把。

    对测试部内部要恩威并施,其实公司现在每个项目组测试都很忙,大家都知道自动化测试初期肯定会带来很多工作量,而且不少。我又发挥了我们特长,说自动测试的好处,开专题讨论会,让自动测试小组保姆帮他们录制,调脚本,最后让执行,最后上当了。下半年我在测试考核中增加回归测试自动化比例。

    对开发团队实际要让自动化测试产生信任,我经常是这样我用自动测试测出来的问题,先自己手工确认以后,并查明原因。经常请开发人员来看看,开发人员看了以后常说傻哥,这是好东东。

  • 我们自动化测试的进程分享

    2010-07-23 17:45:37

    初初算来自动化测试我们搞了快三个月了,从刚开始的期待,兴致勃勃,到痛苦并快乐,到现在初见曙光。

    4月份我提出要组建自动化小组,我看到团队中有迷惘的眼神,期待的眼神。开发组听到这事的时候也是将信将疑,甚至有人开玩笑跟我说“傻哥,这事搞成,你们可以下岗了”。

    首先,我找到我们分管领导,提出我的想法,领导是技术出身,还是比较支持,我首先跟我们团队的人一起选择合适的自动化测试工具,后面确定了使用QTP。然后我开始招聘合适的自动测试工程师。

    然后我们确定自动化测试今年的目标建立适合自己公司的自动测试框架,并明确了三个里程碑分别是7月份之前应用三个项目,10月份完成公司所有业务脚本,12月整理出初步的自动化测试框架。目前已完成了第一里程碑已在四个项目中应用。

    第一个里程碑我们是这么操作,我选择了一个业务相对简单的项目开始,同时自动测试小组同步安排培训课程(QTP入门,QTP在项目中应用碰到的问题)。由于我们产品开发语言的特殊性(PB),碰到很多很怪的问题,这些问题连在国外的专业网站也找不到。好几次小组人员都在抓狂之中,有好几次都想放弃。但是我觉得我必须坚持,不然开发组不仅要笑话我,也会笑话我们整个部门。 这种事绝对不能发生,我们碰到问题的时候,三个人关在小会议室,叫上项目的业务测试组长,后面发现有很多问题技术层面解决不了,业务层面可以解决。如果业务层面解决不了换个思路,发现也解决了,兴奋中。

    第二里程碑现在已开始,我们选择了公司主要业务进行录制,并对前面四个项目整理并都进行配置管理,分成开发库和基线库。并对公司原有测试岗位标准都进行修改,加进了自动化测试能力的要求。

    第三里程碑计划是根据积累的脚本和经验,对一些公用功能进行函数化,对部分功能脚本模块化,可以自定义业务流程的组合。对一些功能模块进行测试数据分离,进行一些原始数据和动态数据进行控制。初步建立一套具有自己公司特色的自动化框架。

  • LoadRunner录制Smtp和Pop3协议时没有生脚本解决方法(BSTT群内故事)

    2010-07-14 15:47:09

    昨天一位群友在BSTT中说到录制Foxmail选择SmtpPop3协议时没有生脚本,以前我没有录制这两个协议,中午休息的时候,我刚开始用Foxmal选择SmtpPop3协议试了一下Recording中提示有Events但是就是没有生成脚本,选择Outlook 也是如此。个人觉得LR不可能这么弱吧,网上找找,也没写的很详细的,但是我找到一个关键词Port Mapping,设置了一下Ok了,脚本生成了,具体设置如下。

    1.     点击Start Recording

    2.     点击Options,选择Port Mapping

     

    3.     点击New Entry

     

    l  Target Server:编写发送邮件服务或接收邮件服务地址跟Foxmail中一致。

    l  Port:Smtp默认端品为110,Pop3默认端口为25,根据情况修改。

    l  Services ID:根据需要选择SmtpPop3或其它服务协议。

     

     

  • 自动化测试,我知之见!(BSTT整理)

    2010-06-28 10:14:04

    最近我一直在研究自动化测试方面的内容,几个项目也在应用,通过各种反馈和自己对自动化的理解,总结了这么几条。

    1.     我们必须使用自动化,但不能依赖自动化。

    测试技术日新月益,如果一个从事三年以上的测试工程师对自动化测试一窍不通,那也是白混了。但是最近发现我周围的人对自动化测试出现两个极端,一种是自动化测试解决所有问题,只要引用自动化,测试人员可以下岗了。另一种是自动化测试太麻烦了,还不如手工测试效率高。

    我们必须使用自动化测试,自动化测试是一种测试方法和一种手段,作为专业的测试人员必须掌握它,并在合适的时候使用它。千万不要出现在不管什么时候什么项目都要使用它,自动化测试是一测试方法,只要项目测试需要时选择它。

    2.     我们要让自动化工具做擅长的事情,而且要想办法让被测对象变成他擅长的事情。

    我们必须对所使用自动测试工具的特性要非常熟悉并发挥他的特长。如QTP他的优势是对象捕捉,数据处理不是强项,那边基础数据准备的事情就交给手工或其它工具。

    有时候我们也要意识的去改变一些东东让他变成自动化擅长做的事情。如一些大型的MIS系统很多的检查点都是判断数据是否新增成功,但是我个人认为QtP的数据检查点不是很好使用,但是他的标准检查点和文本检查点很好用,我们改造了我们软件,在所有数据检查点的地方我们自己增加了MsgBox

    3.     自动化测试必须全员参与,只有分工或参与重心不同,。

    我看了很多帖子都自动化测试必须有专门的人来做,我不是很赞成,可能跟我现在的团队规模有关。我个人认为当一个测试团队中自动测试人员只有23人时,只有分工不同或参与重心不同。

    产品测试组:负责业务分析,录制脚本,设置检查点,执行脚本。

    自动化测试组:工具选择,增强脚本,维护脚本,框架培训。

    4.     只有精通业务和手工测试,才能做好自动化。

    如果业务都不熟悉,或者手工测试都没有做过的人,能搞好自动化测试,你认为可能吗。

    5.     自动化测试必须长期应用,长期积累,长期维护完善。

    自动化测试最主要的特点是能重复利用,如何重复利用能,那就是让脚本灵活,如果灵活那脚本就需要结构化,框架化。如数据分离,功能函数化等。

    最后把我一个目前我们团队一个自动化测试的框架图分享给大家吧。

     

  • VBScript常用运算符介绍(BSTT整理)

    2010-06-21 15:13:47

    对两个数求和。 加法运算符 (+) 
    对两个表达式进行逻辑与运算。 And 运算符 
    将一个值赋给一个变量或属性。 赋值运算符 (=) 
    强制进行两个表达式的字符串连接。 连接运算符 (&) 
    两个数相除并返回一个浮点数值。 除法运算符 (/) 
    对两个表达式进行逻辑相等运算。 Eqv 运算符 
    将一个数定义为一个指数的幂。 指数运算符 (^) 
    对两个表达式进行逻辑蕴含运算。 Imp 运算符 
    两个数相除并返回一个整数值。 整数除法运算符 (\) 
    比较两个对象引用变量。 Is 运算符 
    两个数相除并返回余数。 Mod 运算符 
    对两个数求积。 乘法运算符 (*) 
    计算一个数值表达式的负值。 取反运算符 (-) 
    对一个表达式进行逻辑非运算。 Not 运算符 
    显示 VBScript. 中所用的多个操作符的优先权顺序的列表。 运算符优先权 
    对两个表达式进行逻辑或运算。 Or 运算符 
    计算两个数字之间的差别或者指明一个数字表达式的负值。 减法运算符 (-) 
  • VBScript常用语句介绍(BSTT整理)

    2010-06-21 15:08:57

    声明用于替换文字值的常数。 Const 语句 
    声明变量并分配存储空间。  Dim 语句 
    当某个条件为 True 时或在某个条件变为 True 之前重复执行一个语句块。  Do...Loop 语句 
    重新初始化固定大小的数组的元素和释放动态数组的存储空间。  Erase 语句 
    执行一条或多条指定语句。  Execute 语句 
    在一个脚本的全局命名空间中执行一条或多条语句。   ExecuteGlobal 语句
    退出 Do...Loop、For...Next、Function 或 Sub 代码块。  Exit 语句 
    重复地执行一组语句达指定次数。   For...Next 语句
    针对一个数组或集合中的每个元素重复执行一组语句。   For Each...Next 语句
    声明一个 Function 过程的名称、参数和代码。  Function 语句 
    根据一个表达式的值而有条件地执行一组语句。  If...Then...Else 语句 
    激活错误处理。  On Error 语句 
    强制显式声明一个脚本中的所用变量。  Option Explicit 语句 
    声明私有变量并分配存储空间。  Private 语句 
    声明一个 Property 过程的名称、参数和代码,该过程取得(返回)一个属性的值。  Property Get 语句 
    声明一个 Property 过程的名称、参数和代码,该过程指定一个属性的值。  Property Let 语句 
    声明一个 Property 过程的名称、参数和代码,该过程设置对一个对象的引用。  Property Set 语句 
    声明公共变量并分配存储空间。  Public 语句 
    初始化随机数生成器。  Randomize 语句 
    声明动态数组变量并在过程级别上分配或重新分配存储空间。  ReDim 语句 
    包括程序中的解释性说明。  Rem 语句 
    根据一个表达式的值,相应地执行一组或多组语句。   Select Case 语句
    将一个对象引用赋给一个变量或属性。  Set 语句 
    声明一个 Sub 过程的名称、参数和代码。  Sub 语句 
    给定条件为 True 时执行一系列语句。 .While...Wend 语句 
    对单个对象执行一系列语句。  With 语句 
  • QTP10.0使用Test Bach Runner工具后主菜单栏下拉菜单消失

    2010-06-12 14:26:00

    QTP10.0使用Test Batch Runner运行后,会造成QTP的菜单栏的下拉菜单为空,解决方法为:在菜单栏点击右键,选择“Customize”,在Customize窗口的ToolBarTab页,点击“Restore All”后即可。

  • Intel VTune性能分析器使用说明(BSTT整理推荐)

    2010-06-08 14:13:17

    Intel VTune性能分析器使用说明(BSTT整理推荐)
    英特尔® VTune™ 性能分析器工具,
    用于分析 C、C++、Fortran、C#、Java、.NET 等多种语言开发的程序

    详情请访问:http://www.51testing.com/index.php?uid-116976-action-viewspace-itemid-215185

  • [论坛] LR性能测试下oracle并发连接数问题!(BSTT群内故事)

    2010-05-28 17:29:04

       今天BSTestTeamQQ群里有一个朋友碰到一个问题,lr跑用户上班登记时。300并发,数据库和应用服务器的压力都不大,可是数据库中只跑进去了280条数据。查看错误日志原来是ORA-12519用记连接数问题!oracle10G默认连接数为150.也可以通过以sql语句查看修改。

    ----数据库允许的最大连接数
    select value from v$parameter where name = 'processes'
    -----修改最大连接数:
    alter system set processes = 300 scope = spfile;
    ----最后别忘重启数据库,不然修改内容不会马上生效和的:
    shutdown immediate;
    startup;

       那300用户并发,oracle最大连接数要设多少呢,那要看lr运行脚本是一次性运行,还是循环运行的,如果是一次性,并发300个用户可能不需要300连接,因为跑完一个用户连接就释放,但是要考虑连接超时问题了。如果是循环的那么300连接一直占着的。

      oracle连接超设置,在listener.ora中设置 ,这里的10指的是10秒!
      CONNECT_TIMEOUT_LISTENER   =   10

     

     

  • BSTestTeam的诞生和远景!

    2010-05-28 14:59:16

        我们测试团队通过不断的发展,现在已经12人枪了,今年我们也打算好好大干一场,组建独立的自动化测试团队,虽然现在只2.5人枪(我只能算半个人),但是我们最近发现,经常碰到一些问题,而且网上有很多人都在问同样的问题,有很多答案。但是很多答案我们花很长时间去验证,发现是无效,或者是没说清楚我没有理解透。
        我跟同事商量一下决定创建一个虚拟组织BSTestTeam(创业测试组)简称BSTT,重点负责将日常碰到的问题和解决方案用通俗的文字整理成文档大全,并让摘入大全的内容都是通过验证和有效的,并免费提供大家下载。希望测试方面的高手有志人士加入我们,创造一个类似开源代码的开源测试资料。QQ群:14926562  .

    BSTT宗旨:倡导测试开源,分享测试经验

  • Word复制网页内容↓替换成回车符方法

    2010-05-17 16:27:22

    复制网页内容到Word后最后出现↓符号这样替换成回车符,实际上拷到文本编辑是一种方法,但是如果有表格,有图片就麻烦了,今天要改的文章太长,查了一下有个很方便的方法!

    word替换功能:把^l都替换成^p

  • 如何关闭系统托盘里的windows安全中心?

    2010-05-17 09:17:03

    如何关闭系统托盘里的windows安全中心?每次系统启动时都弹出安全警报。
    1、完全禁用的方法是:
    打开“控制面板”
    打开“管理工具”
    打开“服务”
    找到名为“Security Center”的服务
    双击这个服务,打开属性设置。
    把启动类型设置为”已禁用”,然后点服务状态下的“停止”按纽停止这个服务。最后点确定退出。

    2、如果仅仅只是嫌它反复提示麻烦,就不要禁用了,可以把这个提示关闭掉:
    打开“控制面板”
    打开“安全中心”
    点击“更改安全中心通知我的方式”
    把不需要提示的复选框中的对勾取掉就行了。

  • MyEclipse 7.0中Javadoc汉化方法说明

    2010-05-14 08:50:06

    1.      http://download.developers.sun.com.cn/javadoc/jdk6/javase-6-doc-api-zh_CN.zip ,下载最新版的中文版API.

    2.      打开MyEclipse7.0 wind0ws->preferences->java->installed JRES

    3.      选中你安装的jre(如:JRE6),点击edit.

    4.      选中JRE system libraries中的rt.jar, 点击Javadoc Location

    5.      选中Javadoc in archive,archive path 选择你刚才下载的javase-6-doc-api-zh_CN.zip文件。

    6.      Path within archive 选择javase-6-doc-api-zh_CN.zip的文件夹,选择到API子文件夹。

    7.      OK以后就好了

     

1224/7<1234567>
Open Toolbar