发布新日志

  • 使用Spring 2.5 TestContext 测试框架(转载)

    2011-04-03 15:41:04

    http://www.ibm.com/developerworks/cn/java/j-lo-spring25-test/

     

     

    要创建一个基于Spring2.5的JUnit4.4测试用例其实相当简单,主要进行以下几步的工作:
    (1)创建一个扩展自AbstractTransactionalJUnit4SpringContextTests的类,该基类是Spring2.5为方便在JUnit4环境进行事务测试的类,它还提供了一个simpleJdbcTemplate属性让你可以方便地操控数据库表,便于对测试数据进行有效的操作;
    (2)用@ContextLocation注解指定你要加载的Spring配置信息所在的位置;(默认的加载文件信息请参阅Spring Documentation);
    (3)用@Autowired或@Resource注解注入你的Service接口,@Autowrired是指按类型将Spring Bean注入;而@Resource则按名称将Spring Bean注入。
    (4)用@Before准备待测试的数据,如果我们的数据库表结构没有任何数据,则可以在这里预先插入记录,以便进行单元测试,当整个测试完成后,这些数据都不会被保留在数据库中。
    (5)在需要进行测试的方法上使用JUnit4.4提供的@Test注解进行标示;

    下面我们以一个例子来说明如何编写一个测试用例:
    <1>示例信息
    假设我们有一个名为TrainProjectService的服务类需要进行单元测试,该Service接口的方法如清单1-1所示:

    Java代码 复制代码 收藏代码
    1. //清单1-1   
    2. public interface TrainProjectService {   
    3.   
    4.     // 根据ID获取培训项目信息   
    5.     public TrainProject getTrainProjectById(Integer trainProjectId);   
    6.     …   
    7. }   
    8.   
    9. //Spring配置信息如清单1-2所示:   
    10. //清单1-2   
    11. /cn/com/suhao/test/train/conf/applicationContext-train-service.xml   
    12. …   
    13. <bean  id="trainProjectService"    
    14. class="cn.com.suhao.test.train.service.impl.TrainProjectServiceImp">   
    15.        <property name="trainProjectDao" ref="trainProjectDao" />   
    16. </bean>   
    17. …   
    18.   
    19. /cn/com/suhao/test/train/conf/applicationContext-train-dao.xml   
    20. …   
    21. <bean  id="trainProjectDao"  
    22. class="cn.com.suhao.test.train.dao.impl.TrainProjectDAOImp" parent="parentDao" />   
    23. …   
    24.   
    25. //<2>测试用例   
    26. @ContextConfiguration(locations={"/cn/com/suhao/test/appconf/applicationContext.xml",    
    27.          "/cn/com/suhao/test/train/conf/applicationContext-*.xml"  
    28.         }   
    29. )   
    30. public class TestTrainProjectService extends AbstractTransactionalJUnit4SpringContextTests {   
    31.   
    32.     @Autowired  
    33.     private TrainProjectService trainProjectService;   
    34.     private Integer projectId;   
    35.        
    36.     @Before  
    37.     public void prepareTestData() {   
    38.         final String  sql = "insert into train_project(project_name, project_attendee) values('English Test', 'Mike')";   
    39.         KeyHolder keyHolder = new GeneratedKeyHolder();   
    40.         simpleJdbcTemplate.getJdbcOperations().update(   
    41.             new PreparedStatementCreator() {   
    42.                 public PreparedStatement createPreparedStatement(Connection conn)   
    43.                     throws SQLException {   
    44.                     PreparedStatement ps = conn.prepareStatement(sql);   
    45.                     return ps;   
    46.                 }   
    47.             }, keyHolder);   
    48.         projectId = keyHolder.getKey().intValue();   
    49.     }   
    50.        
    51.     @Test  
    52.     public void testGetTrainProject() {   
    53.         TrainProject trainProject = trainProjectService.getTrainProjectById(projectId);   
    54.         Assert.notNull(trainProject);   
    55.     }   
    56.        
    57. }  
  • QC学习总结

    2008-08-04 18:27:27

        到新公司,测试管理工具是QC,学习了一天的QC,个人认为基本上把QC的大部分功能都熟悉了,学习的时候是参考QC的用户指南的,用户指南写的很详细,学习过了,总结一下,因为之前用到的测试工具都是开源的,测试管理工具是testlink,缺陷管理工具是bugzilla,开源的工具很容易上手,也很简单,当然了,功能相应的也不多,而像QC这种专门的测试管理工具,里面涉及到的功能相对较多,而且,对于测试的一系列的流程,在QC中都有体现,学习起来是需要花费一定的时间,而且,如果仅仅是学习,其实并不能把他所有的功能都融会贯通,只有在实际的使用过程中,用到了,才能真正的掌握了,而如果仅仅是学一下,过几天可能就会又忘了。

        其实,我觉得,学习QC,最重要的是要理解QC组织测试的一个流程,首先是确定并组织测试需求,包括需求树的建立,针对需求树种的每个需求主体,创建详细的测试需求列表,而对于详细的需求列表,则需要添加详细的描述,分配优先级,以及其他的一些内容。

        确定好需求以后,接下来就是测试计划了,QC里面的测试计划其实是包含了测试用例的,确定测试计划可以通过需求直接转换为测试计划,也可以自己手工建立,而测试计划中还区分手工测试和自动测试。测试计划主要是根据应用程序的模块或者函数进行分割,构建测试计划树,然后层次结果划分为若干的测试单元或者测试需求。通过需求转换为测试计划,可以很好的利用需求和测试计划关于层次结构的相似性,但是,需求和测试计划毕竟还是有区别的,所以,还需要手工进行测试计划树的完善,在测试计划树种,每个主题下面都有多个测试,这个测试其实相当于一个测试点,而这个测试下面包括了具体的测试步骤,其实就是一个测试用例的组织。

        测试计划完成后,就是执行测试,在QC中执行测试是在测试实验室模块中的,执行测试,首先是要创建测试集,测试集是共同的一类测试的集合,例如,可以是测试新的某一类功能,或者是测试某一个特定的功能模块,总之,创建了测试集以后,就规定了一组测试,当然,需要向这组规定的测试中添加测试用例,同时也包括了分配测试人员的不同的任务。添加好测试集,分配好测试用例后,就可以执行测试,执行测试分手动测试和自动测试,在执行测试过程中,如果是手动测试,可以更改测试的状态,如果测试失败,可以添加缺陷到缺陷模块中。

        执行测试完毕后,进入缺陷管理模块,在这个模块里面可以新建缺陷,项目组的人可以查看缺陷,并且相关的人可以更改缺陷的状态,跟踪缺陷的状态,在测试计划中,可以将某个测试计划和缺陷进行链接,这也,可以在测试计划中,查看某个测试所关联的缺陷,而且,在缺陷详情中,也可以查看关联的缺陷。

        除了这四个主要部分,QC还提供了强大的分析和图片功能,这些功能,对进行测试报告或者分析测试覆盖是很有好处,也很方便的。

       以上是对学习QC的一个总结,因为学习时间短,而且没有进行实际的使用,总结的很有可能有错误或者遗漏,欢迎大家指出,在这里,只是为了说明,测试的工具学习并不难,主要是使用,测试的新知识,学习到了,勤于总结,对自己学习是一个整理的过程。

  • testlink安装Client doesnot support authentication protoco问题解决

    2007-12-11 19:12:43

    安装testlink ,配置好app  PHP  mysql后,安装testlink,出现提示:Client doesnot support authentication protoco问题解决:

     

    出错如下图

     

     

    错误原因:Mysql-server4.1.17版本以上时采用了新的加密策略,而他的PHP mysql-client只用的3.23,因此在向server请求conn时出现密码错误

     

    解决方法:

    选择开始菜单程序——mysql——mysql command line client

     

    打开mysql命令行输入root密码

     

    登录mysql ,输入命令:SET PASSWORD FOR

     

    再输入命令:'root(用户名)'@'localhost(主机名)' = OLD_PASSWORD('123'(新密码));

     

    再输入命令:UPDATE mysql.user SET Password = OLD_PASSWORD('123'(新密码));

     

    再输入命令:WHERE Host = ' localhost(主机名)' AND User = 'root(用户名)'

     

    再输入命令:FLUSH PRIVILEGES;

     

    重启电脑,

  • Testlink1.7R3使用说明书

    2007-09-17 19:51:53

        利用一天时间,终于写完了Testlink1.7R3的使用说明书,通过写测试说明书,对testlink有了更深的理解,但是依旧存在一些理解错误和困难,这里,现把我对testlink的一些理解写下来.希望能够和朋友们一起探讨,学习.

     

    实现的功能:

    1 根据不同的项目管理不同的测试计划,测试用例,测试构建相互之间独立

    2 根据树状的项目,组件,分类,测试用例,设计测试用例

    3 可以基于关键字搜索测试用例。

    4  可以将现有测试用例简单修改后复用,

    5  同一项目可以制定不同的测试计划,然后将相同的测试用例分配给改测试计划(可以实现测试用例的复用,筛选)

    6可以设定执行测试的状态(通过,失败,锁定,尚未执行),失败的测试用例可以和bugzilla中的bug关联,每个测试用例执行的时候,可以填写相关说明。

    7 测试结果分析(可以实现按照需求,按照测试计划,按照测试用例状态,按照版本,统计测试结果)

    8 自定义角色,通过角色控制用户权限

    9 测试结果可以导出为excel表格

    10 测试用例可以导出为csvhtml格式

    11 通过超连接,可以将文本格式的需求,计划关联

    12 可以将测试用例和测试需求对应。测试可以根据优先级指派给测试员,定义里程碑

    缺陷

    1         不能根据优先级筛选用例,如果需要优先级,必须通过关键字来实现,比较麻烦

    2         不能设定测试用例的种类,如果需要必须通过关键字来实现,更麻烦,也不太现实

    3          如果测试用例需要大量的数据,创建测试用例时不方便

     

    说明书下载地址:

     

  • Testlink1.7R3完整安装方法2

    2007-09-05 18:21:31

    5.优化配置

    通过以上步骤,可以成功进入testlink页面,首先需要创建一个产品,才可以进入testlink主页。进入testlink主页后,页面为英文,需要在菜单栏中的Personal中更改admin默认的语言,选择“Chinese silmpified

    此时,testlink界面部分内容依旧为英文,原因是汉化文件不完整,需要重新汉化,

    汉化方法:

    下载utf8版本的strings.txt替换testlink\locale\zh_CN目录下的strings.txt即可完成汉化

    下载网址:http://testlink.5d6d.com/thread-1-1-1.html

    此时,testlink里面日期会有乱码,需要修改testlinkcfg文件夹下的testlinkconst.inc.php文件,修改方法如下:

    打开 testlinkconst.inc.php文件

    查找'zh_CN' => "%Y锟斤拷%m锟斤拷%d锟斤拷 %H%M锟斤拷%S锟斤拷"

    修改为:'zh_CN' => "%Y-%m-%d %H:%M:%S"

    6.和bugzilla集成

    前提条件:

    1.     Bugzilla安装完成

    2.     如果是bugzillatestlink不在同一服务器,需要远程访问bugzilla数据库的帐户

    集成配置:

    1.    打开testlinkconfig.inc.php文件

    查找$g_interface_bugs='NO';

    修改为$g_interface_bugs='BUGZILLA';

    注意:一定要大写BUGZILL

    2.    打开testlinkcfg文件夹下的bugzilla.cfg.php文件夹,做如下修改

     

    //Set the bug tracking system Interface

    /** The DB host to use when connecting to the Bugzilla db */

    define('BUG_TRACK_DB_HOST', '192.168.0.77');

    说明:安装bugzilla的服务器地址

    /** The name of the database that contains the Bugzilla tables */

    define('BUG_TRACK_DB_NAME', 'bug');

    说明:bugzilla的数据库名称

    /** The DB type being used by Bugzilla */

    define('BUG_TRACK_DB_USER', 'mysql');

    说明:访问bugzilla数据库的帐户

    /** The DB password to use for connecting to the Bugzilla db */

    define('BUG_TRACK_DB_PASS', '123456');

    说明:访问bugzilla数据库的密码

    /** The DB type to use for connecting to the bugtracking db */

    define('BUG_TRACK_DB_TYPE', 'mysql');

    /** link of the web server */

    define('BUG_TRACK_HREF', "http://192.168.0.77/cgi-bin/index.cgi/show_bug.cgi?id=");

    说明:bugzilla访问地址+/show_bug.cgi?id=

    /** link to the bugtracking system, for entering new bugs */

    define('BUG_TRACK_ENTER_BUG_HREF',"http://192.168.0.77/cgi-bin/index.cgi/");

    说明:bugzilla访问地址

    ?>

    注意:以上标记为“说明”的是我自己增加的说明性文字。

    修改完成后,如果bugzilla可以访问到,则在testlink下,执行测试的时候,每个执行结果记录后,都会有一个小虫子标记,如果某个测试用例执行失败,在bugzilla提交相关bug后,在testlink中点击该小虫子标记,可以填写bugzilla中的bug号。然后,会在执行结果中显示该bug号,点击bug号,则可以直接链接到bugzilla中提交的bug

    注意:testlink使用方法不在这里说明。

  • Testlink1.7R3完整安装方法1

    2007-09-05 18:19:40

     

    说明:

    1 修改内容用红色标记。

    2 次文档参考部分网络资源,但是无法确认原作者,没有在此处说明,请作者原谅

    3 此文档是在windows下安装配置

    1. 安装Apache 2.2.3

      运行安装文件,注意仿照下面的例子填写网站信息:

      域名:3322.org

      网站名:tonyhook.3322.org

      管理员信箱:tonyhook@3322.org

      选择自定义安装,安装完成后,访问http://127.0.0.1/

      出现“It works!”的默认主页。

     注意:安装完毕后,访问http://127.0.0.1/,可能不会出现“It works!”的默认主页,主要原因是没有将Apache 2.2.3启动,重新启动Apache 2.2.3,就可以了。

     

    2. 安装MySQL 5.0.27

      运行安装文件,选择完全安装,跳过创建MySQL.com帐户,最后选择立刻配置MySQL服务器。

      配置过程:

    1)选择标准配置,下一步;

    2)安装为Windows服务,服务名称MySQL,下一步

    3)更改管理员密码(例如设为12345678),下一步

    4)执行配置

     3. 安装PHP 5.2.0

      运行安装文件,无需改变默认安装位置(C:\Program Files\PHP),选择添加Apache 2.2.x服务器模块。

      选择Apache配置文件位置:C:\Program Files\Apache Software Foundation\Apache2.2\conf\

      一定添加扩展中的MySQL扩展!

      允许安装程序配置Apache。然后配置PHP

    1)编辑C:\Program Files\PHP\php.ini文件

    2)查找如下两行:

            upload_tmp_dir="C:\DOCUME~1\Administrator\LOCALS~1\Temp\php\session"
            session.save_path="C:\DOCUME~1\Administrator\LOCALS~1\Temp\php\upload"

          更改为:

            upload_tmp_dir="C:\Windows\TEMP"

            session.save_path="C:\Windows\TEMP"

     

            ;extension=php_mysql.dll

          去掉前面的分号,更改为:

            extension=php_mysql.dll

    3)编辑文件test.php,共3行,存放在C:\Program Files\Apache Software Foundation\Apache2.2\htdocs,内容如下:

    <?php

    phpinfo();

    ?>

    4)重新启动Apache,访问http://127.0.0.1/test.php,可以查看PHP的安装情况

     注意:Apache一定要重新启动,不然只显示步骤3配置的文件test.php的内容。

    4. 安装TestLink 1.7R3

    1)将TestLink解压缩到C:\Program Files\Apache Software Foundation\Apache2.2\htdocs,重新命名为testlink

    3)访问http://127.0.0.1/testlink/install/index.php

    4)点击New Installation

    5)数据库管理员填写rootroot的密码(先前的设定为12345678),数据库用户名填写tl,密码填写123456

    6)点击安装按钮,然后同意许可协议,继续

    7)安装完成,点击最后一行的(Please Click Me!)

    8)使用admin登录,密码:admin

    9)在菜单栏中的Personal中更改admin的密码,更改成功后在右上角点击注销

    10)删除C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\testlink\install目录

    11)访问http://127.0.0.1/testlink/index.php即可使用出现TestLink登陆界面,此时登陆界面为英文,如果需要修改为中文则按以下步骤操作

    打开testlinkcfg文件夹下的config.inc.php文件

    查找$g_default_language = 'en_GB';

    修改为

    $g_default_language = 'zh_CN';

    则可以解决登陆界面汉化的问题

    注意:如果在步骤8之前出现错误提示信息,则需要重新启动电脑。

     

Open Toolbar