心有多大,舞台就有多大,希望结识做网站测试的朋友们; 测试需要横向扩展也需要纵向延伸 我相信自己会在测试的道路上走的很远..............................

发布新日志

  • 转:web测试技巧(总结的非常好,仔细看,用到实际工作中)

    2009-06-06 18:29:56

    1、页面链接检查: 每一个链接是否都有对应的页面,并且页面之间切换工具,如LinkBotPro、File-AIDCS、HTML Link Validater、Xenu等工具。LinkBotPro不支持中文,中文字符显示为乱码;HTML Link Validater只能测试以Html或者htm结尾的网页链接;Xenu无需安装,支持asp、do、jsp等结尾的网页,同时能够生成html格式的测试报告。

    2、相关性检查:删除/增加一项会不会对
    其他项产生影响,如果产生影响,这些影响是否都正确检查按钮的功能是否正确 如新建、编辑、删除、关闭、返回、保存、导入等功能是否正确。

    3、
    字符类型检查:在应该输入指定类型的内容的地方输入其他类型的内容(如在应该输入整型的地方输入其他字符类型),看系统是否检查字符类型。

    1)标点符号检查:输入内容包括各种标点符号,特别是空格,各种引号,回车键。看系统处理是否正确。

    2)特殊字符检查:输入特殊符号,如@、#、$、%、!等,看系统处理是否正确。

    3)字符串长度检查: 输入超出需求所说明的字符串长度的内容, 看系统是否检查字符串长度。

    4、中文字符处理:在可以输入中、英文的系统输入中文,看会否出现乱码或出错。

    检查信息的完整性 在查看信息和更新信息时,查看所填写的信息是不是全部更新,更新信息和添加信息是否一致。

    5、信息重复:在一些需要命名,且名字应该唯一的信息输入重复的名字或ID,看系统有没有处理,会否报错,重名包括是否区分大小写,以及在输入内容的前后输入空格,系统是否作出正确处理。

    6、检查删除功能:在一些可以一次删除多个信息的地方,不选择任何信息,按“delete”,看系统如何处理,会否出错;然后选择一个和多个信息,进行删除,看是否正确处理。

    7、检查添加和修改是否一致:检查添加和修改信息的要求是否一致,例如添加要求必填的项,修改也应该必填;添加规定为整型的项,修改也必须为整型

    8、检查修改重名:修改时把不能重名的项改为已存在的内容,看会否处理,报错.同时,也要注意,会不会报和自己重名的错

    9、重复提交表单:一条已经成功提交的纪录,返回后再提交,看看系统是否做了处理。对于Web系统检查多次使用返回键的情况   在有返回键的地方,返回到原来页面,重复多次,看会否出错

    10、搜索检查:有搜索功能的地方输入系统存在和不存在的内容,看搜索结果是否正确.如果可以输入多个搜索条件,可以同时添加合理和不合理的条件,看系统处理是否正确。

    11、输入信息位置:注意在光标停留的地方输入信息时,光标和所输入的信息会否跳到别的地方。

    12、上传下载文件检查:上传下载文件的功能是否实现,上传文件是否能打开。对上传文件的格式有何规定,系统是否有解释信息,并检查系统是否能够做到。下载文件能否打开或者保存,下载的文件是否有格式要求,如需要特殊工具才可以打开等。

    13、必填项检查:应该填写的项没有填写时系统是否都做了处理,对必填项是否有提示信息,如在必填项前加“*”;对必填项提示返回后,焦点是否会自动定位到必填项。

    14、快捷键检查:是否支持常用快捷键,如Ctrl+C、 Ctrl+V、 Backspace等,对一些不允许输入信息的字段,如选人,选日期对快捷方式是否也做了限制。

    15、回车键检查:在输入结束后直接按回车键,看系统处理如何,会否报错。

    16、刷新键检查:在Web系统中,使用浏览器的刷新键,看系统处理如何,会否报错。   

    17、回退键检查:在Web系统中,使用浏览器的回退键,看系统处理如何,会否报错。对于需要用户验证的系统,在退出登录后,使用回退键,看系统处理如何;多次使用回退键,多次使用前进键,看系统如何处理。

    18、直接URL链接检查:在Web系统中,直接输入各功能页面的URL地址,看系统如何处理,对于需要用户验证的系统更为重要。

    19、空格检查:在输入信息项中,输入一个或连串空格,查看系统如何处理。如对于要求输入整型、符点型变量的项中,输入空格,既不是空值,又不是标准输入。

    20、输入法半角全角检查:在输入信息项中,输入半角或全角的信息,查看系统如何处理。如对于要求输入符点型数据的项中,输入全角的小数点(“。”或“.”,如4.5);输入全角的空格等。

    21、密码检查:一些系统的加密方法采用对字符Ascii码移位的方式,处理密码加密相对较为简单,且安全性较高,对于局域网系统来说,此种方式完全可以起到加密的作用,但同时,会造成一些问题,即大于128的Ascii对应的字符在解密时无法解析,尝试使用“uvwxyz”等一些码值较大的字符作为密码,同时,密码尽可能的长,如17位密码等,造成加密后的密码出现无法解析的字符。

    22、用户检查:任何一个系统,都有各类不同的用户,同样具有一个或多个管理员用户,检查各个管理员之间是否可以相互管理,编辑、删除管理员用户。同时,对于一般用户,尝试删除,并重建同名的用户,检查该用户
    其它信息是否重现。同样,提供注销功能的系统,此用户再次注册时,是否作为一个新的用户。

    23、系统数据检查:这是
    功能测试最重要的,如果系统数据计算不正确,那么功能测试肯定是通不过的。数据检查根据不同的系统,方法不同。对于业务管理平台,数据随业务过程、状态的变化保持正确,不能因为某个过程出现垃圾数据,也不能因为某个过程而丢失数据。

    24、系统可恢复性检查:以各种方式把系统搞瘫,测试系统是否可正常迅速恢复。

  • web服务器汇总(转)

    2009-06-05 17:41:56

       在UNIX和LINUX平台下使用最广泛的免费HTTP服务器是W3C、NCSA和APACHE服务器,而Windows平台NT/2000/2003使用IIS的WEB服务器。在选择使用WEB服务器应考虑的本身特性因素有:性能、安全性、日志和统计、虚拟主机、代理服务器、缓冲服务和集成应用程序等,下面介绍几种常用的WEB服务器。

       Microsoft IIS

      Microsoft的Web服务器产品为Internet Information Server (IIS), IIS 是允许在公共Intranet或Internet上发布信息的Web服务器。IIS是目前最流行的Web服务器产品之一,很多著名的网站都是建立在IIS的平台上。IIS提供了一个图形界面的管理工具,称为 Internet服务管理器,可用于监视配置和控制Internet服务。
      IIS是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。它提供ISAPI(Intranet Server API)作为扩展Web服务器功能的编程接口;同时,它还提供一个Internet数据库连接器,可以实现对数据库的查询和更新。
      官方网站:http://www.microsoft.com
      下载地址:
    http://www.eryin.com/Server/Soft/200808/02257.html


      IBM WebSphere

      WebSphere Application Server 是 一 种功能完善、开放的Web应用程序服务器,是IBM电子商务计划的核心部分,它是基于 Java 的应用环境,用于建立、部署和管理 Internet 和 Intranet Web 应用程序。 这一整套产品进行了扩展,以适应 Web 应用程序服务器的需要,范围从简单到高级直到企业级。
      WebSphere 针对以 Web 为中心的开发人员,他们都是在基本 HTTP服务器和 CGI 编程技术上成长起来的。IBM 将提供 WebSphere 产品系列,通过提供综合资源、可重复使用的组件、功能强大并易于使用的工具、以及支持 HTTP 和 IIOP 通信的可伸缩运行时环境,来帮助这些用户从简单的 Web 应用程序转移到电子商务世界。
      官方网站:http://www.ibm.com
      下载地址:
    http://www.ibm.com/developerworks/cn/downloads/ws/wasce/

      BEA WebLogic
      BEA WebLogic Server 是一种多功能、基于标准的web应用服务器,为企业构建自己的应用提供了坚实的基础。各种应用开发、部署所有关键性的任务,无论是集成各种系统和数据库,还是提交服务、跨 Internet 协作,起始点都是 BEA WebLogic Server。由于 它具有全面的功能、对开放标准的遵从性、多层架构、支持基于组件的开发,基于 Internet 的企业都选择它来开发、部署最佳的应用。
      BEA WebLogic Server 在使应用服务器成为企业应用架构的基础方面继续处于领先地位。BEA WebLogic Server 为构建集成化的企业级应用提供了稳固的基础,它们以 Internet 的容量和速度,在连网的企业之间共享信息、提交服务,实现协作自动化。
      官方网站:http://www.bea.com
      下载地址:
    http://www.oracle.com/bea/index.html

      Apache
      Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。它源于NCSAhttpd服务器,当NCSA WWW服务器项目停止后,那些使用NCSA WWW服务器的人们开始交换用于此服务器的补丁,这也是apache名称的由来(pache 补丁)。世界上很多著名的网站都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。
      官方网站:http://www.apache.org
      下载地址:
    http://www.eryin.com/Server/Soft/200808/01245.html

      Tomcat
      Tomcat是一个开放源代码、运行servlet和JSP Web应用软件的基于Java的Web应用软件容器。Tomcat Server是根据servlet和JSP规范进行执行的,因此我们就可以说Tomcat Server也实行了Apache-Jakarta规范且比绝大多数商业应用软件服务器要好。
      Tomcat是Java Servlet 2.2和JavaServer Pages 1.1技术的标准实现,是基于Apache许可证下开发的自由软件。Tomcat是完全重写的Servlet API 2.2和JSP 1.1兼容的Servlet/JSP容器。Tomcat使用了JServ的一些代码,特别是Apache服务适配器。随着Catalina Servlet引擎的出现,Tomcat第四版号的性能得到提升,使得它成为一个值得考虑的Servlet/JSP容器,因此目前许多WEB服务器都是采用Tomcat。
      官方网站:http://tomcat.apache.org
      下载地址:http://www.eryin.com/Server/Soft/200808/02250.html

  • 090601 web安全性测试—sql注入(1)

    2009-06-01 21:18:42

       昨天本来计划是学LR呢,今天因为要对网站安全性进行测试,所以,学习了一些sql注入的知识。

     

       庆贺一下,在网上看一些sql注入的东东,于是想到了对网站的输入框进行一些测试,本来是想在输入框中输入<script>alter("abc")<script>,但是输入框有字符限制,只好输入<script>,结果网站出大问题了,呵呵,终于又出现了个bug。高兴。。。。。。。

     

       另一个就是在URL最后随意输入一些字符或数字,结果,新闻模块那出现了问题,暴露了网站的一些信息,又一个bug,高兴下。。。。。。。

     

        下面把今天看到的有关sql注入方面的知识整理如下:

     

        SQL 注入是一种攻击方式,在这种攻击方式中,恶意代码被插入到字符串中,然后将该字符串传递到 SQL Server 的实例以进行分析和执行。任何构成 SQL 语句的过程都应进行注入漏洞检查,因为 SQL Server 将执行其接收到的所有语法有效的查询。一个有经验的、坚定的攻击者甚至可以操作参数化数据。

     

        SQL 注入的主要形式包括直接将代码插入到与 SQL 命令串联在一起并使其得以执行的用户输入变量。一种间接的攻击会将恶意代码注入要在表中存储或作为元数据存储的字符串。在存储的字符串随后串连到一个动态 SQL 命令中时,将执行该恶意代码。

        注入过程的工作方式是提前终止文本字符串,然后追加一个新的命令。由于插入的命令可能在执行前追加其他字符串,因此攻击者将用注释标记“--”来终止注入的字符串。执行时,此后的文本将被忽略。

     

        以下脚本显示了一个简单的 SQL 注入。此脚本通过串联硬编码字符串和用户输入的字符串而生成一个 SQL 查询:

      var Shipcity;

        ShipCity = Request.form. ("ShipCity");

        var sql = "select * from OrdersTable where ShipCity = '" + ShipCity + "'";

     

    用户将被提示输入一个市县名称。如果用户输入 Redmond,则查询将由与下面内容相似的脚本组成: 

     

        SELECT * FROM OrdersTable WHERE ShipCity = 'Redmond'

    但是,假定用户输入以下内容:

     

        Redmond'; drop table OrdersTable--

     

    此时,脚本将组成以下查询:

     

        SELECT * FROM OrdersTable WHERE ShipCity = 'Redmond';drop table OrdersTable--'

     

       分号 (;) 表示一个查询的结束和另一个查询的开始。双连字符 (--) 指示当前行余下的部分是一个注释,应该忽略。如果修改后的代码语法正确,则服务器将执行该代码。SQL Server 处理该语句时,SQL Server 将首先选择 OrdersTable 中的所有记录(其中 ShipCity Redmond)。然后,SQL Server 将删除 OrdersTable

     

         只要注入的 SQL 代码语法正确,便无法采用编程方式来检测篡改。因此,必须验证所有用户输入,并仔细检查在您所用的服务器中执行构造 SQL 命令的代码。本主题中的以下各部分说明了编写代码的最佳做法。

     

         验证所有输入

        

        始终通过测试类型、长度、格式和范围来验证用户输入。实现对恶意输入的预防时,请注意应用程序的体系结构和部署方案。请注意,设计为在安全环境中运行的程序可能会被复制到不安全的环境中。以下建议应被视为最佳做法:

     

        如果一个用户在需要邮政编码的位置无意中或恶意地输入了一个 10 MB MPEG 文件,应用程序会做出什么反应?

     

        如果在文本字段中嵌入了一个 DROP TABLE 语句,应用程序会做出什么反应?

        测试输入的大小和数据类型,强制执行适当的限制。这有助于防止有意造成的缓冲区溢出。

        

    输入字符

    Transact-SQL 中的含义

    ;

    查询分隔符。

    '

    字符数据字符串分隔符。

    --

    注释分隔符。

    /* ... */

    注释分隔符。服务器不对 /* */ 之间的注释进行处理。

    xp_

    用于目录扩展存储过程的名称的开头,如 xp_cmdshell

     

     

           

     

     

     

     

  • 从明天起,每天都要学点东西,让自己进步

    2009-05-31 23:14:07

        自从找到工作后,每天都没有好好学了,放松够了,从明天起,开始学习了。

        先从LR开始。

        感谢他,那段时间相互监督学习的日子,祝他能转行成功。

  • 电子商务网站测试之浅见(1)

    2009-05-30 18:58:03

      做电子商务网站测试已经一个月了,这一个月基本上是熟悉网站产品和流程的一个过程,对网站的各个部分基本上都进行了一次测试,感觉电子商务网站主要注意以下几点:

    1、注册和登录模块的测试

    在测试该部分时,给我印象最深的就是:

    1)注册成功,但登陆失败:注册时,密码设置为一些特殊的符号,比如:空格、%等,但登录时,失败。

    后来经开发人反映出现这样的问题,原因是:在登录模块,对密码设置了一些限定。

    2)登录时,没区分大小写,就是说,用小写字母注册的,登录时,用相应的大写字母登录也能成功。

    出现问题的原因:登录时,没用MD5加密进行验证

    2、购物车的测试

    1)测试产品能否放入购物车中

    2)当某种产品有购物数量限制时,超过这一数值,能否也能放入购物车中

    3)购物车中的购物限制是否正确

    3、支付流程测试

    1)购物车中的产品能否正常支付

    2)当支付完成,不等页面跳转,直接关闭浏览器,数据传递是否正确

    3)当支付完成,等待页面跳转,跳转到得页面是否正确

    4、网站某个模块间的数据传递是否正确

    当网站某个模块涉及的数据传递比较多而且比较复杂时,一定要搞清楚数据是怎么传递的,因为这是最容易出现bug的地方。比如:下拉菜单的数据没有传递过来,或传递过来了,但不正确,这时就要静下心来,慢慢滤清思考,耐心去测试。

        最后一点就是,在购买的过程中,也要考虑到并发,比如,当某种产品只剩一件了,这时两个用户或更多同时并发点击该产品,放入购物车中,那么在多个用户同时点击这个只剩一件的产品时,系统是否有相应的提示,或是,该产品能否都放入不同用户的购物车中,我上周测试的过程中,该问题是存在的,等待明天程序的解答和修改。

       电子商务网站,性能测试也是一个很重要的方面,虽然目前我还没开始这方面的测试,我希望能够结交这方面的朋友。

       以上就是我的一点总结和心得,希望能够和有同样测试经历的朋友共同探讨,一块进步!!

  • 让打击来的更猛烈些吧!!

    2009-05-25 12:14:36

        到新公司已经一个月了,经历了真正的测试,工作可以应付,但人际关系着实让我发怵,进入这个公司,自从找bug来,每天都在和一个开发人士发生着不愉快,我自认为我一直在尽职尽责,于工作,我无愧于心,我想根本原因在于,公司开发人的绩效工资和bug挂钩,该人士本月辞职,上周好像在领导面前告了我一状。

        心情好烦,也许我该把这作为一次教训,以备以后时刻提醒自己。

        不知道前面面对我的是什么,或许我又要经历一次精神上的打击,既然已经发生了,那就让打击来的更猛烈些吧!测试工作没有我想象中的那么好!

     

  • 2008年度工作经验总结之Bug提交

    2009-05-01 10:03:04

    版权声明:本文出自caicai172451Testing软件测试博客:http://www.51testing.com/?25347

    一、发现问题

      之所以是发现问题而不是发现BUG”,是因为在确认是BUG之前,测试人员发现不正常的现象不可以武断的认为一定是BUG,因为很有可能是环境问题或自己对需求或设计有误解。

      1、发现问题的心态

      测试过程中,如果有问题(可能是BUG)产生,我第一个想到的是为什么会这样,单靠我自己实在是解决不了这个问题的情况下,我这才去问开发人员,而且不是提交BUG的方式,而是抱着一种学习的心态的去请教他(请教问题比直接提出BUG要委婉的多,即使我能明确一定是BUG,而且连BUG产生原因都已经知道,但在我和开发人员沟通时,都尽量让开发人员自己发现原来这是个BUG,需要修改,而不是我提出来的。)。总之,在测试过程中,发现BUG反而不像是我的目的了,测试目的更像是去探索一个陌生的事物,因为我始终认为开发人员身上有很多值得学习的地方。

      2、静态测试发现,动态测试确认

      使用静态白盒测试发现了一个BUG,然后用动态测试的方法暴露出这个BUG,这个是否可以称为错误推断?和黄某讨论之后得出结论,应该不属于,用动态的方法去显示,只是更具有说服力(实际上,是因为静态的方式让我更有把握认为这是个BUG),让开发人员清楚的看到的确是BUG。错误推断,只是一种经验,凭经验认为某个位置或某段代码可能产生问题,然后用某种手段去试。

      那么如何提交这种BUG呢?首先向开发人员描述问题的现象,等他理解错误现象之后,再以猜测的方式告诉他错误可能出现的代码位置和原因(这样他就知道你在看代码进行测试,增加对你的信任度),这样就非常快的定位到BUG原因了,当然不排除自己推断错误的情况,所以是以猜测的方式告诉他BUG的出处,这样即使错误了,也会被原谅。

      二、定位问题

      1、定位问题的好处

      发现问题之后,帮开发人员定位问题原因的好处多多,这是肯定的,1.提高自己的能力;2.对被测系统的实现更了解;3.不会因为环境问题而提交不是BUG“BUG”4.开发人员修改BUG的效率变高;5.满足了测试人员的好奇心(既然看到了程序中奇怪的地方,即使认为肯定不是程序的BUG,但是还是要去寻找奇怪现象的原因。这也是我个人认为测试过程中最兴奋最有成就感的地方)。

      举个例子,查询报表时数据出不来,寻找为什么会显示不出数据,以及如何才能显示数据的角度出发,从代码中理解该功能的实现原理,然后想办法让报表有数据产生,也许这的确是个BUG,等到你发现是BUG的时候,很有可能已经知道了BUG产生的原因,向开发人员提出时将非常具有说服力,即使不是BUG,也锻炼了你的学习能力和逻辑思维能力,对该功能设计也更了解了,搞不好还能设计出其他有效的测试用例和数据,何乐而不为呢?所以,当发现问题时,首先想到为什么会出现问题,然后去寻找答案,这样比单单提交BUG要有意义的多。还有,如果发现的问题的确对程序影响并不大,又理解为什么,这样更能理解开发人不修复该问题的理由,相互理解是良好合作的前提。

      但是即使自己的编程技术超过了开发人员,也最好不要给开放人员如何修改BUG的建议,这样会局限开发人员自己的思路,而且如果修改的不好,反而是测试人员的错。这里有两篇不错文章,推荐!

      http://www.51testing.com/html/71/n-91571.html

      http://bbs.51testing.com/viewthread.php?tid=5226

      2DEBUG技术

      当程序出现问题的时候,以我以往的解决这种问题的经验来看,单凭表面现象的提示信息是很难定位到问题原因的,因为可能程序中很多处的错误码返回都是这个提示信息,那怎么从这个相同提示信息定位到其中某个具体代码的位置呢?所以开发人员在自测的时候,会使用DEBUG来进行问题的定位,比如说写日志、标准错误输出、打印错误信息等等,其中有个很好定位的方法是输出问题所在源文件名和代码位置(在UNIX下的C编程中使用宏__FILE____LINE__),这样比提示信息要详细的多,

      据我了解,UNIX下的C编程的程序,调试代码的方式无非就是2个,1个是写(fwrite)日志文件中,另1个是printf出来,方法都是在程序运行时,将一些中间过程和中间变量实时的输出,根据具体的情况来增加新的输出语句,这样遇到问题时,能根据这些输出语句得到运行时经过的代码。

      本文出自caicai172451Testing软件测试博客:http://www.51testing.com/?25347

      3、后台问题定位

      当后台返回错误时,如何定位错误?下面是我的经验总结:

      a.想办法让后台打印出调试信息,因为调试信息比错误日志更详细,开发人员可以从调试信息入手,我们也可以充分利用调试信息来帮忙定位问题。

      b.从调试信息中,定位到具体的源文件

      c.如果调试信息中有错误所在的行数,则直接定位到该行去检查,如果只有错误码,则根据错误码找出所有可能返回这个错误的多处

      d.如果错误码出现的地方太多,而无法确定是哪一个,则加入printf代码到返回各个错误码语句的前面,要有所区别,使得可以得出程序运行时,执行了哪些语句,是返回了哪一行的错误码

      e.如果能确定是哪一行返回的错误,则顺藤摸瓜,根据函数调用的关系,找到返回错误的最原始语句(很有可能是个判断条件),这个时候还可以加printf语句来帮忙定位(打印出其中一些重要变量的值),试着去理解出错处代码的功能意义,然后得出错误产生的原因。如果重要变量的值来自与共享内存或二进制文件,则去寻找是哪个程序同步到了共享内存或文件,追踪到该程序的同步代码或者是数据库中某表的某个字段。

    4、没有定位问题?

      有的时候定位问题,不需要定位到具体位置,只要能确定你所测试的模块没有问题,而是其他关联模块的问题就达到测试目的了,那么可以使用版本比较测试的方式来解决,比如说旧版本的关联模块+新版本的测试模块、新版本的关联模块+旧版本的测试模块,两者的输出数据进行比较就可以知道问题到底是出现在关联模块还是测试模块了。当然这是实在是定位不到那个模块后的一个笨办法。

      在执行测试的过程中,如果发现疑似BUG但还没能定位的情况下,还是可以把问题记录到TD中,但是缺陷状态可以写成待确认或疑问,然后等到自己定位到代码处时可以将状态修改为“new”,如果最后自己发现不是BUG,可以修改状态为确认不是BUG”,开发人员只要关注“new”状态的BUG即可。

      三、提交BUG

      1、在确认是BUG之前先不记录到TD

      在提交BUG的时候,我不会立刻就写进TD中,因为我还不能确定是不是BUG,但是等待已经确认BUG之后再写进去,可能会因为没有现场环境了,又会让BUG描述的不够清楚,所以想了一个办法,在确认是BUG之前,先记录在其他的文档中(我是记录在测试流程文档里),写成表格状,选项有:序列号功能特性问题描述日志记录产生原因问题状态,其中的问题状态包括待确认、已确认、不是BUG、已录入TD、已回归,这些状态的变化就是从发现BUG到确认BUG到回归BUG整个过程,所以在录入TD之前,将前3个状态的问题先记录在这里,这样等待可以录入TD的时候,也能够描述清楚了。

      测试用例没有通过,不一定就要提交BUG,因为也许这个问题开发人员早就通知过你,这部分暂时未修改完或为了方便测试而故意设计的,所以测试用例状态可以修改为未通过,并写明测试结果,但不用提交BUG。毕竟BUG是提供给开发人员看的,如果提交一些别人已经明白告诉你的问题,这样会让人感觉不好,要提供一些对他们确实有帮助的东西,而不是展示自己有多么厉害,发现了多少问题。

      2、确认是BUG就要提交

      不管BUG的严重级别有低,也不管开发人员最后修不修改,一定要把BUG放进TD中,这样的话,如果出了问题,也好有话说。我已经提出来了,只是开发人员不修改而已。还有,在模块测试时,有些小问题可以不记录,开发人员也可以不修改,但是最后上线之前的系统测试中,一定要测仔细了(包括每一句话每一个字),同时提示开发人员进行修改,因为这些小问题也许在客户看来可能是大问题。

      3BUG提交的要求

      我对自己测试提交BUG的要求是,开发人员心服口服的修改了我发现的严重级别不低的BUG,而且BUG产生的原因(无论是自己发现的还是开发人员自己发现的)我能理解。如果最后发现我提交的问题确认不是BUG,或者严重级别太低的BUG,或者开发人员看到了我提的BUG但不是时间问题而不修改的,都会让我觉得我的测试能力有问题。

      4BUG如何描述

      为了让描述BUG的语言更专业更清楚些,需要用到某些特定的专业名词,比如说“××终端”“××界面”“××窗口等,这些如果只是从系统界面上看是无法描述的正确的,所以有些东西的名称在一些文档中进行了定义,比如说需求文档设计文档,这样,描述BUG的时候,尽量使用文档中的名称来进行描述,开发人员更清楚,BUG描述更规范。

      在提交BUG的时候,一定要先描述过程,然后描述问题,最后再附加上自己的推断和根据。我发现有的时候,我描述问题的语言太直接了,只想表述自己的推断和根据,忘了应该先好好的描述过程。

      5、提交开发人员已知的BUG

      有点郁闷的情况是,在测试某个版本的时候,发现了很多严重的BUG,而且经过了反复的检验确认,可能连BUG原因的找出来了,可是一提交到开发人员那,结果他说早就在新版本中修改好了,他自己发现并且修改好的,虽然测试的那个版本的确有BUG,但是毕竟没有对开发人员起到什么大的帮助,这种结果是令测试人员很沮丧的。还有一种可能是他心里清楚提交给你的版本有些问题,但提交给你的时候不告诉你,然后在新版本中自己把所有问题解决掉。从这个角度看,测试人员发现BUG多不等于测试的成果就大。提交BUG不是测试的最根本的目的,而是辅助开发人员去发现忽略或不清楚的问题,所以在提交BUG之前,要去了解开发人员所知道的和所忽略的有哪些。

      四、修复BUG

      有的时候遇到BUG使得测试无法进行下去,但是这个BUG很简单,你自己就可以修改好,然后继续往下测试(和之前的BUG修改关联性不大),因为不能干等着开发人员修改,最重要的是尽量执行完成更多的测试用例。但是需要大改动的,就不要自己去修复了。

      当开发人员修复了某个BUG后,如果你有这个能力的话,最好是要比较修改之前之后的代码,查看BUG是怎么修改的,而且很有可能测试用例也需要同步更新,如果在修复的时候还修改了或加了一个功能需求,那么同样也要修改测试需求,所以BUG的回归测试没有想象中的简单,同时要检查测试需求和测试用例是否需要修改。实际上,我这么做的原因还有一个,就是你怎么修改代码的,我不想只是听你说,我要自己去看去理解去探索。也许是我的好奇心太重,不明白的东西一定要探个究竟,不能让我模模糊糊的知道一点,如果这样会让我很没自信很被动。

  • The summary for one week work

    2009-05-01 09:03:00

      I have worked in the new company about one week.During this week,I feel that the company is too complex,maybe the former job is too simplicity.This week,I mainly test the Englsih website and I am a little confused now.In my opinion,the difficulty is to test the process of payment,which I will do the next week.

      I get along very well with the developers who are older than I.But in the conference on Thursday I think that what I said is not good.I should not speak the specific bug which is disadvantaged to the developer,and the importance is my direct leader is a developer.In the front of the boss,I should not say that.

      And another thing is that I ignore another leader who ask me to send her my bugs on Thursday.But I did't because I forgot.

      My god,the noticed things are more.In the furture,I must pay more attention.

     

  • My first formal software testing job

    2009-04-19 20:00:01

      Tomorrow I will start my first formal software testing job.I must try my best to do it.I believe my choice is right and I am able to do it very well.

      I resigned my former job in March.2009.And I find software job about half an month.During this period,I interviewed about seven companies, and I suffered a lot grevous blow.But I never have the mind of giving up.After every interview, I always try my best to find the reasons why I was eliminated.Gradually I feel that I have new ideas to software testing.The course of finding a job is hard.The most importance is the attitude.

      Thanks for the persons giving my help.And I hope that everyone all can find a job.

       

     

  • Expected and worried

    2009-04-10 18:09:48

       Expected and worried ,this is my feeling now.I am expected the offer,and I hope I can get the offer.This afternoon I went for interview the second time.The company boss asked me a few questions,like,why did you leave the former company? What do you want to say to the former company including acknowledgement and apologize? What is your career planning? and so on.

      I don't know whether my answers can satisfy the boss.If I failed this time.I believe I can be sad.Maybe I need do more.I will try my best to learn English and improve my oral English.

  • 对界面测试和功能测试的一点感想

    2009-04-04 16:24:31

       界面界面测试和功能测试有的时候好像是分不清的,比如,输入一超出范围的值,系统应给出错误提示。这一用例中,感觉既有界面测试思想,也有功能测试思想在里面,从界面角度考虑,如果用户输入了超出范围的值了,那系统应该给出相应的提示,从功能角度考虑的话,就是应用了边界值分析法来设计这个用例。

       所以,我感觉,即使需求说明书上没写明输入错误的值给出提示的话,那站在界面测试的角度也应该把这个问题作为BUG提出来。

       写到这,感觉对以前设计的一个用例有了点清醒的认识,那是道面试题,没有需求说明,当时,我写的其中一个测试用例,就是当输入错误的时候,应该给出一个错误的提示,但是当时不知道为什么自己怎么想到这个用例了,好像没说明根据似的。

        现在想来,那是潜意识中在应用界面测试的思想:易用性,来考虑问题的。

        另外一点,我以前以为界面测试和设计有关,所以界面测试就是用眼睛看来的,全凭测试者的个人感觉如果没有明确的需求说明书, 没有把它和自动化测试联系起来,更没有想到和业务逻辑有关。

        自动化测试工具中用到的插入检查点和预期的相比对,这就是界面测试思想,呵呵,这样理解应该没错。 

        所以,对于每一个测试点,都要从:界面测试(易用性)、功能测试、兼容性测试、安全测试以及性能测试角度去理解。

       希望走过路过的朋友,对以上浅显的认识发表下个人见解。^_^

  • UI testing in my opinion

    2009-04-04 12:16:14

       UI means user interface.The purpose of UI is to insure that a software can be used easily and look beautiful.The following test points belong to UI testing,such as,whether the buttons that play the similar role are framed together;whether the software gives the corresponding tips when the datas inputting over the ones that defined in the requirement instruction etc.

       Of course,we can also use automatic tools like WinRunner or QTP to do UI testing.This needs to insert check points,like text check,bitmap check and so on.Before recording script,we should know the business logic clearly.And we also should modify the recorded script. to reach to goal we have maked.

      As we all know that test case plays an important role in software testing.And UI test case is no exception.So if  the time permits, UI test case should be designed clearly,which can help to find more bugs.

      To sum up,UI testing not only "see" the bug with eyes,but also use the automatic tools to help us find bug.

     

  • My first English Diary ---- software testing interview

    2009-04-02 13:46:24

      This is my first English diary.I hope that I myself can persist in writing.The main purpose is to improve my English and I wish it would become my habite.

      Although I interviewed only few times,I find English including writing and oral play more and more important role in the software testing.If one can speak English fluently and communicate,then he or she will be welcomed by the software company.

      Today I went to a company for an interview.The job required that one should know some network protocols,be familiar with at least one tool that require the datas from the network,master develop language like jsp and so on.

      I prepared for these before I interviewed.I thought the company would give me a paper to answer.But the fact was that the interviewer asked me a few questions according to my cv.The question were mainly related to the automatic tools like LR and QTP.How to do  UI testing if getting a website? For these question,in fact I had no clear mind.And my answer only included the business logic,I think I don't give the right answer.The interviewer asked that  giving me a test report writing Chinese,whether I can translate it into English.I said that I believe I can translate it,but I need the English tool to help.

      The interview is over.The result will be gived in one week.

      Now I think this opportunity maybe escapes by my bad answers.

      For the happened things,I cann't do anything.I think the road to finding software testing job will be full of troubles.The only thing I need to do is to summary the failed reason,and prepare for the next chance.

       Good Luck for myself!!

     

     

  • 表格域

    2009-04-01 21:08:28

    <form. name="testForm"  action="q.html" method="get">
    用户名:<input type=text name=uname value=haha /><br />
    密码:<input type=password name=pwd  />  <br />
    性别:<input type=radio name=sex value=1 checked>男
          <input type=radio name=sex value=2>女<br />
    最高学历:<br />
    <input type=radio name=xueli value=1 checked>小学<br />
    <input type=radio name=xueli value=2>中学<br />
    学位:<br />

    <input type=checkbox name=xuewei value=1>学士<br />
    <input type=checkbox name=xuewei value=2 checked>硕士<br />

    出生地:<br />
    <select name="hometown">
     <option value="1">China</option>
     <option value="2" selected>japanese</option>
    </select><br />
    自我介绍:<br />
    <textarea name="introduce" rows="5" cols="30"></textarea><br />
    <input type=submit name=sub value="注册">
    <input type=reset name=rst value="重置">

    表单:
    name
    action
    value
    type
    想把值提交上去,必须写上name

    radio单选框 checkde 默认选中
    name的值必须一样,否则就可以多选了

    checkbox多选框  checked 默认选中

    下拉框select  selected 默认选中
    当没有Value值时,显示的是说明文字

    textarea 多文本输入

     

     

     

  • IIS下asp.net环境的搭建

    2009-04-01 14:11:39

    一、所需软件安装

    1、IIS 的安装

    首先打开[开始]菜单,然后依次打开控制面板→添加或删除程序→添加/删除Windows组件,接着在 Windows 组件向导内找到 [Internet信息服务(IIS)] ,双击,按照下图所示选择对应的组件。

    在选择完成后点击[确定]按钮, Windows 就会进入安装的过程,系统会提示您插入需要相关系统盘。值得注意的是安装IIS等操作最好使用安装系统的原盘来进行。 剩下的操作就是一路确定即可完成IIS的安装。

    2、数据库的安装以及 MDAC (微软数据访问组件)的安装

    网上 SQL Server 2000/2005 和 MySQL 的安装教程非常多,在此不累述。注意以下几点:

    • 1) SQL Server 2000 需要打sp4补丁。
    • 2) SQL Server 2000/2005 sa 帐号的密码不能为空;身份验证模式要选择“混合模式”。
    • 3) SQL Server 2000/2005 建立数据库时设置排序规则为 Chinese_PRC_CI_AS ,英文版尤其要注意。
    • 4) MySQL 需要V4.1或以上版本。建立数据库时,字符集选择GBK。
    • 5) Windows系统默认都是集成了的MDAC的,如果您发现系统内没有安装或者版本过低,请在此下载安装 MDAC下载地址: 点击下载
    3、.NET Framework 的安装

    Discuz!NT 目前支持 .Net Framework 1.1 和 .Net Framework 2.x/3.x。并分别有对应这两种版本的程序,请根据自己的需要来选择安装,切不可搞错。另外要注意,一定要先安装 IIS 再安装 .NET Framework 。否则可能引发问题。

    二、设置 IIS

    建立虚拟目录

    首先解压文件,将 upload_files 重命名为 dnt2 后,放置在网站根目录下(即 C:\inetpub\wwwroot\dnt2\ )。然后启动 Internet 信息服务(IIS)管理器在[默认网站]项上点击鼠标右键,选择新建虚拟目录。设置程序路径。

    访问权限保持默认,更详细的权限在完成虚拟目录建立后再设置。然后下一步完成。

    在虚拟目录上点击鼠标右键,选择[属性]进入属性设置。

    点击[配置]检查您的 ISAPI 扩展, .aspx 文件无需确认文件存在。如果此选项已经选中请您取消该选项。

    如果您同时安装了 .NET Framework 1.1 和 .NET Framework 2.0 可以在IIS的站点中的 ASP.NET 选项内选择和 Discuz!NT 程序相应的 asp.net 版本。

    最后在文档选项中添加 index.aspx 类型的默认页。

    至此 IIS 设置完成。

    三、权限设置

    1、设置论坛目录权限

    如果电脑的磁盘格式非 NTFS 格式,以下步骤可以省略。

    调整文件共享设置,取消使用简单文件共享。

    右键单击 dnt2 文件夹,在弹出的属性对话框中,选择[安全]标签页。

    再点击[添加]按钮,此时弹出[选择用户或组]对话框,再依次点击[高级],[立即查找]按钮,在下面的搜索结果中 选择 IIS 来宾帐号(这里是 IUSR_COMSENZ-304669C ),和 ASPNET 帐号。确定后,把这两个帐号添加进来。

    给 IIS 来宾帐号 "读"权限,给 ASPNET 帐号 “读”“写”“修改” 权限。

    点击[高级]按钮,将权限应用到子目录及所有文件。

    2、设置 DNT.config 文件权限

    DNT.config 文件必须放到网站根目录下,而不是论坛根目录下(在我这里,默认网站根目录为 C:\inetpub\wwwroot\ )。其权限设置也是给 IIS 来宾帐号 "读"权限,给 ASPNET 帐号 “读”“写”“修改” 权限。如果是 .NET Framework 1.1 版本的情况,请修改 DNT.config 中的 Forumpath 节点为 /目录名/。(推荐使用记事本,避免保存的时候修改了文件编码)

    注册asp.net组件: (asp.NET 组件即:.Net Framework )

    开始->运行->cmd->执行命令:

    C:\windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i  

    http://faq.comsenz.com/userguide/discuznt/win2000.html

  • 090309 LINUX基本命令小结

    2009-03-09 11:07:30

    一、创建

    创建目录文件:mkdir test

    创建双层目录:mkdir -p test1/test2; p:parent

    创建文件:touch wenben.txt

    二、删除

    删除空目录:rmdir test

    删除双空目录:rmdir -p test/test1

    删除非空目录:rm -f ;f:force强制删除

    三、复制、移动以及重命名

    复制:cp:copy

    eg:cp test1 ./mulu,把test1复制到本层mulu文件夹中。

    cp -r mulu1 ./mulu2,把mulu1文件夹复制到本层mulu2文件夹下。r:recursive

    移动及重命名

    eg:mv test1 ./mulu test

    四、显示系统中执行程序命令

    top

    五、显示内存命令

    free

    六、结束/启动某个服务

    eg:service vsftpd start/stop

    七、直接看到内容命令

    cat

    八、关机命令

    shutdown now 立刻关机

    reboot 重新启动

    九、编辑文本

    命令:vi, :wq

    十、权限命令

    useradd 用户名

    chmod 修改权限,eg:chmod 777 test

    chgrp 修改用户组

    chown 修改所有者

    十一、解压缩命令

    eg:tar -zxvf vsftpd.conf.tar.gz

    十二、查看IP地址

    ifconfig

    十三、配置IP命令

    netconfig

    十四、查主机名称

    hostname

    十五、关闭linux的防火墙

    service iptables stop

     

     

     

     

     

     

     

     

  • 090116学习总结 LR

    2009-01-16 16:39:10

    09.1.16
    一、LR联机运行脚本产生负载问题
        如果仅被controller调用执行场景,只需在该机子上安装Load Generator就ok了。

    二、设定集合点策略
    1、启用集合点功能,contorller中单击disable/enable rendezvous
    2、点击disable/enable按钮设定一个用户是否参与到集合点中。
    3、policy:设定集合点执行策略

    三、启用ip欺骗
    配置:起始程序tool中有相应的功能IP WIZARD
    启用:controller中,scenario-->enable ip spoofer命令
    设置:controller中,设置IP地址的分配方式,首先在tool中选择expert mode命令,然后点击option,在弹出的对话框中单击GENERAL标签以设定IP地址的分配方式。

    四、控制场景的运行
    1、如何让不同的用户组同时运行?
    选中组,右键菜单选择:initialize the selected vusers

    五、LR参数化问题
    Each Occurrence:每次遇到该参数就更新一次值,注意的是:针对的对象是该参数
    Each Iteration:每次迭代更新一次值
    once:一次,运行时,该参数只取一次值

  • LR参数化

    2009-01-16 14:57:59

       在“Update Value on”文本框中可选择一种更新参数值的频率,指示Vuser何时更新参数值。有以下几个选项:

      ● Each Occurrence:在运行时,每遇到一次该参数,便会取一个新的值,该方法指示Vuser在每次参数出现时使用新值。当使用同一个参数的几个语句不相关时,该方法非常有用。例如,对于随机数据,在该参数每次出现时都使用新值可能是非常有用的。

      ● Each Iteration:运行时,在每一次循环中都取相同的值。该方法指示Vuser为每次脚本迭代使用新值。如果一个参数在脚本中出现了若干次,则Vuser为整个迭代中所有出现的该参数使用同一个值。当使用同一个参数的几个语句相关时,该方法非常有用。

      ● Once:运行时,在每次循环中,该参数只取一次值。该方法指示Vuser在方案运行期间仅对参数值更新一次。Vuser为所有出现的该参数和所有迭代使用同一个参数值。当使用日期和时间时,该类型可能会非常有用。

       更多LR教程见: 

    http://www.51testing.com/html/200901/n102756.html

     

  • FinalData数据恢复软件

    2009-01-07 09:36:44

       以后格盘后丢失数据不用怕了,用FinalData数据恢复软件,宝贝!!
  • HTTP状态码大全

    2008-12-31 11:09:30

    HTTP 状态码大全,服务器日志重点部分

    响应码分五种类型,由它们的第一位数字表示:
    1.1xx:信息,请求收到,继续处理
    2.2xx:成功,行为被成功地接受、理解和采纳
    3.3xx:重定向,为了完成请求,必须进一步执行的动作
    4.4xx:客户端错误,请求包含语法错误或者请求无法实现
    5.5xx:服务器错误,服务器不能实现一种明显无效的请求
    100 Continue
    指示客户端应该继续请求。回送用于通知客户端此次请求已经收到,并且没有被服务器拒绝。
    客户端应该继续发送剩下的请求数据或者请求已经完成,或者忽略回送数据。服务器必须发送
    最后的回送在请求之后。
    101 Switching Protocols
    服务器依照客服端请求,通过Upgrade头信息,改变当前连接的应用协议。服务器将根据Upgrade头立刻改变协议
    在101回送以空行结束的时候。


    Successful
    =================================
    200 OK
    指示客服端的请求已经成功收到,解析,接受。
    201 Created
    请求已经完成并一个新的返回资源被创建。被创建的资源可能是一个URI资源,通常URI资源在Location头指定。回送应该包含一个实体数据
    并且包含资源特性以及location通过用户或者用户代理来选择合适的方法。实体数据格式通过煤体类型来指定即content-type头。最开始服务器
    必须创建指定的资源在返回201状态码之前。如果行为没有被立刻执行,服务器应该返回202。
    202 Accepted
    请求已经被接受用来处理。但是处理并没有完成。请求可能或者根本没有遵照执行,因为处理实际执行过程中可能被拒绝。
    203 Non-Authoritative Information
    204 No Content
    服务器已经接受请求并且没必要返回实体数据,可能需要返回更新信息。回送可能包含新的或更新信息由entity-headers呈现。
    205 Reset Content
    服务器已经接受请求并且用户代理应该重新设置文档视图。
    206 Partial Content
    服务器已经接受请求GET请求资源的部分。请求必须包含一个Range头信息以指示获取范围可能必须包含If-Range头信息以成立请求条件。

    Redirection
    ==================================
    300 Multiple Choices
    请求资源符合任何一个呈现方式。
    301 Moved Permanently
    请求的资源已经被赋予一个新的URI。
    302 Found
    通过不同的URI请求资源的临时文件。
    303 See Other
    304 Not Modified
    如果客服端已经完成一个有条件的请求并且请求是允许的,但是这个文档并没有改变,服务器应该返回304状态码。304
    状态码一定不能包含信息主体,从而通常通过一个头字段后的第一个空行结束。
    305 Use Proxy
    请求的资源必须通过代理(由Location字段指定)来访问。Location资源给出了代理的URI。
    306 Unused
    307 Temporary Redirect

    Client Error
    =====================
    400 Bad Request
    因为错误的语法导致服务器无法理解请求信息。
    401 Unauthorized
    如果请求需要用户验证。回送应该包含一个WWW-Authenticate头字段用来指明请求资源的权限。
    402 Payment Required
    保留状态码
    403 Forbidden
    服务器接受请求,但是被拒绝处理。
    404 Not Found
    服务器已经找到任何匹配Request-URI的资源。
    405 Menthod Not Allowed
    Request-Line请求的方法不被允许通过指定的URI。
    406 Not Acceptable
    407 Proxy Authentication Required
    408 Reqeust Timeout
    客服端没有提交任何请求在服务器等待处理时间内。
    409 Conflict
    410 Gone
    411 Length Required
    服务器拒绝接受请求在没有定义Content-Length字段的情况下。
    412 Precondition Failed
    413 Request Entity Too Large
    服务器拒绝处理请求因为请求数据超过服务器能够处理的范围。服务器可能关闭当前连接来阻止客服端继续请求。
    414 Request-URI Too Long
    服务器拒绝服务当前请求因为URI的长度超过了服务器的解析范围。
    415 Unsupported Media Type
    服务器拒绝服务当前请求因为请求数据格式并不被请求的资源支持。
    416 Request Range Not Satisfialbe
    417 Expectation Failed

    Server Error
    ===================================
    500 Internal Server Error
    服务器遭遇异常阻止了当前请求的执行
    501 Not Implemented
    服务器没有相应的执行动作来完成当前请求。
    502 Bad Gateway
    不确定的网关
    503 Service Unavailable
    因为临时文件超载导致服务器不能处理当前请求。
    504 Gateway Timeout
    网关超时
    505 Http Version Not Supported
    HTTP的版本不支持
1165/6<123456>
Open Toolbar