qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

QTP 10.0 破解新发现

QTP 10.0 破解新发现

2009-10-11 14:23 4801人阅读 评论(7) 收藏 举报

    最近想学习qtp,于是下载10.0 安装上,关于破解,网上有很多其破解的资料,但是却都是一样的操作步骤,在此,我先讲网上的前人资料抄袭如下,做一个完整的讲解:

   

破解步骤:

1.安装qtp,一路默认下来,到要求输入License的界面

2.拷贝mgn-mqt82.exe(下载)到C:/Program Files/Mercury Interactive(自己手动创建)文件夹下

3.自己手动创建C:/Program Files/Common Files/Mercury Interactive/License Manager文件夹

4.执行自己刚才创建的C:/Program Files/Mercury Interactive文件夹下的破解工具mgn-mqt82.exe,会提示lservrc文件生成。

5. 在C:/Program Files/Common Files/Mercury Interactive/License Manager/下找到文件lservrc,用记事本打开,复制文件LSERVRC中#之前的字符串,那个就是注册码, 如: 3QVWCPPOS5NGGFM6KPX64EQFSH6INFRJIVMC5WZ4XIIFIXX86UCPIP4M686DZKV9NANA9BUP# "QuickTestPro" version "6.0", no expiration date, exclusiveJZ7F79F6YQQFVUWNG2V7AW22K537DOELQYNX6VSCNCZ9J8M2QW9OXO5DSEQKUZA46X5BO# "FT-Unified" version "1.0", no expiration date, exclusive 就拷贝#号前的 3QVWCPPOS5NGGFM6KPX64EQFSH6INFRJIVMC5WZ4XIIFIXX86UCPIP4M686DZKV9NANA9BUP
然后粘贴到license向导中的license输入的地方,点击确定,可以看到信息为无限制使用,也可以打开qtp,在help-about qtp--License对话框中可以看到该qtp已经显示为无限制使用了 

 以上部分亲自验证过,以下部分未亲自验证过: 


插件延长使用时间方法:(试用于任何情况,包括插件已过期)

   已试成功的插件有JAVA/NET/ORACLE/POWERBUILDER/WEBSERVICE/DELPHI(其余的插件类似)
   控制面板-添加删除程序中删除所有附加插件,使用REGCLEAN注册表软件清理一下注册表,打开QTP一次, 再安装QTP95所需插件,打开QTP95,熟悉的13天又回来了.
    独立DELPHI插件延长使用方法 不管在任何时候安装DELPHI插件,其使用时间是由QTP95中已安装插件所能使用的时间来决定的.所以要延长使用时间的话,需要将所有插件全部卸载然后再重新安装 延长使用方法同上面一样.
   PS:千万注意不要随便修改系统时间,往后调即使插件过期还有办法让它继续使用,要是往前调系统时间那就怎么都没有办法再使用插件了.

这个是注册码生成工具: mgn-mqt82.rar(235 KB)

mgn-mqt82.rar(235 KB)

 

  我严格按照上面的步骤做了可是还是破解不成功,破解完,打开qtpro, 总是报一个runtime error. 经过多次的卸载重装还是不行,后来我打开 C:/Program Files/HP/QuickTest Professional/bin  (安装目录),发现一个文件 inst_key

 

 

 

打开这个文件,然后将上面提到的lservrc中#号前面的内容copy进取,点击确定,即可破解成功

posted @ 2011-10-28 11:39 顺其自然EVO| 编辑 收藏

微软的软件测试工程师——《微软的软件测试之道》

 一、职位名称含义:

  即使你给玫瑰花起不同的名字,它闻起来可能还是同样的香。但是,如果你给工程师不同的职位名称,他们对自己职责的理解就会大不相同。微软将那些通过编写代码来开发产品功能的软件工程师统称为“软件开发工程师”(Software Development Engineer,SDE)。而微软测试工程师的正式职位名称是“软件开发测试工程师”(Software Development Engineer in Test,SDET)。这两个职称听起来很像,因为微软的测试工程师也同时做开发。测试工程师的其他主要职责包括:制定测试计划、设计测试用例、分析缺陷的根本原因、参与程序代码的审查和产品设计的审查,以及开发测试自动化程序。有时测试工程师也参与产品源代码的开发,或缺陷的修正等工作。但总的来说,因为测试工程师的工作量很大,所以直接参与产品开发的情况并不是很普遍。

  雇用对测试有激情的软件工程师做测试工作是微软行之有效的创新,它完全不同于软件行业其他公司的做法。对此外界常得出一种结论,认为我们雇用会编写程序代码的工程师来做测试工作是因为我们想让他们编写有效的自动化测试程序,从而排除手工测试。其实这只是其中的一小部分原因。那些懂得怎样编写程序和计算机基本构造的测试工程师,常常具有软件测试所必备的分析技能。他们能够尽早发现缺陷并分析其根本起因,这使得他们能很快发现类似的缺陷。拥有和开发工程师一样的计算机基础增强了测试工程师的技能,给了我们的测试工程师更灵活和动态的生产力。

  2005年以前,微软将软件测试人员人分为:软件测试工程师(Software Test Engineer,STE)和软件开发测试工程师(SDE/T)。SDE/T 和STE的分工。

  可以看出,STE的工作更贴近于我们一般黑盒测试人 员的工作,专注于测试计划、测试用例、测试的执行以及设计方案的审查;SDE/T 的工作内容则是开发测试工具(安全、性能、自动化方面的工具的开发)以及找bug、参与设计方案审查、代码审查等一般的测试工作。(ps:只用大牛公司才 会设开发测试工具的测试人员,呵呵)

  2005年以后,微软调整了测试职称,将所有的测试人员统称为:软件测试开发工程师(SDET)

  微软的SDET培训路线图:

  二、微软的测试架构师

  微软1999年设立测试架构师职称。是专门为那些对产品有影响的高级独立贡献者而设的。测试架构师的职称反映了一个SDET对其所工作的产品的广泛影响力。而高级SDET、首席SDET、合伙人SDET的职称则主要是给那些对某个产品的功能产生影响的人。

  不过请记住,很重要的一点是测试架构师是一种角色而不是一个职位。尽管一个高级测试工程师可能会晋升为测试架构师,但是并不是所有的人都会成为 测试架构师。通常,有些部门会出于商业需要或策略需求设立一个测试架构师的角色。但有时候你也会看到一个高级测试工程师发挥测试架构师的作用,但是却没有 测试架构师的职称。注意,此处所讨论的是测试架构师的角色而不是测试架构师的职称。

  微软并没有具有普遍性或代表性的测试架构师角色。微软的测试架构师们致力于各种各样的目标,承担着各种各样的任务。有些人花时间开发测试的基本 结构、测试框架,或者评估产品功能、创立复杂的测试。有些人则负责管理其所在部门的某项特殊技术。还有些人负责怎样提高测试效率的咨询。所有测试架构师的 角色的共同点和主要职责是为本部门提供技术指导和制定策略方向。测试架构师的级别通常表明他们的职责范围--是致力于产品的一组功能、一条产品线,还是跨 越整个部门。当然,除了被期待对现有产品负责外,测试架构师还应该超越产品的现有版本而能高瞻远瞩,如果可能的话,还拥有两三个不与某个特别产品的发行有 直接关系的成果。

  微软的测试架构师不仅要有效地影响测试领域,还要在开发和项目管理方面发挥影响力。测试架构师必须能驾驭产品的质量、提供指导、反馈和建议,以提高整个工程部门的质量规范。

  前面谈论了测试架构师“是什么”,那么,测试架构师“不是什么”呢?测试架构师的职称不是因为级别或经验而授予的。设立测试架构师是一种投资。 这种投资结合了市场对有能力帮助产品做灵活变化的人才的需求。值得强调的是测试架构师并不是一种职业发展轨道。对测试架构师的技能要求和对相似级别的其他 职务的职业阶段发展要求是一致的,都强调跨组织的沟通和推动变革的能力。提示:

  截止至2008年,微软全球的9000多名测试工程师中只有四十几位测试架构师。

  三、微软的测试职业的发展道路

  1、从SDET独立贡献者开始的职业发展历程

  影响力的范围从一个狭窄定义的产品功能扩展到一个系列产品的功能、一个完整的产品。比如Microsoft Office Word或者Microsoft Media Player,直到最后达到一条产品线,比如Office或者Windows系统。影响力可以像测试架构师的职位那样,基于测试的各个方面横向延伸,也可 以基于一个像协议安全那样的技术领域纵向延伸。

  合伙人SDET并不是一个工程师的职业发展轨道的最高点,却是测试职业发展轨道的最高点。合伙人SDET 比杰出工程师(Distinguished Engineers)(相当于公司副总裁级别)要低一个级别。这并不是因为微软觉得在测试领域不需要杰出工程师,而是我们相信随着工程师们在职业道路上不 断地前进发展,他们的行为表现变得越来越相似,不同学科的差异所带来的影响价值在减少。在某种意义上,每一个从事10个工程学科中的任何一个学科的工程 师,随着他们技术领域的发展,都可以达到成为另外一个学科的工程师的水平。

  2、从SDET管理开发的职业发展历程简介

 在微软,当一个工程师转向管理职位时,这是一个"平级"的变化,转为管理人员这并不说明你有更高的工资,更好的办公环境。也就是说微软有技术人员都有资深的技术背景,而他们在管理的同时也要分担技术工作。

  有一点很重要,在决定一个SDET主管能否在职业道路上继续前进和发展的因素中,技术复杂度和他的技术水平远比他所管理的测试组的大小重要。负 责测试产品安全的小组就是一个例子。这些规模小,但技术含量高的组通常对产品的质量有着重要的影响,所以在这样的组里,你可能常会发现一个更资深的 SDET主管。在一个相对规模较小的组,SDET主管自己也需要做很多的测试、编程、分析和记录软件漏洞的工作。从最高级别的执行董事到刚加入的新员工, 产品组的每一个成员在发现产品漏洞的时候都应该对漏洞记录存档。随着一个组的规模越来越大,主管需要承担更多的管理职责,而在具体的技术工作上花费的时间 较少。无论组的规模大小,SDET主管都应该具备很强的技术能力,同时也担负起一个组的技术领导工作SDET主管通常都是组里对一个产品功能懂得最多的工 程师,同时也是组里最好的测试和开发人员之一。

  3、测试经理职称

  测试经理很少需要亲自作具体的测试工作事项,比如编写和执行测试用例。但每一个在测试领域的人,无论他是什么级别,都会亲自动手找软件的缺陷。测试经理仍然需要懂得技术,但要求他们多注重建立测试的流程和工具,而不是在具体的功能测试上。

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

  个人看法:

  1、关于测试人员是否需要懂开发的问题是许多测试人员讨论的问题,个人看法,当测试走到一定深度就会有瓶颈,要想做 的更远,学习开发是一个突破口,我觉得不懂开发的测试犹如“隔衣挠痒”,什么感觉?自己体会!提示并一定要精通开发,但一定要有开发思想。也许微软的产品 特殊,所以他们所有测试人员都整成了SDET(软件测试开发工程师),既然存在就有它的意义,而且还是在那么牛叉的公司存在,希望和我一样的小初级测试员 它当做一个目标去努力。

  2、微软的工程师转管理职位是“平级”的,而且要转管理一定在技术上优于同事,可见微软把技术看的很重要,就目前我 所知道的测试人员相对来说比较浮躁,工作内容散而不深,工资相对开发人员低,尤其刚入行的测试员,好多公司没有给出很好的定位,职业发展比较迷茫,这是我 们测试行业的现状,但我还是希望各位平心专注于技术上。

  (以上个人观点,欢迎拍砖~!呵呵)


posted @ 2011-10-28 11:00 顺其自然EVO| 编辑 收藏

单元测试之白盒测试方法——代码审查

我所在公司内目前还没有单元测试,前两天测试某系统的FTP上传功能时,发现其软件的流程设计有问题,进而觉得单元测试对系统还是很重要的,今天又在网上查看了很多关于单元测试的文章,发现现在做单元测试的公司还真的不是很多呀。原因之一单元测试的bug发现率太低使得公司忽视了这一块;再就是公司内没有一个好的单元测试流程。鉴于上面提到的两个原因及公司现在的环境(流程的可行性),我想出了以下的白盒测试流程。简称单元测试之白盒测试方法(代码审查)。

  首先先说一下测试中需要出的文档。

  在单元测试前可以进行代码规范性审查。注:可以对所有代码进行规范性审查,也可以对重点代码进行规范性审查。此步骤可裁剪。

  1、单元测试申请。注明测试的功能点,时间,各功能点测试原因等。

  (1)测试功能点

  (2)测试进度

  (3)每个功能点的测试原因

  2、制定单元测试计划。在 许多资料中定义单元测试中的单元时各不相同。有用模块的,有用函数的,有用类的等。偶在这里为了可操作性,再就是偶测试的系统都是应用软件,很重视界面的 操作,所以偶将单元定义为界面上的功能性操作。如添加按钮等。当然不会是这么简单的。偶只是将比较复杂的一些操作写入了单元测试计划中。单元测试的计划模 板如下:

  (1)定义单元测试功能点。如(ftp上传功能)

  (2)功能点需求规格说明书。

  (3)功能点测试时间。

  (4)功能点测试的组织方式及人员。

  (5)功能点测试采用的方法。

  (6)功能点测试的通过标准

  3、单元测试设计。在单元测试设计中主要由开发人员将其程序的设计思路,即流程图画出。

  (1)功能点需求。

  (2)功能点设计流程图

  (3)功能点设计数据流图

  (4)功能点伪代码(可裁剪的)

  4、单元测试用例这一部分主要由测试人员根据功能点需求进行测试用例的设计

  (1)功能点需求

  (2)测试用例设计方法

  (3)测试用例

  5、评审人员的bug记录

  (1)测试功能点

  (2)测试bug记录。

  6、单元测试报告。这一部分由开发人员写单元测试用例报告,包括本次单元测试发现的bug类型,单元测试中拒绝bug的原因,单元测试情况等。

   然后再提一下测试的组织方式。由项目经理或者系统设计人员准备单元测试申请,单元测试计划,单元测试设计(单元测试设计也可以由开发人员准备),准备好 以上文档后,提交测试部门;测试人员根据上面的文档出单元测试用例(单元测试用例也可以在需求出来以后就出,此处可以灵活变通);然后测试人员根据上面的 文档检查设计中的bug,填写bug记录单;测试人员根据bug记录单组织专家评审(项目经理、设计人员等),专家针对测试人员测试出的bug进行讨论, 在评审中专家也可以提出新的bug记录到bug记录单中,最后在评审中达成协议,bug记录单中的问题哪些修复,哪些不修复怎样处理等,最后由开发人员修 改bug记录单中的问题,修改完后交给测试人员,测试人员可以用黑盒测试的方法验证bug记录单中的问题是否修改。验证完后,由开发人员填写单元测试报告。单元测试完成。

  累死了,终于完成了,希望大家多提宝贵意见。

posted @ 2011-10-28 10:29 顺其自然EVO| 编辑 收藏

一些关于Java的琐碎知识点

1、对于类中的final类型属性,一般在声明的时候直接写final int a =1;

  但也可以在构造函数中进行赋值,如:

final int a;
A{}( a =1;)

  但要注意:需要每一个构造函数都赋值,且不能嵌套。

  而如果想写static final int a;则必须在声明时进行初始化,static final int a = 1;因为静态的也是不属于类。

  2、继承中要注意的问题:子类对父类中构造方法的问题。

  父类的中构造方法不能被继承,故

class A{}
class B extends A{ A();} //是错的,只能用super关键字

  如果子类中没有显示的调用super,则系统会加上,super();注意即是找父类中无参数的构造方法,所以,如果父类自己写了构造方法而导致无参数的已经不存在了,则会出错.

  3、静态方法:只属于类本身,而不是某个对象。它是在类加载的时候,就已经为之分配好内存了。这时,并没有产生这个的对象。而对象只有在new时候才会出现。所以只能把这个变量加个static.这也叫做类变量,与之对应的叫做实例变量。

  4、main是静态的,因为它不是属于某个类的,而是全局的。因此在执行时直接找到main,而不是针对某个类的对象。如果不是static,则会先产生类的对象。

  public:由于其是虚拟机调用,因此必须是public的。

  static:由于其不必产生对象,因此是static的。

  5、对于主类的修饰符是default时:表示在同一个包中可以被访问。

  6、final类不能被继承。

  7、private的方法,只要出了类就不能被访问,不管是在同一个包中,还是继承关系。默认的访问权限都是在这个包中,被继承也不能被访问。

  protected方法对以上均适用,但和public方法也有区别

  在于:对于不同包中,没有继承关系的两个类而言,在一个类中使用了另一个类的对象,则只有public方法可以被访问,而protected方法不能被访问。

  8、抽象方法的声明:abstract void proMethod(); //不要加大括号

  看一个类是否被实现,不是看{}里面有没有代码,而是看有没有{}

  9、JNI(Java Native Interface),它允许Java虚拟机(JVM)内部运行的Java代码能够与用其它编程语言(如c、c++、汇编语言)编写的应用程序和库进行互操作。

  JNI可以理解为Java和本地应用程序之间的中介。

  它最大的好处是没有对底层Java虚拟机的实现施加任何限制。

  写一个native的方法:

  1)写java代码段,如HelloWorld.java。

  2)用javac来编译之,得到.class文件。

  3)用javah -jni 来生成HelloWorld头文件,得到HelloWorld.h

  4)用HelloWorld.h来生成本地方法,得到HelloWorldImp.c

  5)编译本地代码,加载共享库,生成Hello.so(so文件是linux,或unix下动态连接库的文件,相当于windows下的.dll)

  10、对于接口中的方法,默认情况下就是public abstract的,因此不用再写,也因此,实现接口时必须用public来修饰。

  接口中的数据成员默认都是public static final.

 11、

以下是代码片段:
 class Z extends A implements B,C
  {
  }
  //注意这个顺序先派生类,再实现接口。

  12、有关内部类:当我们产生一个派生类的对象的时候,它会调用基类的构造函数,产生一个基类的对象。因此

以下是代码片段:
 class Car
  {
  class Wheel
  {
  }
  }
  class PlaneWheel extends Car.Wheel
  {
  public static void main(String[] args)
  {
  PlaneWheel pw = new PlaneWheel();
  }
  }

  这是不能通过编译的,因为我们要产生pw,就必须先产生Car.Wheel的对象,而它是内部类,所以要产生它的对象,就必须先产生外部类的对象,才能建立起内部与外部的引用关系。

  因此作出改变:

以下是代码片段:
  class PlaneWheel extends Car.Wheel
  {
  PlaneWheel(Car car)
  {
  car.super();
  }
  public static void main(String[] args)
  {
  Car car = new Car();
  PlaneWheel pw = new PlaneWheel(car);
  }
  }

  21、javac A.java可以生成B.class,前提是classB在A.java中被声明为一个类,且不是Public的。

  22、finally的问题:不是在try,catch之后的语句就相当于finally,因为如果在try中有return语句,则其后的是不会被执行的。而如果放在finally中,则一定会执行。

  如果在代码中会有一个严重错误,而不想让finally中的语句执行,则写

  System.exit(-1);来避免其执行。//不是0就可以。

  23、c++中允许程序员重载操作符,但java中不允许。针对String的"+"和"+=",是java中唯一被重载的操作符。

  24、StringBuffer的应用:

  StringBuffer sb = new StringBuffer().append("a").append("bc").append("123");

  可用toString()方法,将其转化为toString();

  由于在打印时会自动调用toString方法,因此,打印时不必显示加上。

  25、java中的索引是从0开始,而且,对于一个区间的数值,是大于等于,小于的关系。即前面的数字是包含的,而后面的是不包含的。

 26、java中,传参时:对于基本数据类型,传递的是数据的拷贝;对于引用类型,传递的引用的拷贝。但是对于引用的拷贝,是浅拷贝,即指向了堆中同一处内存。

  因此在改变值的时结果不一样,对于基本类型,其回到传参者时没有改变其值,而对于引用,其值则改变了。

  27、有的接口中没有任何抽象方法,如cloneable,叫作标识接口。它仅仅是告诉编译器自己可以被克隆。

  如果类中的成员有引用,则涉及到浅拷贝还是深拷贝的问题。

  浅拷贝就是把除了引用成员的全都拷贝一份,而对于引用部分则指向同一处。而深拷贝就是把所有的都拷贝一份。

  调用super.clone()方法,它可以在运行时刻,object中的clone()识别出你要复制的哪一个对象,然后为此对象分配空间,并进行对象复制,将原始对象的内容一一复制到新对象的存储空间中。

  28、Integer的

  valueOf(String s) //把s转化成一个包装类对象返回

  parseInt(String s) //把s转化成一个int型数据返回

  封装类的对象的值是不能被修改的,只能是读。

  29、java中,每个class都有一个相应的Class对象。也就是说,当我们编写一个类,编译完成后,在生成的.class文件中,就会产生一个Class对象,用于表示这个类的类型信息。

  获取class实例的三种方式:

  a)利用对象调用getClass()方法获取该对象的class实例;

  b)使用class类的静态方法forName(),用类的名字获取一个class实例

  c)运用.class的方式来获取class实例,对于基本数据类型的封装类,还可以用.type来获取相对应的基本数据类型的class类型。如:

以下是代码片段:
Point pt = new Point();
  Class c1 = pt.getClass();
  System.out.println(c1.getName());
  try{
  Class c2 = Class.forName("Point");
  System.out.println(c2.getName());
  }
  catch{……}
  Class c3 = Point.class;
  System.out.println(c3.getName());
  Class c4 = int.class;
  System.out.println(c4.getName());
  Class c5 = Integer.TYPE;
  System.out.println(c5.getName());

  30、java中的反射api:主要用于:对于某个不知道名字的类,通过反射机制调用他们的构造函数,为构造函数及其他函数进行传参,调用。

  31、runtime这个类提供了应用程序与环境之间的接口。可以获取jvm的总共内存,已占有的内存。用getRuntime()方法获取其实例。

Runtime rt = Runtime.getRuntime();
System.out.println(rt.freeMemory());
System.out.println(rt.totalMemory());

  另可以有执行命令,返回一个process. 为应用程序做准备。

try{rt.exec("notepad");}
try{rt.exec(javac ArrayTest.java);};

  要获得其具体输出的信息,可以用process类。

try{
Process p = rt.exec("java ArrayTest");
InputStream is = p.getInputStream();//此时,其输出全在了 InputStream中
int data;
while((data=is.read())!=-1)
{
System.out.print((char)data);
}
}

  Runtime类是使用单例模式的一个例子。

  32、单例模式:

  a)一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类。

  b)单例类的一个最重要特点:它是类的构造方法是私有的,从而避免了外部利用构造方法直接创建多个实例。

以下是代码片段:
class Singleton
  {
  private static final Singleton st = new Singleton();
  private Singleton(){}
  public static Singleton getInstance()
  {
  return st;
  }
  }


posted @ 2011-10-28 10:25 顺其自然EVO| 编辑 收藏

Mantis安装与配置

http://blog.csdn.net/sunxy5291/article/details/6014216

posted @ 2011-10-27 18:30 顺其自然EVO| 编辑 收藏

Windows下搭建Mantis详解

Windows下搭建Mantis详解

下边是在Windows下搭建Mantis的详细过程,太长了,只能分开发上来,不过我会附一个pdf的文件上来,需要的可以下载。
搭建环境:
        apache_2.2.13-win32-x86-no_ssl.msi
        php-5.3.0-Win32-VC6-x86.zip
        mysql-5.0.22-win32.zip
        mantisbt-1.1.7.zip
        辅助工具:
        EMS(mymanager_lite.zip):可以通过界面形式操作Mysql数据库
        PhpMailer(PHPMailer-ML_v1.5.zip):搭建Mantis邮件服务器
        Jpgraph(jpgraph-2.3.4.rar):实现Mantis的统计报表功能
安装并配置Apache
下载地址:http://httpd.apache.org/download.cgi
运行下载的软件开始安装,开始都是next,到如下界面时:

        设置系统信息
        Network Domain:
        在Network Domain下填入您的域名(比如:ok.com)
        Server Name:
        在Server Name下填入您的服务器名称(比如:www.ok.com,也就是主机名加上域名;如果自己的ip是公网ip,这里填写自己的ip,其他人即可访问自己搭建的mantis,如果有自己的域名,这里可以填写域名,别人可以通过这个域名访问自己的mantis,因为我自己电脑没有公网ip,在网上找了几个把内网动态解析的软件也没有成功,所以这个功能没有验证,需要外网访问mantis的可以验证)
        Administrator's Email Address:
        在Administrator's Email Address下填入系统管理员的联系电子邮件地址(比如:423114976@qq.com
        上述三条信息仅供参考,其中联系电子邮件地址会在当系统故障时提供给访问者,三条信息均可任意填写,无效的也行(以后需要修改时可以在apache安装目录下的conf文件夹下找到httpd.conf这个文件进行编辑,查找ServerName可以修改服务器名,想让别人通过这个访问,需要去掉这句话前边的#;查找ServerAdmin可以修改管理员的邮件地址)。
        端口选择:
        下面有两个选择,图片上选择的是为系统所有用户安装,使用默认的80端口,并作为系统服务自动启动;另外一个是仅为当前用户安装,使用端口8080,手动启动。
        注意:检查80端口有没有被占用,我安装时就由于打开IIS,导致apache无法启动。如果要查看80端口被哪个程序占用,可以在命令行窗口中输入netstat -an,找到占用该端口的程序的PID,然后在任务管理器中点"查看"->"选择列...",勾选"PID",找到该PID的程序,结束任务。
3、接着到选择安装方式的界面,选择Custom的安装方式,这样可以选择安装路径,选择好后一路next即可,知道Finish,安装完成。
4、测试apache按默认配置运行的网站界面是否正常,在IE地址栏输入“http://127.0.0.1”,显示It works,表示apache服务器已安装成功。(以前版本的apache的默认网站界面有可能跟此版本的不同,如果没有报错基本都是正常的,为了确认,也可以到apache安装目录下的htdocs文件夹找到index.html,在本地打开看是否跟浏览器打开的相同)
3、配置(注意:修改配置文件后需要重启apache,修改才能生效):
        1)开始—>所有程序—>Apache HTTP Server 2.2—>Configure Apache Server—>Edit the Apache httpd conf Configuration file,点击打开,这时打开的是apache的配置文件httpd.conf;
        2)在Apache安装目录下,找到conf文件夹,打开里边的httpd.conf。
安装PHP
下载地址:http://windows.php.net/downloads ... 0-Win32-VC6-x86.zip
选择适合的版本:
在网上找到一段PHP版本的说明,如下:Download the VC6 builds if you are using the standard Apache.org web server. The VC9 builds should be used for the Apache Lounge binaries or IIS.
A Thread Safe version should be used if you install PHP as an Apache module. The Non Thread Safe version should be used if you install PHP as a CGI binary.
   因为我安装的是标准版的apache,而且需要以apache module模式安装PHP,因此下载的是VC6的Thread Safe版本,大家可以根据自己的需要选择适合的版本。
3、我下载的是压缩包,把它解压到指定的位置,我的设定在“D:\PHP”
4、配置:
        1)把D:\PHP\php.ini-development或php.ini-production(如果是其他版本的PHP,可能需要改php.ini-dist)改成php.ini;
        2)查找extension_dir,改为extension_dir="D:\PHP\ext" ,并去掉前边的分号,因为ext文件夹下有很多我们可能需要调用的扩展库;同时需要在系统环境变量的path里边添加上php安装路径和其子路径ext,方法是:“我的电脑”上右键—>属性—>选择“高级”标签—>点选“环境变量” ,在“系统变量”下找到“Path”变量,选择,双击或点击“编辑”,将“;D:\PHP;D:\PHP\ext”加到原有值的后面,然后全部确定。
        注意:添加后请务必重启OS,才能生效,否则不能正确加载PHP扩展库,比如mantis要用到的php_mysql.dll,不过可以先配置完,到安装mantis的数据库前再重启。
        3)查找php_mysql.dll,将这一行前面的号去掉,这样PHP就能调用mysql模块了,如果没有就自己加进去extension_dir=php_mysql.dll  
        4)查找include_path,找到“; Windows: "\path1;\path2"”,把它下边一行改为 include_path = ".;d:\PHP\PEAR" ,并去掉前面的分号,因为Mantis中用到了Pear库,需要包含Pear库。
5、将php以module方式与Apache相结合,使php融入Apache(如果下载的是.msi安装版本的php,安装中选择支持apache 2.2.x,那么会自动配置apache的http.conf文件、mime.types文件和产生PHP的php.ini文件,由于,安装版本内容不全,没有ext和pear等目录,所以,安装完后,将解压版解压到刚才的安装目录下,此括号内是根据网上下载的配置文档整理的,因为自己直接用的压缩包,没有验证安装版本的)
   1)打开apache的配置文件http.conf,搜索#LoadModule ssl_module modules/mod_ssl.so ,在此句下边添加如下两行:
      LoadModule php5_module D:/PHP/php5apache2_2.dll
        PHPIniDir "D:/PHP"
        第一行指以module方式加载php;
        注意:D:/PHP/php5apache2_2.dll是PHP的安装目录下的dll文件,如果是apache2.2,必须写"php5apache2_2.dll",如果是其他版本的apache,可以到php安装目录下找相应的dll文件,php与apache的版本一定要对应
        第二行指明php的配置文件php.ini的位置。
   2)搜索AddType application/x-gzip .gz .tgz,在这行下边添加如下一行:
      AddType application/x-httpd-php .php
      你也可以加入更多,实质就是添加可以执行php的文件类型,比如你再加上一行“AddType application/x-httpd-php .htm”,则.htm文件也可以执行php程序了,你甚至还可以添加上一行“AddType application/x-httpd-php .txt”,让普通的文本文件格式也能运行php程序。
   3)目录默认索引文件也可以改一下,因为现在加了php,有些文件就直接存为.php了,我们也可以把“index.php”设为默认索引文件,搜索DirectoryIndex,找到如下一段:
        <IfModule dir_module>
          DirectoryIndex index.html
        </IfModule>
      把中间一句修改为:
        DirectoryIndex index.php index.html
        优先顺序可以自己排,我把index.php放在第一位了。编辑完成,保存,关闭。
6、验证是否配置成功:
   在apache的安装目录下的htdocs文件夹下建一个index.php文件,代码如下:
   <?php
        phpinfo();
        ?>
在IE地址栏中输入“http://127.0.0.1”,如果看到phpinfo的界面,说明配置成功。
安装Mysql
下载地址:http://download.mysql.cn/src/2006/0710/5543.html
安装:


在3个选项中选择第3个Custom,在接下来的安装中可以自己进行一些设置。

安装路径可以自由选择



        这里是询问你是否要注册一个mysql.com的账号,或是使用已有的账号登陆mysql.com,一般不需要了,点选“Skip Sign-Up”,按“Next”略过此步骤。


        现在软件安装完成了,出现上面的界面,这里有一个很好的功能,mysql配置向导,不用向以前一样,自己手动乱七八糟的配置my.ini了,将 “Configure the Mysql Server now”前面的勾打上,点“Finish”结束软件的安装并启动mysql配置向导。


        选择配置方式,“Detailed Configuration(手动精确配置)”、“Standard Configuration(标准配置)”,我选择“Detailed Configuration”。

        选择服务器类型
        Developer Machine:开发测试类,mysql占用很少资源
        Server Machine:服务器类型,mysql占用较多资源
        Dedicated MySQL Server Machine:专门的数据库服务器,mysql占用所有可用资源
        大家根据自己的类型选择了,一般选“Server Machine”,不会太少,也不会占满,大家根据自己需要进行选择,因为我是在自己电脑上测试搭建,所以选择了第一个“Developer Machine”。

        选择mysql数据库的大致用途
        Multifunctional Database:通用多功能型,好
        Transactional Database Only:服务器类型,专注于事务处理,一般
        Non-Transactional Database Only:非事务处理型,较简单,主要做一些监控、记数用,对MyISAM数据类型的支持仅限于non-transactional
        随自己的用途而选择了,我这里选择“Multifunctional Database”,按“Next”继续。

        对InnoDB Tablespace进行配置,就是为InnoDB 数据库文件选择一个存储空间,如果修改了,要记住位置,重装的时候要选择一样的地方,否则可能会造成数据库损坏。我这里没有修改,使用用默认位置,直接按“Next”继续。

        选择您的网站的一般mysql访问量,同时连接的数目
        Decision Support(DSS)/OLAP:20个左右
        Online Transaction Processing(OLTP):500个左右
        Manual Setting:手动设置,自己输一个数
        我这里选“Decision Support(DSS)/OLAP”,按“Next”继续。

        是否启用TCP/IP连接,设定端口,如果不启用,就只能在自己的机器上访问mysql数据库了,我这里启用,把前面的勾打上,Port Number:3306,按“Next”继续。下边的选项是设定服务器模式,建议勾选。

        这个比较重要,就是对mysql默认数据库语言编码进行设置,第一个是西文编码,第二个是多字节的通用utf8编码,第三个可以选择自己需要的编码。按 “Next”继续。

        选择是否将mysql安装为windows服务,还可以指定Service Name(服务标识名称),是否将mysql的bin目录加入到Windows PATH(加入后,就可以直接使用bin下的文件,而不用指出目录名,比如连接,“mysql.exe -uusername -ppassword;”就可以了,不用指出mysql.exe的完整地址,很方便)。按“Next”继续。

        这一步询问是否要修改默认root用户(超级管理)的密码(默认为空),“New root password”如果要修改,就在此填入新密码,“Confirm(再输一遍)”内再填一次,防止输错。“Enable root access from remote machines(是否允许root用户在其它的机器上登陆,如果要安全,就不要勾上,如果要方便,就勾上它)”。最后“Create An Anonymous Account(新建一个匿名用户,匿名用户可以连接数据库,不能操作数据,包括查询)”,一般就不用勾了,设置完毕,按“Next”继续。

确认设置无误,如果有误,按“Back”返回检查。按“Execute”使设置生效。

        下边是一些摘自网上的安装出错时的解决办法,如果安装时出现问题,可以参照下边方法,可能会有帮助:
如果一次安装不成功,卸载后,不会自动删除安装目录下的文件和数据文件,应自己手动删除才能重新安装,否则会有影响
           存在须删除文件的地方:
        1.你选定的安装目录或默认的安装目录
        2.你指定的数据文件存放目录
        3. C:\Documents and Settings\All Users\Application Data目录
如遇安装完配置最后一步启动服务失败,原因可能是以前装过没有卸载干净。可卸载重新安装来解决,也可取消配置,在cmd用命令“net start mysql”启动
安装EMS,可以通过图形界面操作Mysql数据库
下载地址:http://www.jspcn.net/mngtools/mymanager_lite.zip
安装Mantis
下载地址:http://downloads.sourceforge.net/mantisbt/mantisbt-1.1.7.zip
我下载的是当时的最新稳定版本1.1.7。
安装:
把Mantis的压缩包解压到自己指定的目录,我的路径是D:\mantis。
配置Apache
        在Apache的配置文件中设置mantis的目录为虚拟目录。修改httpd.conf,在文件末尾添加以下文字,以配置mantis目录的访问权限:
        Alias /mantis "d:/mantis/" 
           <Directory "d:/mantis/">
            Options Indexes 
            AllowOverride None 
            Order allow,deny 
            Allow from all 
             </Directory>
        注意:这里特别注意,必须写成反斜杠/,不能写成斜杠\,否则会无法正确显示mantis。
为Mantis创建表、数据
         访问http://127.0.0.1/mantis/admin/install.php,出现如下界面,并按照图示填写:
        
        这里和以前的mantis比较大的不同,以前的mantis会提供一个 db_generate.sql数据库脚本来创建mantis需要的数据库,而新版mantis则通过install界面来自动创建,特别需要注意的是Hostname一栏,默认值为localhost,而如果MySQL 安装时变动了端口(mysql的默认端口是3306,如果安装时变动了则按此说明修改),则应该写成 localhost:端口号。
        这里还要注意一个问题,有时创建时会失败,提示:【Checking PHP support for database type 】的错误:BAD   database is not supported by PHP. Check that it has been compiled into your server.查看apache的log发现有如下错误:PHP Warning: PHP Startup: Unable to load dynamic library 'd:\\Program Files\\PHP\\ext\\php_mysql.dll' - \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0 这是因为不能正确加载php_mysql.dll库,导致php与mysql不能连携,请检查上边安装PHP后进行配置时需要添加的环境变量中是否添加了,如果已经添加,请确认是否重启系统了。
    注意:上图说的那个CheckBox不要勾选,“Print SQL Queries instead of Writing to the Database”这个选项的意思是打印出SQL查询,但是不实际执行创建数据库的动作。如果是要安装Mantis的话,不需要选这个选项。在选上这个选项的情况下点击最下边的Install\Update Database后会报错,这个好像是Mantis的ADODB库跟PHP逻辑之间的问题。由于某些原因,为了在修改或丢掉一些列之前丢掉约束,ADODB库需要有活动的数据库连接,并发出混有PHP逻辑的请求,很多手动重新创建的SQL请求是冗余的,因此会在选了“Print SQL Queries instead of Writing to the Database”这个选项时打印出的SQL代码中丢失,所以导致报错。
        安装成功后界面如下:
        
启动Mantis
        访问http://127.0.0.1/mantis/,出现登录界面,mantis的默认用户名为administrator,默认密码为root。
设置中文显示:
编辑mantis安装目录下的config_defaults_inc.php文件
搜索$g_default_language,并修改为:$g_default_language                = 'chinese_simplified';
注意:有的版本的mantis简体中文的表示方法不同,可以根据下边数组$g_language_choices_arr        = array()里边定义的各种语言中找相应的简体中文的表示方法。
配置邮件服务器:
        在Mantis中有新用户注册时,会给其指定的邮箱发一封邮件,点开邮件中的链接才可以设定密码,因此需要给Mantis添加发送邮件的功能。
下载地址:http://jaist.dl.sourceforge.net/ ... PMailer-ML_v1.5.zip
        如果安装的是其他版本的PHP,需要选择适合自己PHP版本的phpmailer的版本,我选择的是适合PHP5的版本,可以自由选择路径把它解压,我把它解压到D:\PHPMailer-ML_v1.5。
修改d:\mantis\config_inc.php,添加以下内容:
           # phpmailer
            $g_use_phpMailer = ON;
            $g_phpMailer_path = 'D:/PHPMailer-ML_v1.5/';
            $g_smtp_host = 'smtp.163.com';//发送邮件服务器
            $g_smtp_username = 'scmroad';//发送邮件账户的用户名
            $g_smtp_password = '123456';//邮件地址用户名对应的密码
            $g_phpMailer_method = 2;//此处的数值可为0,1,2;0为调用了一个mantis内置的mail()函数来发送邮件;1为sendmail方式;2为使用smtp方式,登录到邮件服务器内来发送邮件
            
            $g_return_path_email = 'scmroad@163.com';//这个是管理员自己的邮件地址,接受对mantis操作的提示邮件
修改mantis的时间
在config_inc.php中添加如下语句:
         #时区设置
        putenv("TZ=Asia/Shanghai");
        如果想设置时间显示的格式,还可以再加上如下语句:
         $g_complete_date_format = 'Y-m-d H:i:s';
        单引号内的字母分别代表:年-月-日 时-分-秒,可以根据自己的习惯修改格式。
        如果这样操作不能解决问题,需要修改php.ini的date.timezone = PRC,修改php.ini后,需要重新启动Apache服务。
登陆界面上的两个警告的处理
        刚配置好的mantis登陆界面会有如下两个警告:
        WARNING: You should disable the default "administrator" account or change its password.
        WARNING: Admin directory should be removed.
   解决第一个警告,需要修改administrator的密码。
   解决第二个警告,需要把mantis安装目录下的admin文件夹删除,一般情况,为了以后能够继续使用,可以重命名为_admin,或者直接将其压缩成一个admin.rar。
配置文件上传
1、在config_inc.php里添加如下两句:
        $g_allow_file_upload   = ON;
        $g_file_upload_method = DISK;
2、在mantis安装目录下新建一个文件夹upload,再在mantis建立的项目中把文件上传路径设置为“upload”(通过Web方式),这样上传的文件就会存放在upload目录中
3、修改上传文件的大小限制:
        config_inc.php 中添加 $g_max_file_size = 5000000; # 5MB(根据自己的需要修改)
        php.ini中修改upload_max_filesize = 5M 和 post_max_size = 5M
4、如果upload文件夹安全性高,不具备写权限,上传文件时会有问题,这时需要给此文件夹增加可写权限。(方法:右键点图片保存的文件夹,选择"属性"->"安全",点"添加"->"高级"->"立即查找",在查找结果中选择"everyone"后点"确定",在点"确定",然后把"everyone"的"完全控制"钩上,最后点"确定")
6、设置附件浏览功能:
        比如,在提交一个bug的时候,有时候会有截图提交附件情况,如果想直接看到错误截图而不想自己下载后再看,这也是需要设置就能实现的。但是这个功能只是针对bmp, png, gif, jpg格式的图片文件而言,提交的doc等文件就不在之列了。只需将config文件中de $g_preview_attachments_inline_max_size 进行设置即可实现此功能。当将这个设置为0的情况,那么查看bug的时候是永远不会出现附件贴图的,但是如果你将这个设置为一个足够大的尺寸,那么就会在bug里直接出现图片,这个数值是以字节计算,如果图片上传为32210字节,则你把$g_preview_attachments_inline_max_size=32211,而且任何小于这个字节大小的bmp, png, gif, jpg格式的图片文件直接显示了。
配置统计报表
下载Jpgraph:http://www.jpgraph.cn/soft/jpgraph-2.3.4.rar
        注意:JPGraph 1.x 版本是针对php4,2.x 是针对php5的,请根据php的版本下载对应版本。
        下载后把它解压到mantis安装目录下的core文件夹下的jpgraph文件夹内。
在config_inc.php里添加如下语句:
        #统计报表
        $g_use_jpgraph = ON;
        $g_jpgraph_path = "D:/mantis/core/jpgraph/src/"; #设置jpgraph的路径
        $g_graph_font = 'chinese_gbk'; 
在php.ini将“;extension=php_gd2.dll”前面的分号删除,这个模块是JPGraph在显示图表和进行汉字编码转换是所必须的。
修改mantis安装目录下的core目录下的graph_api.php,搜索graph_get_font,在graph_get_font函数中添加:'chinese_gbk' => FF_SIMSUN
修改jpgraph文件夹下的src目录下的jpgraph_ttf.inc.php,将111行到118行注释掉,如果版本不同,可能行数不对应,参考如下内容:
           /*        elseif( $aFF === FF_SIMSUN ) {
                    // Do Chinese conversion
                    if( $this->g2312 == null ) {
                        include_once 'jpgraph_gb2312.php' ;
                        $this->g2312 = new GB2312toUTF8();
                  }
                    return $this->g2312->gb2utf8($aTxt);
                }*/
解决CSV导出的中文显示是乱码: 
        假如到处的文件为administrator.csv,其中中文乱码解决办法:重命名administrator.csv为administrator.txt,另存时选择编码方式为ASCII改名过来,就可以了
说明
1、如果是在windows下装,要特别注意,文件路径的“/”,不能使用“\”,这在php配置文件中是注释的含义。
2、Mantis的设置是这样保存的:在config_defaults_inc.php中保存这Mantis的默认设置,用户自己的设置信息保存在 config_inc.php中,如果某个选项在config_inc.php中有设置,则系统使用config_inc.php中的设置,否则使用 config_defaults_inc.php的系统默认设置;config_inc.php.sample则是Mantis给出的一个用户设置文件例子。
        所以我们需要修改config_inc.php文件中的设置,设置很简单,各个参数的意义可以参见 config_defaults_inc.php,这里对每个参数都有详细的解释,虽然是E文,不过应该都能看懂;Sample中给出的一些设置是一定需要修改的,比如MySQL数据库的连接参数,管理员的邮箱的;其他的要根据你的实际情况进行修改。

posted @ 2011-10-27 17:43 顺其自然EVO| 编辑 收藏

Mantis深入学习

     摘要: 一、mantis的配置和开发环境  Mantis我用的1.2.5版,建议对mantis感兴趣的,都看看doc目录下的administration_guide和developers两个文档,自己试验里面的参数和功能,对mantis的理解能加深不少。当然了,即使不深入了解,直接使用mantis也不会有什么问题。  二、mantis结构分析  下面的内容,仅仅代表本人的一些看法,可能有不对的地方,大家可...  阅读全文

posted @ 2011-10-27 14:57 顺其自然EVO| 编辑 收藏

Android开发资源完全汇总

1、eoe Android开发者论坛


目前国内最早的Android开发者社区,人气非常旺聚集了不少Android开发方面的高手,开发中遇到的问题大都能在这里获得解决,网站最大的特色是定期发布《eoe特刊》,问答频道和资料分享做的也不错。

 

访问地址:http://www.eoeandroid.com


2、 AndDev


      国外非常好的一个Android开发者论坛,论坛版块划分完全面向开发者,从入门到进阶话题很全面,版主的水平也非常高,经常会出一些教程。


访问地址:http://www.anddev.org/


3、 helloAndroid


以教程为最大特色的国外网站对大家系统学习Android知识非常有帮助


访问地址:http://www.helloandroid.com/


4、 ACC 开发者论坛

 

国内的Android开发论坛,相对eoe要冷清得多,不过国人开源项目CoolReader在这里发布,给论坛增色不少。


访问地址:http://androidos.cc


5、 安卓视线 - Android开源项目分享平台


引用一下网站的介绍:Android 是Google开发的基于Linux平台的开源手机操作系统。Android为我们勾画了一个美好的移动互联网前景,学习Android开源代码是掌握 Android的一个最佳途径,我们希望每个对Android感兴趣的人都能够在这里掌握更多的知识、获得更多的灵感。

 

每天都有最新的Android开源项目推荐,对于大家学习优秀开源项目,开拓思路非常有帮助。


访问地址:http://www.androideye.com/


6、 几个比较好的Android个人博客

 

 

访问地址:

http://www.androidres.com/ 偏向资源分享

http://www.williamhua.com/ 偏向开发分享

http://www.moandroid.com/  偏向开发分享


7、 官方被河蟹


http://developer.android.com/   Android开发官网

http://groups.google.com/group/android-developers  Android开发官网讨论区


还有一些排名不分先后随时补充:

http://stackoverflow.com/questions/tagged/android   Android问答系统

http://www.javaworld.com.tw/jute/post/page?bid=26&sty=1&age=0&s=170   form 台湾

posted @ 2011-10-27 11:11 顺其自然EVO| 编辑 收藏

软件测试理论之测试用例设计六把刀

日常设计测试用例的时候,有许多经典的测试理论。比如边界法、等价法,这些经常用到我们日常的工作中。当然也有许多的理论,比如正交分解法是使用起来非常费劲。往往转化为实际的容易理解的测试语言就非常困难。

  测试的时候,我们也会碰到难堪的场景,那就是测试遗漏。

  我们来分析下,开发的过程。开发拿到需求后,就会开发相应的代码,然后简单的测试下功能。代码之间有可能是互相调用的,代码可能影响到的模块,有些开发是知道的,有些是不知道的。如果是有关数据库的操作,一个地方的改动有可能影响了多个模块。所以问题的复杂性就体现在这里了。

  那么对于日常测试每个新功能,我们该怎么去构筑我们坚固的质量堡垒呢。

  根据开发过程的特点,总结了我们设计测试用例六把刀。

  一、功能

  关注页面单个功能点验证,充分考虑开发改动的每个点。这个是保证开发每个已知的修改点都能改对。

  二、关联

  重点考虑修改点对其他模块的影响,包括代码的影响和操作数据引起的影响。

  比如新增加的功能增加了数据库表的字段,必须关联的验证每个使用该表的该字段的模块是否正常工作。难点在于需要分析出已知和未知的影响模块,考虑的越多,往往遗漏的问题就越少。

  三、流程

  很多系统是有流程的,比如工作流系统。当修改了一个点的时候,我们必须考虑整个流程是否能够正常运转起来。

  四、升级

  我们大部分系统都是对已有的系统进行升级。对于升级前的数据,我们必须保证能够正常工作。升级之前,需要模拟好各种情况。同时,也需要对升级的数据库脚本进行充分的检查。

  五、安全

  比如菜单功能权限等。

  六、性能

  有的时候需要对性能进行考虑,比如升级脚本的执行效率,功能点的响应时间,事务交易的时间。

  这六把刀现在已经应用到了我们日常设计测试计划,测试用例工作中去了,成为了大家思考的一个入口点。后来大家发现有如下特点:

  1)实践证明,该方法非常灵活。

  在不同的颗粒度设计测试用例都可以作为我们思考的一个切入点。比如站在测试计划的角度,站在每个测试用例的角度都可以使用。

  2)平易近人

  道理非常简单,非常容易理解,可操作性非常高。不再是只能在课堂上讲,在实践中用不上的理论了。

  3)功能和关联使用频率最高

  实践证明这两个理论几乎可以用到每轮的测试中。同时为我们发现了不少的BUG。(以上言论仅代表作者的个人观点,不代表51Testing观点)

posted @ 2011-10-26 15:34 顺其自然EVO| 编辑 收藏

如何提高测试用例的复用性

问题描述:系统测试阶段编写的测试用例少则几百,多则过万,花费时间很多,而且有相当一部分用例只执行一两次,复用性不佳。这里想讨论一下如何提高用例的复用性,尤其是不同项目之间。

精彩答案:

会员 yolander :

  对于测试用例的复用,我想很多测试工程师都会非常有话说,系统变更频繁,业务变化大,工作流 不统一等等,很多现实存在的问题,都阻碍了测试用例的复用发展进程,但是金融风暴下,越来越多的IT公司都在为了降低成本而做不屑的努力,如解决方案的产 品化、搭建软件系统的可复用平台、开发可复用的功能组件等等,毫无疑问的,这些都会为了我们能够提高测试用例的复用性打下了基础,抛开开发人员的因素不 谈,而我们在这里也只针对如何从测试人员自身来提高测试用例的复用性来讨论吧:

  这里需要首先区分一下,是手动测试用例还是自动测试用例?

  一、对于自动测试用例,首先就是要改变脚本的开发方法,如:

  1.数据驱动脚本:将测试数据从脚本中分立,保存在外部文件中,当数据发生变化时,就不再需要更改代码,脚本的维护成本也比较低

  2.关键字驱动脚本:把脚本中的检查点和执行操作的控制都维护在外部文件中,同样的,数据也会与代码分离开,可以说是结合了数据驱动的脚本开发方法,提高了测试脚本的共享和复用,缺点就是脚本开发需要更多的编程经验和设计能力

  二、对于手动测试用例,那么我们就需要解决如下问题:

  1.测试用例管理工具:之前看到很多讨论,都没有提到这个,但我想说的是,工欲善其事,必先利其器,良好的测试用例管理工具,绝对会为测试用例的复用带来简单、方便和快捷,也比office文档更适用于测试用例库的建设和维护

   2.测试用例的设计策略:测试策略无非有两种,基于功能和基于风险,之前也在论坛里提到过,还有筒子回贴说,测试策略就是基于功能的,这点我不敢苟同, 基于风险的测试用例,往往才是最能被复用的,对于任何同类型产品来说,无论如何进行功能升级,其失效模式也一定大同小异,比如:汽车的失效模式之一——刹 车失灵,这个不论是小汽车、三轮车、还是大卡车,都会存在同样的问题,但是功能和性能上,三者之间的差异就比较大了,所以我才会提到我们需要在测试开始前 考虑这样一种基于风险的测试策略

  3.业务抽象:对于测试来说,同样需要跟研发的系统分析师有相当水平的测试设计师存在,他们的工作职责 是分析系统需求、抽象业务用例、设计测试方案来指导测试用例的进行,测试用例的复用也应该在这一环节被考虑,因为一条一条的去查找和审阅相同和相似的测试 用例,对于庞大的系统来说,由于海量测试用例的存在,无疑为大海捞针,但是从更高层次的业务用例中去寻找相似性,一定是更快捷的方法,但这也同时需要清晰 合理的、能够与分解后业务用例对应的、可跟踪可追溯的测试用例库结构,基于此,我才把管理工具放在了第一位

  以上是我对于“如何提高测试用例复用性”的问题答案,其中不考虑“如何正确编写测试用例?”“如何进行测试用例设计”等问题。

posted @ 2011-10-26 14:41 顺其自然EVO| 编辑 收藏

仅列出标题
共394页: First 上一页 375 376 377 378 379 380 381 382 383 下一页 Last 
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜