发布新日志

  • 时间不长,变化很大

    2007-06-25 18:43:01

    自从来到北京,我就再没有上过这个网站,不是不想,只是太忙了,没有时间。来北京1个多月的时间,时间不算长,我却有了很大的变化,今天我不想说工作方面的事,因为来了以后一直忙着工作,反而没有时间学习了,所以没感觉自己在技术上有什么长进。在这一个多月的时间里,我遇见了我的第一份感情,严格的说起来,我能认识他还要拜51testing论坛所赐。一切都是那么的不可思议,并且迅速的产生的变化,快的我都来不及去想这是不是正确的。自从开始这段感情,我觉得我完全不是以前的自己了,而今天我开始怀念以前的我,无忧无虑,没心没肺过日子的我。我希望我以后不会为这段时间发生的事情后悔。
  • 有时候自己真的很笨

    2007-04-18 13:30:25

    在写结项总结的时候需要统计每个测试员写的用例步数,我居然去一个一个的数,虽然用例不是非常的多但也花了不少时间。其实在数据库中建立一个查询一分钟就可以搞定了,我发现有时候我做事是够踏实,但是不想去寻求简便的方法,其实这是另一种懒的表现,这种懒法我自己都受不了了。以后可千万不能再这样了,现在都觉得我做的这件事太搞笑了,一点都不像是一个IT行业的人做的事情。唉!真丢人

  • 我的第一份工作就要告一段落了

    2007-04-12 16:06:44

    经过一番波折,北京的工作终于定下来了。刚刚向公司提出了辞职,还算顺利,虽然也挽留了我,但我去意已决。我很看好我的新工作,虽然公司刚起步,但肯定会有不错的发展,看着吧,我也肯定会为他推波助澜的。想想像我这样才工作不到1年就能进这样的公司真是很不容易,感叹自己运气好的同时一定要抓住这次机会。干了不长的时间就辞职我还是觉得挺对不起头的,当初是他把我这样一个对测试只有很浅的了解,编程经验又不是很丰富的应届毕业生找进来,带我走进了测试这一行,我很感谢他。我承认,这一路走来除了自己的努力,运气也扮演了很重要的角色。

    今天交了辞职信,感情还真是挺复杂的,轻松之余还有一种不舍。

    我第一天来报道的时候天下着雨,公共汽车又挤又慢,眼看就要迟到的我只好打车。到了楼里面找了很久才找到办公室,当时还没有什么人来,第一个和我说话的是wx,然后是zg,然后zc,然后ljq……对了,还有那个日语老师jt以及后来的lls、zhc和他们相处的日子真的很快乐。

    我以后还会认识更多的同事,更多的朋友,更多的牛人,我要在北京开始全新的生活了。

  • 我的最新情况

    2007-04-10 15:01:21

    经过了一个多星期的等待与煎熬以后,上次的面试终于有结果了,那就是我明天还要去复试。复试就复试吧,就是跑来跑去的太累了,他们说对我的条件还是比较满意的,这就吃了颗定心丸。

    最近发现一个奇怪的现象,现在的工作机会还是很多的,但是合适的并不多,发出一份简历后有回复的概率也很小,基本上大部分是石沉大海,但怎么有的公司通知来面试的人总会有几个到时候就不来了。

  • 取舍之间彰显智慧

    2007-04-03 15:41:54

    气死人了,怎么写了半天,发布了之后只是一个“暂无”,不过没关系,我心里已经得到答案了。

  • 测试时需要注意的特殊细节

    2007-03-29 17:05:08

    1. 在特定情况下,某些功能按钮是不可用的,比如在信息列表中没哟任何信息时,删除按钮就应该是不可用的,当然实际情况要比这个复杂的多,需要注意这个问题
    2. 对于文本输入框至少有3中情况需要验证:
      • 为空
      • 最大数量的字符
      • 数据库中已经存在的字符
    3. 在没有明确的软件需求的时候,对于系统功能觉得有不合理的地方先不要马上记下来,先搞清楚需求是不是本身就是这样的。
    4. 对于软件需求也必须以一个测试人员的角度提出自己的意见
    5. 对于在系统中处于不同地方的两个有相同功能的按钮,必须验证点击他们以后系统的反应是否一致
    6. 需要上传一个固定内容的压缩包的时候,需要验证压缩包的内容不正确时,系统有没有相应的提示

     

  • 测试的时候一定要保持头脑清醒

    2007-03-21 17:22:08

    越来越觉得测试真不是那么简单了,其实一直都知道测试不简单,但现在有点超出了我的想象。要考虑的问题真的很多,不只有测试技术方面的问题,还要考虑到成本和质量之间的权衡,经过几天的忙碌做一些总结吧。

    首先就是一定要清楚需求,如果要是没有具体的需求那就得不停的和程序员交流,保证自己没有做无谓的工作,对准确的设定bug的级别也有帮助。当然我们也有权利提出一些对需求的看法,我们还是要把质量放在首位的,时间是第二位的。其次就是一定要紧跟测试通知单,上面有的测试项目一点也不能放过,没有的内容就没有必要去浪费时间。

    在测试的时候一定要一心一意,按用例一项一项的进行,一个功能一个功能的过,不能测着测着就跑到与它有联系的其他功能中去。发现一个问题后一定要把它处理完以后再往下进行,不能把问题留到以后再处理,因为有可能以后会忘掉。

    为了提高效率测试时也不能完全按照理论的过程进行,有时候需要根据具体问题进行一些小的调整。提交第一个测试版本以后,进行第一轮测试以前一定要进行一轮冒烟测试,因为粗心的程序员有可能会犯很多低级的错误让程序运行不下去,每次改完bug提交版本之后要验证所有的bug已经改正并且没有引起相关的bug之后才能进行下一轮测试,也就是要控制尽量少的版本。此外每次提交新版本都要优先测试新增的功能,没有测试过的功能一般都会存在很多的问题。

    在测试的过程中要尽量记得自己做的每一步操作,有助于重现bug。

    以上的这些事情一定要记在心里,头脑不清醒是不行的。

  • 面对自己

    2007-03-12 15:20:51

    我总是对自己不是那么满意,但还是比较喜欢自己的状态的,不知道最近是怎么了,变得那么不喜欢自己,不知道什么时候才能回复到原来的状态
  • 9天的工作感受

    2007-02-09 17:10:00

    已经在开发区工作9天了,前天都处于紧张和忙碌的状态当中,虽然每天4个小时都浪费在路上,但还是学到了很多东西,这种早睡早起的付出还是值得的,但我还是很盼望早日回到市里。

    感觉这边的测试流程要规范的多,写中文用例的时候也能让我把所有的精力都放在用例上,而不是语言上。这次经过完整的写了一个网站的测试用例和hg的指导,找到了方法,也增强了信心。另外还接触到搭建web站点,我就顺便了解了一下IIS apache weblogic 。

    总之在负责这个项目的过程中会接触到控制版本、搭建web站点、控制测试流程、与开发等相关人员的交流、性能测试、配置数据库……好多东西要学呦,加油!

    开发在fixbug的时候还用到了TD的assign to,这是我没想到的。

  • 测试用例的一点总结

    2007-01-10 11:29:59

    最近在写一个类似于占座网的网站的测试用例,开始的时候自信满满,后来却越写越觉得混乱,甚至发现自己写这么长时间以来写的用例中,有很多都是冗余。最后不得不大量的修改,真的很受打击,好在现在已经屡清思路。

    这次是我第一次写真正的用例,由于以前都是在做练习,一心要找出别人找不出的错误,每一个用例都写得很细,就算是再不可能发生的情况也会写进去,不会考虑实用性,我就是带着这种思维方式开始的。我就很细析的写每个功能的用例,到后来觉得自己写了很多重复的东西,比如,每一个表单的输入框我都会写上:数据为空、数据为1个字符、数据为最大长度、数据超出最大长度范围这几个用例。

    还有这个网站基本上没有需求文档,只能看着已经存在的页面写用例,这样写着写着就迷茫了,我会想“我现在明明知道这个功能就是这样了,预期结果就是按照实际结果写的,为什么还要写用例,浪费时间”

    对用例的粒度考虑的也不全面,有时候一个操作我把他归为用例中独立的一步,有时候包含在用例的步骤中,真的很乱。

    下面是针对上面问题的经验总结:

    1先把用例根据测试目的分为几类,功能测试、异常测试、界面测试……

    2写用例前要考虑好粒度,把最小的不可分的功能作为一个用例、把一个用例中可以见到结果的操作作为一个步骤,当然也要根据实际情况作一些改变

    3用例中不写测试数据,如有需要再另外写

    4把通用的功能测试写在一个用例中以减少冗余。

  • ASP.NET数据库编程

    2006-12-21 17:10:25

    又找到一片对我很有用的文章,连接是http://blog.sina.com.cn/u/4666891f010002ds,多谢缘如是
     
    ASP.NET中的ADO.NET和ASP中的ADO相对应,它是ADO的改进版本。在ADO.NET中,通过Managed Provider所提供的应用程序编程接口(API),可以轻松地访问各种数据源的数据,包括OLEDB所支持的和ODBC支持的数据库。

      下面介绍ADO.NET中最重要的两个概念:Managed Provider和DataSet。

      Managed Provider

      过去,通过ADO的数据存取采用了两层的基于连接的编程模型。随着多层应用的需求不断增加,程序员需要一个无连接的模型。ADO.NET就应运而生了。ADO.NET的Managed Provider就是一个多层结构的无连接的一致的编程模型。

      Managed Provider提供了DataSet和数据中心(如MS SQL)之间的联系。Managed Provider包含了存取数据中心(数据库)的一系列接口。主要有三个部件:

      1、连接对象Connection、命令对象Command、参数对象Parameter提供了数据源和DataSet之间的接口。DataSetCommand接口定义了数据列和表映射,并最终取回一个DataSet。

      2、数据流提供了高性能的、前向的数据存取机制。通过IdataReader,你可以轻松而高效地访问数据流。

      3、更底层的对象允许你连接到数据库,然后执行数据库系统一级的特定命令。

      过去,数据处理主要依赖于两层结构,并且是基于连接的。连接断开,数据就不能再存取。现在,数据处理被延伸到三层以上的结构,相应地,程序员需要切换到无连接的应用模型。这样,DataSetCommand就在ADO.NET中扮演了极其重要的角色。它可以取回一个DataSet,并维护一个数据源和DataSet之间的"桥",以便于数据访问和修改、保存。DataSetCommand自动将数据的各种***作变换到数据源相关的合适的SQL语句。从图上可以看出,四个Command对象:SelectCommand、InsertCommand、UpdateCommand、DeleteCommand分别代替了数据库的查询、插入、更新、删除***作。

      Managed Provider利用本地的OLEDB通过COM Interop来实现数据存取。OLEDB支持自动的和手动的事务处理。所以,Managed Provider也提供了事务处理的能力。
      DataSet

      DataSet是ADO.NET的中心概念。你可以把DataSet想象成内存中的数据库。正是由于DataSet,才使得程序员在编程序时可以屏蔽数据库之间的差异,从而获得一致的编程模型。

      DataSet支持多表、表间关系、数据约束等等。这些和关系数据库的模型基本一致。

      通过ADO.NET访问数据库

      不论从语法来看,还是从风格和设计目标来看,ADO.NET都和ADO有显著的不同。在ASP中通过ADO访问数据库,一般要通过以下四个步骤:

      1、 创建一个到数据库的链路,即ADO.Connection;

      2、 查询一个数据集合,即执行SQL,产生一个Recordset;

      3、 对数据集合进行需要的***作;

      4、 关闭数据链路。

      在ADO.NET里,这些步骤有很大的变化。ADO.NET的最重要概念之一是DataSet。DataSet是不依赖于数据库的独立数据集合。所谓独立,就是:即使断开数据链路,或者关闭数据库,DataSet依然是可用的。如果你在ASP里面使用过非连接记录集合(Connectionless Recordset),那么DataSet就是这种技术的最彻底的替代品。
    有了DataSet,那么,ADO.NET访问数据库的步骤就相应地改变了:

      1、创建一个数据库链路;

      2、请求一个记录集合;

      3、把记录集合暂存到DataSet;

      4、如果需要,返回第2步;(DataSet可以容纳多个数据集合)

      5、关闭数据库链路;

      6、在DataSet上作所需要的***作。

      DataSet在内部是用XML来描述数据的。由于XML是一种平台无关、语言无关的数据描述语言,而且可以描述复杂数据关系的数据,比如父子关系的数据,所以DataSet实际上可以容纳具有复杂关系的数据,而且不再依赖于数据库链路。

      ADO.NET有许多对象,我们先看看最基本的也最常用的几个。首先看看ADOConnection。和ADO的ADODB.Connection对象相对应,ADOConnection维护一个到数据库的链路。为了使用ADO.NET对象,我们需要引入两个NameSpace:System.Data和System.Data.ADO,使用ASP.NET的Import指令就可以了:

      <%@ Import Namespace="System.Data" %> 

      <%@ Import Namespace="System.Data.ADO" %> 

    和ADO的Connection对象类似,ADOConnection对象也有Open和Close两个方法。下面的这个例子展示了如何连接到本地的MS SQL Server上的Pubs数据库。

    <%@ Import Namespace="System.Data" %> 
    <%@ Import Namespace="System.Data.ADO" %> 
    <%
    '设置连接串...
    Dim strConnString as String
    strConnString = "Provider=SQLOLEDB; Data Source=(local); " & _
    "Initial Catalog=pubs; User ID=sa"

    '创建对象ADOConnection
    Dim objConn as ADOConnection
    objConn = New ADOConnection

    '设置ADOCOnnection对象的连接串
    objConn.ConnectionString = strConnString

    objConn.Open() '打开数据链路

    '数据库***作代码省略

    objConn.Close() '关闭数据链路
    objConn = Nothing '清除对象
    %> 
     

    上面的代码和ADO没有什么太大的差别。应该提到的是,ADO.NET提供了两种数据库连接方式:ADO方式和SQL方式。这里我们是通过ADO方式连接到数据库。关于建立数据库连接的详细信息,我们在后面的篇幅中将会讲到。

      ADODatasetCommand

      另一个不得不提到的ADO.NET对象是ADODatasetCommand,这个对象专门负责创建我们前面提到的DataSet对象。另一个重要的ADO.NET对象是Dataview,它是DataSet的一个视图。还记得DataSet可以容纳各种各种关系的复杂数据吗?通过Dataview,我们可以把DataSet的数据限制到某个特定的范围。

      下面的代码展示了如何利用ADODatasetCommand为DataSet填充数据:

    '创建SQL字符串
    Dim strSQL as String = "SELECT * FROM authors"

    '创建对象ADODatasetCommand 和Dataset
    Dim objDSCommand as ADODatasetCommand
    Dim objDataset as Dataset = New Dataset
    objDSCommand = New ADODatasetCommand(strSQL, objConn)

    '填充数据到Dataset
    '并将数据集合命名为 "Author Information"
    objDSCommand.FillDataSet(objDataset, "Author Information")
     

      显示Dataset

      前面我们已经把数据准备好。下面我们来看看如何显示Dataset中的数据。在ASP.NET中,显示DataSet的常用控件是DataGrid,它是ASP.NET中的一个HTML控件,可以很好地表现为一个表格,表格的外观可以任意控制,甚至可以分页显示。这里我们只需要简单地使用它:

      <asp:DataGrid id="DataGridName" runat="server"/> 

      剩下的任务就是把Dataset绑定到这个DataGrid,绑定是ASP.NET的重要概念,我们将另文讲解。一般来说,你需要把一个Dataview绑定到DataGrid,而不是直接绑定Dataset。好在Dataset有一个缺省的Dataview,下面我们就把它和DataGrid绑定:
    MyFirstDataGrid.DataSource = _
    objDataset.Tables("Author Information").DefaultView
    MyFirstDataGrid.DataBind()


      Dataset的用法
      Dataset 并不是Recordset的简单翻版。从一定的意义上来说,DataView更类似于Recordset。如果说DataReader是访问数据的最容易的方式,那么Dataset则是最完整的数据访问对象。通过Dataset,你可以***作已有的数据,还可以通过程序创建Dataset,加入Table到Dataset,并建立这些Table之间的关系。

      使用Dataset的几个步骤

      第1步,创建到数据源的连接:

       SQLConnection con =new SQLConnection("server=localhost;uid=sa;pwd=;database=pubs");

      第2步,创建DataSetCommand对象,指定一个存储过程的名字或者一个SQL语句,指定数据链路;

       SQLDataSetCommand cmd =new SQLDataSetCommand("SELECT * FROM Authors", con);

      第3步,创建一个Dataset对象

       DataSet ds = new DataSet();

      第4步,调用DataSetCommand的FillData方法,为Dataset填充数据。注意:数据链路没有必要是打开的。如果数据链路是关闭状态,FillData函数会打开它,并在FillData之后关闭数据链路。如果数据链路本来就是打开的,在FillData之后,数据链路依然保持打开状态。

       int iRowCount = cmd.FillDataSet(ds, "Authors");

      第5步,***作数据。由于FillData返回了记录的个数,我们可以构造一个循环,来***纵Dataset中的数据。


    for(int i=0; i< iRowCount; i++){
    DataRow dr = ds.Tables[0].Rows[i];
    Console.WriteLine(dr["au_lname"]);

      数据绑定技术

      Repeater、DataList 、DataGrid控件是System.Web.UI.WebControls名空间(Namespace)里几个相关的页面组件。这些控件把绑定到它们的数据通过HTML表现出来,它们又被成为"列表绑定控件"(list-bound controls)。

      和其他Web组件一样,这些组件不仅提供了一个一致的编程模型,而且封装了与浏览器版本相关的HTML逻辑。这种特点使得程序员可以针对这个对象模型编程,而无须考虑各种浏览器版本的差别和不一致性。

      这三个控件具有把它们的相关数据"翻译"成各种外观的能力。这些外观包括表格、多列列表、或者任何的HTML流。同时,它们也允许你创建任意的显示效果。除此之外,它们还封装了处理提交数据、状态管理、事件激发的功能。最后,它们还提供了各种级别的标准***作,包括选择、编辑、分页、排序等等。利用这些控件,你可以轻松地完成如下的Web应用:报表、购物推车、产品列表、查询结果显示、导航菜单等等。

     

  • 设计功能和界面测试用例

    2006-12-18 13:31:54

    这是在网上找到的,忘了作者是谁了,不过还是要谢谢作者


    设计功能和界面测试用例


    1.1
    文本框、按等控件测试

    1.1.1
    文本框的测试

    如何文本框测试

     a,入正常的字母或数字。
     b,入已存在的文件的名称;
     c,入超字符。例如在名称框中入超许边界个数的字符,假最多255个字符,尝试输 256个字符,检查程序能否正确理;
     d,入默认值,空白,空格;
     e,若只允许输入字母,尝试输入数字;反之;尝试输入字母;
     f,利用制,粘等操作入程序不允入数据;
     g,入特殊字符集,例如,NUL\n等;
     h,入超文本框度的字符或文本,检查入的内容是否正常示;
     i,入不符合格式的数据,检查程序是否正常校,如,程序要求入年月日格式yy/mm/dd实际输yyyy/mm/dd,程序应该给错误提示

    测试过程中所用到的测试方法:

     1,入非法数据;
     2,入默认值
     3,入特殊字符集;
     4,入使冲区溢出的数据;
     5,入相同的文件名;
    命令按控件的测试

    测试方法:

     a,正确响操作。如,单击确定,正确行操作;单击取消,退出窗口;
     b,非法的入或操作出足的提示明,如,入月工作天数32单击确定后系统应提示:天数不能大于31
     c,可能造成数据无法恢的操作必须给出确信息,放弃选择的机会;
    单选控件的测试

    测试方法:

     a,组单选不能同时选中,只能中一个。
     b,逐一单选的功能。分别选择”“后,保存到数据的数据应该的分别为”“
     c,组执行同一功能的单选在初始状态时有一个被默认选中,不能同时为空;
    up
    down控件文本框的测试

    测试方法:

     a,直接入数字或用上下箭控制,如,在数目中直接 查看(943) 评论(4) 收藏 分享 管理

数据统计

  • 访问量: 7739
  • 日志数: 13
  • 建立时间: 2006-12-11
  • 更新时间: 2007-06-25

RSS订阅

Open Toolbar