知识只有在交流过程中才能进步!

发布新日志

  • 谁是我的客户?

    2015-06-24 16:22:36

    2008-01-14 作者:云深水清 来源:CSDN

     

    一直埋头工作,突然间忽视了这个重要的问题——谁是我的客户?

    我们通常理解的客户是指组织外部的客户,我们要将我们的工作成果交给他/她,当然工作成果也称为交付成果,需要令客户满意,不然,客户是不会买帐的。根据工作成果为了令谁满意,客户还有其更广阔的意义。

    组织内的个体也都有自己的客户,而且有的,客户不只一个。对于组织内个体来说,可能心里最大的客户是他/她的上级领导,也许还有人的客户是自己。

    对于一个项目负责人来说,除了上级领导,心里的客户还有外部客户,外部客户的满意度也会影响上级领导的满意度,有时候心里最大的客户是谁,恐怕连自己也分不清。但是,你对客户满意的在意程度,绝对会影响到你工作成果的质量。
    软件开发项目是由一个个过程和流程组成的,需求分析-->设计-->编码-->测试,最终提交给外部客户的成果的质量,不是说哪个过程来决定的。如果每个过程的主体把下个过程看作自己的客户,非常在意下个过程对自己成果的满意度,那么我们能够在整体质量上得到提高。

    不过,我看到的现象(虽然是少数,但足以造成大的影响)却不是如此。写出来的设计书,实施人员没办法实施;做完的代码自己没有调试,就交给测试人员,连基本功能的正常运行也不行。

    我曾经在大家面前说过“SQA是为项目服务的,SQA的目的就是要确保项目成功”。那时候我更看重的是项目组对SQA工作的理解。但是后来,渐渐地,发生了微小的变化,但是这个变化的后果却是严重的(至少在我看来是这样)。原来说的,SQA是为项目服务,后来被理解成了“SQA为项目组服务”,我请项目经理来对SQA工作提点意见,结果产生了“SQA是为项目经理服务”。天啦,我竟然做出这样的事情,SQA是为项目经理服务!?很明显,SQA(软件质量保证)是为了确保最终客户对项目的信心,应该是站在外部客户的角度来工作的。如果说是为项目经理服务,那么有点曲解了SQA,应该换个职务名称,比如叫“项目经理助理”之类的,以免玷污了SQA的名号。

    一直以来,项目经理面对的外部客户是XX公司。对于提交成果物给XX公司测试时,总是小心谨慎,唯恐出错。而开发提交成果物给北京内部测试组时,情况却并不是这样。提交前,开发动作是尽可能快,不管有没有问题,先按时间做完了再说,有问题等到测试阶段的时候再来解决。对测试组的看法就是:我给你的程序肯定有错,你给我找出来,不找出来,提交到了XX公司出了问题就是你的错。测试人员无话可说,找bug就是自己的职责,没有给予权利来说程序的好坏,测得好,开发表扬你几句,最后功劳都算开发的,要是漏调几个bug,让XX公司测到了,那就不得了,项目质量不好头个就说测试人员水平不行,“为什么别人能测到,你们测不到”,有一点被忽视了,真正造成bug的不是测试,而是开发,当然这并不是说测试没有责任。

    然后就有开发开始来指导测试,该怎么做怎么做,测试成为了开发的下属。测试开始害怕开发了,开发变成了测试心中真正的客户,测试人员感觉这些bug都是自己的错,没有了对找到bug的成就感,唯一的感觉就是找到一个bug,被开发骂的几率少了一点。不过,当被骂得耳朵生了茧,或者防线崩溃了的时候,也就连最后一点愧疚的心理也没有了,有的只是对立和厌倦,没有被发现的bug会越来越多。

    既然大家对开发出来的程序肯定会存在Bug勿庸置疑,为什么就不能理解测试必然会有漏掉的Bug呢。换句话讲,如果要求测试不能漏掉一个Bug,是否也可以要求开发不要产生一个Bug呢。开发可以说,代码质量不是一天可以变得基本没有Bug,那么测试减少漏掉的Bug也是非一日之功啊。所以,开发不用指责测试,测试也不用指责开发,因为大家都半斤八两。

    我们应该给予测试权利来评判开发提交的质量,如果没有达到标准,有权要求返回处理,达到要求后再开始测试,测试提交对软件质量情况的报告,这个报告应该作为组织对开发的情况评判的重要依据。也许这样能够让开发把测试看作是客户,而不是下属。测试人员的地位也会提高,到时,测试部门(或者说质量管理部门)也就不会是谁都不愿意去的地方,或者被当成收容所了。

    http://www.uml.org.cn/Test/200801143.asp

  • 关于web_reg_save_param Ord=ALL的解决

    2008-09-09 15:57:41

    关于web_reg_save_param Ord=ALL的解决

    Apr 29

    我的关联:
    web_reg_save_param(”T0″,
    “LB=<input type=\”hidden\”name=\”rowinfoid\” value=\”",
    “RB=\”>”,”Ord=ALL”,
    LAST);
    本人测delete的操作,delete时必须要用checkbox勾选一条记录,这就涉及记录的id的问题,
    录制后回放所选择的那记录已经删除,肯定回放失败了,这种情况就要做关联了。
    知道要关联,但是要怎么关联呢?
    脚本录制好后要测试150个人并发,如果只取一个id那150人只有一人能通过。
    最好的办法就是系统自动取,而且操作一次自动取一次id.
    有可能就是取了很多ID存着,每次选一个来删除。
    道理我懂,但是要怎么实现呢?
    像我这种菜鸟级别的,又不会编程的,又没人教我的情况下,
    只能依靠网络了,搜索了好几个,copy了代码,出错无数。
    仔细检查,百思不得其解,最后干脆把copy来的代码都单独放到一个脚本里,compile后,没错!!
    但为什么在我录制的脚本里有错呢?
    再想,再尝试,发现把定义的变量”int i”紧挨着“Action(){”放就不会出错了,
    放action代码中间就会出错,原因我不知道,高手请指点。
    好了,代码不出错,那就回放,但是结果却不是我想要的,没有取到我想要的ID值。
    弄清了代码的意思再修改下,搞定了。

    int count;
    int id;
    int i;
    char task[50];
    char taskid[50];

    count=atoi(lr_eval_string(”{T0_count}”));   //把LR返回的数保存到count里
    for(i=1;i<=count;i++)
    {sprintf(task,”{T0_%d}”,i);     //分别把T0各个值保存到task数组中
    sprintf(taskid,”%s”,lr_eval_string(task));    //取得task数组当前值存到taskid里
    }
    lr_save_string(taskid,”taskid2″);    //把taskid变量转成参数,脚本里就可以直接用这个taskid2参数了

    回放结果:
    Action.c(236): Notify: Parameter Substitution: parameter “T0_count” =  “4″
    Action.c(239): Notify: Parameter Substitution: parameter “T0_1″ =  “112238″
    Action.c(239): Notify: Parameter Substitution: parameter “T0_2″ = “112237″
    Action.c(239): Notify: Parameter Substitution: parameter “T0_3″ =  “112236″
    Action.c(239): Notify: Parameter Substitution: parameter “T0_4″ =  “112233″
    Action.c(242): Notify: Saving Parameter “taskid2 = 112233″
    taskid2得到了我想要的结果,可以测试并发了。
    总结:lr_eval_string(”{参数}”)
    lr_eval_string(变量)
    lr_save_string(变量/常量,参数)
    初始化数据,或定义变量要紧挨着“Action(){”

    Related posts

Open Toolbar