发布新日志

  • LR学习随笔之--关于插入文本检查点的问题

    2007-06-21 15:03:09

    关于插入文本检查点的问题

    操作步骤LR指南手册:

    1 打开内容检查向导。

    确保显示任务窗格(如果没有,请单击任务按钮)。在任务窗格的增强功能

    标题下,单击内容检查

    将打开内容检查向导,显示脚本中每个步骤的缩略图。

    选择右窗格中的页面视图选项卡以显示缩略图的快照。

    2 选择包含要检查文本的页面

    单击第一个名为 MercuryWebTours 的缩略图。

    3 选择要检查的文本

    突出显示快照内的文字欢迎使用。选中该文字后,右键单击并选择添加文本检

    (web-reg-find)

    4 查看新步骤

    在树视图(视图> 树视图)中,您将看到 VuGen 在脚本中插入了一个新

    步骤服务: 注册查找。此步骤将注册文本检查棗LoadRunner 将在运行步骤后检

    查文本。回放期间, VuGen 将查找文本欢迎使用并在回放日志中指示是否找到。

    问题按照此步骤出现了问题:

    在第一步右键点击‘添加文本检查点’时报错。

    按照提示内容为:文本检查不能以这种方式创建,要创建文本检查,切换到服务响应视图,展开主节点,右键再点击想检查的文本然后进行操作

    分析:在树视图中有三种视图类型,page view(页面视图),client request(客户端请求视图),server response(服务器端响应视图)

    那么在这三个视图中只有page view是可以看到截屏的,也意味着如果按照上述的提示操作是不可能实现的(既在页面中找到需要检查的文本这个操作只能在page view中实现)

    解决方法:选择你所要检查的页面,操作 插入->新步骤->web checks->text check

    进入“文本检查属性”页面,在search for栏输入你所要检查的文本,也可以在“之前”“之后”两栏选择你所要检查的文本内容。

    注意在运行文本检查和图像检查的时候,一般未开启“启用图像和文本检查”,因为对图像的检查将耗费大量的内存。

    应该要开启Vuser->run-time settings

    然后选中preferences中的“启用图像和文本检查”。

  • Bug OPEN & CLOSE趋势图(转)

    2007-05-24 16:15:06

    Bug OPEN & CLOSE趋势图

    字体:        | 上一篇 下一篇 | 打印

        众所周知,对于测试过程中发现的缺陷进行收集、分析和统计,是一项很重要的工作

        通过分析,我们可以及时了解产品的质量情况,判断测试过程中存在一些什么问题。

        在此推荐一种Open & Close 趋势图,它绘制简单,容易看出一些问题,适合测试经理和高层领导及时了解某一产品的测试情况。

        一、初始OPEN & CLOSE 趋势图

    解析:

    ——X轴:由若干个自定义的均匀的时间点组成;

    ――Y轴:缺陷的数量;

    ――ALLOPEN:所有被发现(打开)的缺陷数量。(这是一个按时间点的累计值)

    ――ALLCLOSE:所有被关闭的缺陷数量。(这是一个按时间点的累计值)

    ――此外,可以添加DaillyOpen和DailyClose曲线,但是否添加,对我们的影响不大;

    二、此时可以同意产品发布吗?

        当ALLOPEN和ALLCLOSE两条曲线刚好汇集在一起时,应该是把把所有OPEN的问题都已经CLOSE了。但此时仍然存在风险,因为对于最新的这个版本,我们只完成了回归,还需要一些时间再进行最后一轮(甚至几轮)系统测试;

     

    三、无休止了?

    解析:

    出现以上曲线时,可以有几种判断:

    ――1、激战正酣,研发和测试的效率都比较高;(两条线都呈上升趋势)

    ――2、产品代码质量不高,所以存在大量问题?(导致ALLOPEN一直走高)

    ――3、大量已关闭的问题又被打开了?(导致ALLOPEN一直走高)

    ――4、测试经理把关不严,导致重复提单?(所以ALLCLOSE一直走高)

    此时,需要测试负责人介入,找出问题所在;

     

    四、好像有些难改的问题?

     

    解析:

    出现以上曲线时,我们可以判断:

    ――1、发现(打开)和关闭的问题都比较少了,是不是研发和测试的效率有问题?(两条线没有汇集,区间还比较大,但是都很平)

    ――2、效率受到影响,是不是因为有很严重的技术难题?(导致了研发改错的进度受到影响,ALLCLOSE曲线很平)

    ――3、而且这个技术难题影响了测试进度?(导致测试发现问题的进度受到影响,ALLOPEN曲线很平)

    此时需要测试负责人介入,找出问题所在;

     

    五、理想情况

    解析:

    出现以上曲线,我们可以判断:

    ――ALLOPEN和ALLCLOSE曲线已经汇集,并且持续了一段时间,此时的产品质量比较稳定,可以批准正式对外发布了;

     

    这就是ALLOPEN和ALLCLOSE趋势图的几种典型状况解析,它有利于我们在测试过程中及时观察现象,做出判断,发现并解决问题。通过对过程的监控来降低产品质量风险。

    转载需注明出处:51testing软件测试博客

    http://www.51testing.com/?3687/action_viewspace_itemid_10817.html

  • 使用五个安全测试步骤来保护你的应用程序(转)

    2007-05-24 16:05:59

    使用五个安全测试步骤来保护你的应用程序 2007-05-24 来自:kevin_2006  [收藏到我的网摘]

    你可以不必找一个黑客或者解密高手来测试你程序的安全性,也不需要购买一大堆昂贵的黑客工具。但是,你必须有一套处理过程来发现潜在的问题。如果遵从我下面详细介绍的五个处理步骤,你就可以轻松发现一般的开发缺陷。而且一旦发现了这些缺陷,就可以减轻或消除他们。

    步骤一:端口扫描

    你需要做的第一件事是在客户端和服务器端进行一次端口扫描,找出那些打开但并不需要的通讯端口。各种服务如FTP、NetBIOS、echo、gotd等使用的端口是引起安全问题的典型因素。对于TCP和UDP端口来说,根据经验通常的做法是:关掉任何程序运行所不需要的服务或监听器。

    端口扫描被用来检测目标系统上哪些TCP和UDP端口正在监听,即等待连接。大多数的计算机默认地打开了许多这样的端口,黑客和破解者经常花很多时间对它们的目标进行端口扫描来定位监听器,这是他们开始攻击的前奏。一旦这些端口都被鉴别出来,要使用它们也就不困难了。

    端口扫描工具,通常叫端口扫描器,很容易在Internet上找到。其中很多是基于Linux的。例如Namp、Strobe、Netcat是比较好的一类。我最喜欢的基于Linux的端口扫描器是Nump。也有许多基于Microsoft Windows的端口扫描器,其中我最喜欢的是Ipswitch的WS Ping ProPack。WS Ping ProPack是一个低开销、多用途的网络问题定位工具,它将许多功能包装成简单易用的形式。

    有了端口扫描器后,对全部TCP和UDP端口进行一次完整的检查来确定哪些端口是打开的。将监测到的打开的端口与系统运行所需要用到的端口进行比较,关闭所有没有用到的端口。在Microsoft操作系统中关闭端口经常需要重新配置操作系统的服务或者修改注册表设置。UNIX和Linux系统就简单一些:通常只是将配置文件中的某一行注释掉。

    步骤二:检查用户帐户

    接下来,需要将目光转移,看看操作系统、任何数据库以及程序自身,特别注意guest用户帐户、默认账户或者简单密码账户以及不需要的用户ID。之所以需要这样做是因为大多数的默认设置留下了许多漏洞,创建了多余的账户,它们可能会被用来危及系统的安全。这种情况在使用数据库系统如Oracle或Web服务器如Microsoft Internet Information Services (IIS)时特别突出。

    我曾经通过使用本不该存在或应被禁止的用户ID和密码登陆进入过许多路由其、数据库和应用程序中。例如,若干年前,在测试一个简单的Web应用程序时,我尝试用Guest 账户ID和空密码登陆进系统。很出乎我的意料,程序很爽快地将Guest作为合法用户并允许我登陆。然后我又试了几个其它的账户,如输入用户ID和密码为空/空或管理员/管理员,结果都成功了。

    有了这次经验,我总是在软件安装手册的每一章寻找默认的账号和密码。我建立了一份这些默认账号和密码的列表,以确保能够把找到过的都试试。对于程序本身我也这样做,建立一份由程序员创建的测试用户帐户,也把它们试试。

    测试这些东西能够帮助发现危害系统的途径,禁用和删除不必须的账户是一种消除找到的缺陷的一种方法。对于通讯端口也有一个相似的方法:禁用任何系统运行所不需要的用户ID。如果某个用户ID不能被禁用,那么至少改变它的默认密码,使其不易被破解。

    你会问,怎样才算一个好的密码?它地长度至少为六到八个字符,并含有一个特殊字符。密码必须足够长,以使其不易被破解,但是必须能够容易记住——这是难以两全的。我喜欢使用缩写词或者容易记忆的设备。千万别用任何易猜的单词或习语,这是一个常见的密码失误。同样的,不要使用字典中的单个词语。我记忆最深刻的差密码之一是ROLLTIDE,这是我在

    阿拉巴马州大学一台被丢弃的机器上发现的(这所大学运动队的昵称是Crimson Tide)。

    步骤三:检查目录许可

    在关闭了无用端口并禁用了多余的账号后,仔细检查一下程序所用到的数据库和服务器目录的权限设置。很多攻击利用了配置失误的权限,这种方法经常被用来攻击Web服务器。

    例如,使用CGI脚本的Web站点有时允许写访问。通过它,一个恶意的供给者可以很简单地在CGI二进制目录下放置一个文件。然后他就能够调用这个脚本文件,Web服务器会运行它,典型地在管理员权限下。能够写并执行脚本是非常危险的,要开放这些权限应该格外小心。

    另一个例子,几年前,我给一个安全实验室里的一个非常重要的系统作测试。通过配置失误的权限,我可以在很短的时间内破坏整个实验室以及所有17个被认为是安全的机器。在端口扫描之后,我发现每个服务器都运行了一个FTP监听器,而且每个都允许匿名访问,使得我可以访问每个服务器系统。

    FTP监听器给了我对每台机器上真正存放密码文件的访问权限,真是一个巨大的配置失误。由于权限如此设置,我不仅可以下载存放密码的文件,而且可以通过把密码文件中的密码修改后再上传给服务器覆盖源文件而使这些用户“中毒”。当然我将自己授予了root访问权,从而取得了机器的管理员权限。

    如果正确地设置了目录权限,我就不能访问被指定给匿名用户使用的FTP目录以外的任何东西。因此,我本不能够得到真正存放密码的文件,更别提将其替换了。当然,如果他们曾经做过任何自己的端口扫描,就像我在步骤一里提到的,那么用这种方法我将哪里也到不了。

    步骤四:对数据库也进行和上面同样的设置

    文件系统不是唯一因权限设置不当而会受到攻击的对象。大多数的数据库系统有很多安全漏洞。它们的默认权限设置通常不正确,如打开了不必要的端口、创建了很多演示用户。一个著名的例子是Oracle的演示用户Scott,密码为Tiger。加强数据库安全的措施与操作系统一样:关闭任何不需要的端口、删除或禁用多余的用户,并只给一个用户完成其任务所必需的权限。

    步骤五:关上后门

    你对必须经过几个步骤来测试被应用程序包装得很深的功能感到厌倦了吗?能够建立一个直观的快捷方式吗?其实大家都这么想。问题在于这些快捷方式——也被叫做后门,经常被忽略或遗忘,而有时它们又会不经意地连同应用程序一起被发布。任何严格的安全测试程序都因该包括检查程序代码中不经意留下的后门。

    另一个真实的因后门而引发安全问题的例子是Solaris操作系统的早期版本的[Ctrl]K错误。上世纪90年代早期的Solaris用户只需以一般用户身份登陆并按两次[Ctrl]K就可以获得root权限。

    为了寻找后门,必须完整地检查源代码,查找基于非预期参数的条件跳转语句。例如,如果某个程序是通过双击图标而被调用的,那么要确保代码不会因为从命令行用特殊参数调用而跳转到某个管理或特权模式。

    --------------------------------------------------------------------------------

    安全测试是正常 软件测试的一部分吗?
    你所在的单位会例行对新的应用程序进行安全测试吗?为了确保一个应用程序是安全的你会采取哪些处理过程和方法?将你的意见寄给我们,我们会在以后进行讨论。

    --------------------------------------------------------------------------------

    同基础测试一样,安全测试必须系统的进行,以上五个步骤为此提供了系统化的方法。在依其行事之前,你可以对你的系统进行基础的安全测试而不必招致巨大的花费。这个方法不会使你一夜之间变成一个安全专家,但是只要你理解所要测试的系统,它会帮助你了解基础的安全知识。如果想确保你的系统比较安全,或者使黑客和解密组织把你的系统作为目标的机会更小的话,那就按照这些步骤来做吧。

  • 一个关于SQLserver2005登录的问题

    2007-05-21 11:03:25

    MSDN演练时发现的SqlServer2005数据库连接问题 (转)

    演练:网页中的基本数据访问
    ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_vwdcon/html/6c77d50c-7a1c-46ef-9ffe-2b8a6f54b1ab.htm

    主要过程:
            1.在 Visual Web Developer 中,切换到“设计”视图中。
            2.从“工具箱”的“数据”文件夹中,将 GridView 控件拖动到页面上。
            3.如果未显示“GridView 任务”快捷菜单,则右击 GridView 控件,然后单击“显示智能标记”。
            4.在“GridView 任务”菜单上的“选择数据源”列表中,单击“<新建数据源>”。
    出现“数据源配置”对话框。
            5.单击“数据库”。
    这将指定您要从支持 SQL 语句的数据库中获取数据。此类数据库包括 SQL Server 和其他与 OLE-DB 兼容的数据库。
    在“为数据源指定 ID”框中,将显示默认的数据源控件名称(“SqlDataSource1”)。可以保留此名称。
            6.单击“确定”。
            7.随即会显示“配置数据源”向导,其中显示了一个可在其中选择连接的页面。
    单击“新建连接”。
            8.在“选择数据源”对话框的“数据源”下,单击“Microsoft SQL Server”,然后单击“继续”。
    即出现“添加连接”对话框。
            9.在“服务器名”框中,输入要使用的 SQL Server 的名称。
            10.在登录凭据中,选择可用于访问 SQL Server 数据库的选项(集成安全性或特定的 ID 和密码),并在需要时输入一个用户名和密码。
            11.单击“选择或输入数据库名”,然后输入“Northwind”。
            12.单击“测试连接”,并在确定该连接生效后单击“确定”。
    随即会显示“配置数据源 - <DataSourceName>”向导,其中填充了连接信息。
            ……

            就是第12步单击“测试连接”出了问题,提示错误:
            在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)
            这个问题以前也遇到过,解决了,可是不知道为什么又出来。解决方法如下:
            1.服务器如果开了防火墙,把它关闭
            2. 开启sql2005远程连接功能,开启办法如下,
            配置工具->sql server外围应用配置器->服务和连接的外围应用配置器->打开MSSQLSERVER节点下的Database Engine 节点,先择"远程连接",接下建议选择"同时使用TCP/IP和named pipes",确定后,重启数据库服务就可以了.
            3.登陆设置改为,Sql server and windows Authentication方式同时选中,具体设置如下:
            Management Studio管理器->windows Authentication(第一次用windows方式进去),->对象资源管理器中选择你的数据服务器--右键>属性>security>Sql server and windows Authentication方式同时选中.
            4.设置一个Sql server方式的用户名和密码,具体设置如下:
            Management Studio管理器->windows Authentication>new query>sp_password null,'sa123456','sa' 
            这样就设置了一个用户名为sa ,密码为:sa123456的用户,下次在登陆时,可以用Sql server方式,
            用户名为sa ,密码为:sa123456的用户进数据库了.
            5.做完上面三步后,这样写连接字符串就可以顺利进入数据库了,
            (server=.\\sqlexpress;uid=sa;pwd=sa123456;database=master");
            后来用这个管理器才发现,正确的Server名是这样的,机器名\SQLEXPRESS而不是LOCALHOST,127.0.0.1,FANCYBOY(机器名)比如我的是这样的
            Server:FANCYBOY\SQLEXPRESS

            原来的是:Server=localhost;database=user;uid=sa;pwd=''
            现在的是:Server=.\\SQLEXPRESS;database=user;uid=sa;pwd=''
            还找到了另外一个可能的解决方法:
            1.打开IIS属性-》虚拟目录属性-》选Net 2.0-》点‘编辑配置’-》删除所有连接SQlexpress的项
    当然,最好连全局的配置也删除,
             2.打开IIS属性-》站点属性-》选Net 2.0-》点‘编辑全局配置’
    -》删除所有连接SQlexpress的项
             所有的设置都试过了,问题依然存在!到底为什么?难道是传说中的人品问题???
     
    分析总结
    在使用了本地服务器作为数据库服务器,使用了sa密码验证,必须在数据服务器中更改登录的模式(如解决 步骤3),这往往是大家容易忽视的一个问题。在使用了SQLserver登录模式的情况下,却未更改数据服务器的登录模式,从而报错。
    另一个SQL2000与SQL2005的sa密码设置问题,在SQL2000中sa用户的密码可以设置为空,这已经成为一种受黑客攻击的漏洞,SQL2005中sa用户的密码是不可以设置为空的。
  • 一位前辈工程师职业发展的忠告(转)

    2007-05-18 10:05:14

    一位前辈工程师职业发展的忠告

    字体:        | 上一篇 下一篇 | 打印

    1]好好规划自己的路,不要跟着感觉走!根据个人的理想决策安排,绝大部分人并不指望成为什么院士或教授,而是希望活得滋润一些,爽一些。那么,就需要慎重安排自己的轨迹。从哪个行业入手,逐渐对该行业深入了解,不要频繁跳槽,特别是不要为了一点工资而转移阵地,从长远看,这点钱根本不算什么,当你对一个行业有那么几年的体会,以后钱根本不是问题。频繁地动荡不是上策,最后你对哪个行业都没有摸透,永远是新手!

    可以做技术,切不可沉湎于技术。千万不可一门心思钻研技术!给自己很大压力,如果你的心思全部放在这上面,那么注定你将成为孔乙己一类的人物!适可而止为之,因为技术只不过是你今后前途的支柱之一,而且还不是最大的支柱,除非你只愿意到老还是个工程师!

    [3]不要去做技术高手,只去做综合素质高手!在企业里混,我们时常瞧不起某人,说他“什么都不懂,凭啥拿那么多钱,凭啥升官!”这是普遍的典型的工程师的迂腐之言。

    很牛吗?人家能上去必然有他的本事,而且是你没有的本事。你想想,老板搞经营那么多年,难道见识不如你这个新兵?人家或许善于管理,善于领会老板意图,善于部门协调等等。因此务必培养自己多方面的能力,包括管理,亲和力,察言观色能力,攻关能力等,要成为综合素质的高手,则前途无量,否则只能躲在角落看示波器!技术以外的技能才是更重要的本事!!从古到今,美国日本,一律如此!

    [4]多交社会三教九流的朋友!不要只和工程师交往,认为有共同语言,其实更重要的是和其他类人物交往,如果你希望有朝一日当老板或高层管理,那么你整日面对的就是这些人 。了解他们的经历,思维习惯,爱好,学习他们处理问题的模式,了解社会各个角落的现象和问题,这是以后发展的巨大的本钱,没有这些以后就会笨手笨脚,跌跌撞撞,遇到重重困难,交不少学费,成功的概率大大降低!

    [5]知识涉猎不一定专,但一定要广!多看看其他方面的书,金融,财会,进出口,税务, 法律等等,为以后做一些积累,以后的用处会更大!会少交许多学费!!

    [6]抓住时机向技术管理或市场销售方面的转变!要想有前途就不能一直搞开发,适当时候 要转变为管理或销售,前途会更大,以前搞技术也没有白搞,以后还用得着。搞管理可以培养自己的领导能力,搞销售可以培养自己的市场概念和思维,同时为自己以后发展积累庞大的人脉!应该说这才是前途的真正支柱!!!
    [7]逐渐克服自己的心里弱点和性格缺陷!多疑,敏感,天真(贬义,并不可爱),犹豫不决,胆怯,多虑,脸皮太薄,心不够黑,教条式思维。。。这些工程师普遍存在的性格弱点必须改变!很难吗?只在床上想一想当然不可能,去帮朋友守一个月地摊,包准有效果 ,去实践,而不要只想!不克服这些缺点,一切不可能,甚至连项目经理都当不好--尽管你可能技术不错!
    [8]工作的同时要为以后做准备!建立自己的工作环境!及早为自己配置一个工作环境,装备电脑,示波器(可以买个二手的),仿真器,编程器等,业余可以接点活,一方面接触市场,培养市场感觉,同时也积累资金,更重要的是准备自己的产品,咱搞技术的没有钱 ,只有技术,技术的代表不是学历和证书,而是产品,拿出象样的产品,就可技术转让或与人合作搞企业!先把东西准备好,等待机会,否则,有了机会也抓不住!

    [9]要学会善于推销自己!不仅要能干,还要能说,能写,善于利用一切机会推销自己,树 立自己的品牌形象,很必要!要创造条件让别人了解自己,不然老板怎么知道你能干?外面的投资人怎么相信你?提早把自己推销出去,机会自然会来找你!搞个个人主页是个好注意!!特别是培养自己在行业的名气,有了名气,高薪机会自不在话下,更重要的是有合作的机会...

    [10]该出手时便出手!永远不可能有100%把握!!!条件差不多就要大胆去干,去闯出自己的事业,不要犹豫,不要彷徨,干了不一定成功,但至少为下一次冲击积累了经验,不干永远没出息,而且要干成必然要经历失败。不经历风雨,怎么见彩虹,没有人能随随便便成功

  • 从程序员到测试工程师(转贴)

    2007-05-16 11:01:40

    从程序员到测试工程师(转贴)




    这篇是2002年底《程序员》杂志上的一篇文章,虽然时间早了点,但值得一看。
    ------------
    前言:软件测试一门非常崭新的学科,目前研究的内容还很不深入,仍然处于婴儿阶段。软件测试需要什么样的专业基础还没有定论,而且目前还没有一种很好的标准来衡量测试人员。但无可置疑,软件测试越来越受到软件公司的重视,软件测试工程师的作用也逐渐被人们所认可。这一点已经在像微软这样的国外大型软件企业中所证实,在微软,一个开发人员相对应着一至两个测试人员。现在,就让我们走近软件测试工程师,关注他们的成长之路。

    从程序员到软件测试工程师

    特别策划/本刊编辑部 撰文/闫辉

    国内软件公司对软件测试的态度令人担忧。软件测试工程师不足,开发测试人员比例不合理。据调查,最好的企业中测试人员和开发人员的比例是1:8,有的是1:20,甚至没有专职的测试工程师。

    曾经参与微软Windows95、Exchange Server4.0和4.5、Internet Explorer 4.0和5.0、SQL Server 2000开发与测试工作陈宏刚博士尽管已经升任微软亚洲研究院商务及高校关系高级经理,但仍然对国内软件测试水平的落后深有感触。

    国内很多企业还处在探索阶段,小企业的运作方式造成其主要精力是要尽快完成初始资本积累。有些企业也了解软件测试的重要性,很努力、很认真的在学,但因为很多原因而学不到精髓,不知道如何去做。于是只能局限于书本上学来的简单的黑箱、白箱测试而已。很多人知道有压力测试和性能测试,但针对产品具体如何去做就不清楚了。

    陈宏刚表示,重视测试首先需要有开放性的软件文化,而在很多公司中,测试工程师只是绝对服从的听命角色,没有开发他们的积极性和创造性。一些管理人员对软件开发的流程管理经验不足,仍然用传统企业的方法进行管理,再加上对软件质量的控制理解不对,认为编完程序经过简单的程序员自己测试就可以使用了,而没有认识到软件测试是控制质量最好的方法。

    不过,国内还是有一些大型公司和专业公司已经在软件测试方面走上正规。1994年开始接包IBM软件测试项目,1999年软件测试成为公司主体软件外包业务之一的和腾软件就是其中之一。因为客户就是IBM这样的大型软件公司,腾软件高级副总裁刘忠表示,它们在软件测试管理上,经同国外的公司相差不大,同时也研究和应用了多种软件测试技术。

    软件测试工程师

    一提到软件测试工程师,很多人就会想到那些反复使用软件,试图在频繁操作中寻找到错误发生的低层次人员或者软件用户。其实这是一种错误的概念,软件测试早已超越了用户使用来发现Bug的基本测试阶段。

    陈宏刚介绍说,微软的软件测试工程师分为三种:测试执行者(Basic Software Tester)、测试工具软件开发工程师(Software Development Engineer in Test)和高级软件测试工程师(Ad_hoc Tester)

    测试执行者负责理解产品的功能要求,然后根据测试规范和测试案例对其进行测试,检查软件有没有错误,决定软件是否具有稳定性,属于最低级的执行角色。

    测试工具软件开发工程师负责写测试工具代码,并利用测试工具对软件进行测试;或者开发测试工具为软件测试工程师服务。产品开发后的性能测试、提交测试等过程,都有可能要用到开发的测试工具。对技术要求最强的是这些人,因为它们要具备写程序的技术。“因为不同产品的特性不一样,对测试工具要求也是不同的,就像Windows的测试工具不能用于Office,office的也不能用于SQLserver,微软很多测试工程师就是负责专门为某个产品写测试程序的。”

    而Ad_hoc Testet属于比较有经验,自己会找方向并做的很好的测试工程师,这要求具有很强的创造性。刚进入微软时,老板也是只给陈宏刚一个操作流程,每天就按照这个规程去做,几天下来,一个Bug都没有发现。陈宏刚也很沮丧,觉得这样挺对不起公司,后来自己问自己:为什么非要这样做!于是换了其他的方法试试,令他吃惊的是,一下就找到很多严重的Bug,当时也不敢声张。有一天,他找到10多个非常严重的Bug,开发经理一下就惊呆了,怒冲冲的跑到陈宏刚面前问:“你是不是改变了测试方式和测试步骤?”陈宏刚有些吓住,说道:“可能改变了一点。”对方说:“我非常生气,但我不是生你的气,而是因为以前测试人员水平太差,或者以前的测试方面有问题,软件中有些Bug存在了半年甚至一年,但直到现在才发现,现在修补这些错误要困难很多!”后来陈宏刚得到了老板的赞许,可以按照自己的想法去做测试。对此,陈宏刚感受颇深:“一方面我体会到了微软非常鼓励创造的文化,同时也感到只遵守教条不是好的测试人员,就和用户一样了。做软件测试工程师同样需要开拓和创造性。”

    在开发管理上,测试不应该归属于项目管理,也不应该归属开发人员。这三个部门应该是并驾齐驱,相互协作,测试工程师最终决定产品是否能够发布。

    软件测试工程师的素质

    因为软件测试仍然处在发展阶段,还没有上升到理论层次。对人员的评测,包括微软在内,都还没有一个统一标准,因此评定软件测试工程师只能根据工作实践进行自然淘汰。

    软件测试对逻辑思维、学习能力、反应要求很高,是否有严密的思维和逆向思维也非常重要。陈宏刚介绍说,在五六个人的测试小组时,一半以上的Bug都是他找到的。他认为这同自己数学专业的背景关系密切,数学中有逻辑思维的培训,要善于找出来各方面的因素。比如要证明一个定理,各个方面都考虑到,一个条件不满足就无法证明;但如果证明其不成立,最常用的就是找到一个反例,只要有一点证明不成立就可以了,软件测试也是找这一点。

    做测试还要考虑到所有出错的可能性,还要做一些不是按常规做的、非常奇怪的事。除了漏洞检测,测试还应该考虑性能问题,也就是要保证软件运行得很好,没有内存泄漏,不会出现运行越来越慢的情况;在不同的使用环境下,考虑软件的兼容性同样重要。软件测试同产品的规模也有很大的关系,因为软件的bug往往出在大型软件的连接处。

    做软件测试工程师需要对软件抱有怀疑态度。这是因为开发人员喜欢想当然,总是找一些有利于自己程序执行的数据,有些开发人员甚至认为不利于程序执行的数据是对代码的玷污和亵渎。而软件测试却要策略性的准备各种数据,从每个细节上设计不同的应用场景,不去想当然的假定任何一个数据是可行的。

    在职业素质和交际方面方面,并不是测试工程师爱挑别人毛病才好,反而这个工作要求很强的沟通能力。经常的和开发人员进行沟通,说话办事要很得当,不能指责别人,否则会事倍功半。性格随和才能和开发人员顺畅的沟通,对人和对事是完全不同的两个问题。

    如何培养优秀的软件测试工程师

    朗川软件测试工程师张建阳从北大力学系毕业之后,曾开发流体力学分析软件,软件缺少测试而产生的问题给她留下了很深的印象。后来去大唐电信做UIM(统一消息管理系统),她发现尽管公司为了鼓励员工找bug采取了很多奖励方法,但还是很少人愿意去做系统测试。而张建阳却从那时查阅翻译了很多国内外的资料,对软件测试产生了浓厚的兴趣。

    像张建阳这样在工作中自己定位在软件测试领域的开发人员并不多见,因为程序员更愿意去做开发而不是测试,从大环境上,测试人员收入水平低也是原因之一。而在微软,测试人员和开发人员的工资水平是相同的。

    如何改变这种现状呢?有人说可以可以派人去先进的国外软件企业学习,但这种方式因为牵涉到商业秘密,可操作性不大。陈宏刚博士认为更好的方法是引进人才,把在国外大型软件公司工作过、有经验的人才引进来,甚至要高薪聘请。他表示,这不仅仅是一个人的问题,关键是能够把整个软件测试的水准提高一个层次。

    引进人才只是开始,更重要的是培养一批软件测试人才。软件开发的教育培训都是比较正规的,各个学校也都设有专业,但软件测试还没有正规的专业毕业生,而且没有评判的标准。陈宏刚博士给很多软件学院建议,开设四方面的软件测试专业基础课:软件测试基础、软件测试开发、高级软件测试案例和行业软件特色测试方法。国内现在已经有了一些软件测试基础的教材,但其他的教材还没有。高级软件测试案例主要是大型软件测试案例,大型软件出现的问题具有很强的代表性。而行业特色软件测试的课程可以开阔学生的视野。陈博士介绍说,在国外,也是极少的高等院校开设测试专业,但可以借鉴民间的培训机构课程。在有一批专业的测试人才出现之后,人们会认识到他们的重要性。

    如果你已经开始从事软件测试工作,千万不要认为软件测试没有什么发展的潜力和前途。刘忠从1995年接下IBM的OS2汉化版本的测试开始到现在,他一直工作在软件测试领域,并升到了公司高级副总裁的位置。和腾软件也培养了一批测试工程师,它们从对测试职业将信将疑到明确自己的测试方面的职业目标。刘忠介绍说:“很多人开始做测试执行工作时会说很麻烦、很枯燥,只是一味的埋怨,而不是主动的去学习,他没有看到软件测试背后所隐藏的知识。因为学习可以做这些工作,不学习也可以做这些工作,但质量是不同的。有些人自学和请教了很多测试技术和管理方面的知识,公司自然就会在下个项目中去培养他。”

    因此对于一个新手,要在各方面培养自己的能力。首先是要理解各种测试流程,并在理解的基础上转化为自己的知识,以后遇到相似的问题能自己去解决。在测试技能上,要知道测试有那些手段,比如压力测试有哪些方法,哪些工具可以辅助做测试。从专业技能上,面向不同的技术方向,像操作系统、网络、通信等都要从专业上深入了解。这三方面要同步去成长。

    软件测试工程师未来的发展

    从事软件测试有没有前途,未来的职业发展方向怎样呢?

    陈宏刚博士表示,软件测试工程师在微软的发展有几种途径:一种走技术路线,成长为高级软件测试工程师,这时他能够独立测试很多软件,再向上可以成为软件测试架构设计师。第二种就是向管理方向发展,从测试工程师到组长(Lead),再到项目经理(Manager),到更高的职位。第三种可以换职业,做项目管理,做开发人员都可以,很多测试工具软件开发工程师在写测试软件的过程中,因为开发方面积累了经验,同时对软件产品本身产生了自己的看法,很容易转去做产品编程。

    陈宏刚博士现在还带着一个测试小组,两个清华软件学院的学生,一个南开的专门做软件测试的博士生,一个北邮的学生,他们负责总部一个产品的测试。陈博士表示,在自己简单的讲讲思路,共同探讨之后,他们一星期就找出了70多个Bug,也感觉学了很多知识,并表示以后专注于软件测试专业,因为他们感觉软件测试真的是一门很深的学科,有很多可以研究的课题。其实微软的测试人员很多也都是硕士、博士,他们同样在做创造性的工作,保证着程序质量,推动着软件的进步。

    软件测试是正在快速发展,充满挑战的领域。尽管现在单机版桌面软件的测试已经成熟了很多,但对于网络时代的到临,包括微软在内的公司对基于网络的测试也没有一套完整的体系,也是处于探索中,网络中被攻击的可能性太大,这就是为什么黑客在网络上能兴风作浪的原因。网络测试是一个新环境,而且是很大的挑战。

    软件测试未来的发展空间很大,软件测试工程师的职业之路同样充满希望。

    李维谈软件测试

    记者:台湾的软件测试工程师的地位如何?

    李维:就我知道的几个案例来说, 地位很低。许多公司不是没有专职的测试机制,就是老板认为不重要。许多老板还认为直接让客户测试即可,实在不可思议。

    记者:测试工程师的人员比例也很小吗?

    李维:是的, 大概6-8位工程师配一个测试人员,不过有的是以产品线来分的。

    记者:台湾有专业的测试培训教育吗?

    李维:据我所知, 沒有。

    记者:依您的看法,软件公司如何才能重视软件测试呢?

    李维:台湾国际级的软件公司如友立、趋势才重视测试。如果是短视的软件公司,由于许多老板不是资讯出身,所以不了解软件工程的重要。要重视软件测试,负责研发的头头必须有明确的认识。许多软件人员知道使用OO或者SD的方式设计软件,却不知对于测试也同样的需要事先设计并规划测试计划,这实在好玩。

    记者:borland公司测试人员情况如何?

    李维:Borland有不同的测试人員, 针对不同的产品。专职的测试人员大约有50-60人,测试人员占研发人数的30-40%。Borland的测试人员都会规划测试计划,同时有系统和回归测试。
  • 学到一个新东东

    2007-04-29 17:45:45

    闲来无事在网上逛逛,突然想到自己做测试时链接如何之多,但为什么老手工测试了?

    肯定有某些好的链接测试工具,果然发现两款软件Xenu Link Sleuth,HTML Link Validator

    说来惭愧,用过一些例如QTP,LR的测试工具,为什么连这种小巧实用的工具也没发现,或许是自己

    太勤快,一个劲的狂点链接,或许平时对链接的测试毫不在乎。今天才发现这些好东东,失败啊,失败

数据统计

  • 访问量: 3893
  • 日志数: 7
  • 建立时间: 2007-04-29
  • 更新时间: 2007-06-21

RSS订阅

Open Toolbar