51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 35225|回复: 61
打印 上一主题 下一主题

自动化测试工具

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-5-8 15:21:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
上传一个用.net开发的测试工具,里面有使用说明,希望对大家有帮助。
也希望高手们能拓展它的功能,使它更加健壮。
整个的开发过程可以参考《高效软件测试自动化》电子工业出版社 "Effective Software Test Automation"。
它可以自动获得被测程序的信息,并列到Excel文件中,还会根据这些信息自动生成测试脚本,你要做的就是运行脚本就OK了,其他一切工作基本都可以由它自动完成,其中包含了.net的类反射和代码生成技术。
它生成的脚本是一个exe可执行文件,可用于单元测试、回归测试和集成测试。

5/17 我又改进了一点,现在是最新版

[ Last edited by developing_T on 2005-5-18 at 16:37 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

2#
 楼主| 发表于 2005-5-8 17:08:23 | 只看该作者
源代码也发上来,大家可以添加一些新功能。
技术问题可以参考
.net调用Excel API
.net System.Reflection命名空间,类反射
.net System.CodeDom 命名空间,代码生成技术

5/17 我又改进了一点,现在是最新版

[ Last edited by developing_T on 2005-5-17 at 09:16 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2005-5-9 17:46:33 | 只看该作者
说明:
系统要求
Windows 2000/XP
Microsoft Visual Studio.NET Framework
Microsoft Visual Studio.NET IDE 2002/2003
Microsoft Excel 2000/XP/2003


我们开始测试LowLevelObj.dll程序集
(1)启动AutomatedTest.exe
测试脚本路径:C:\Temp2
测试结果保存:C:\Temp2

[ Last edited by developing_T on 2005-5-18 at 16:36 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2005-5-18 16:39:17 | 只看该作者
(2)开始
点[打开程序集]弹出Dll under Test话筐,这时选择要测试的程序集,在这里我们就选择\Simple\LowLevelObj\bin\Debug文件夹下的LowLevelObj.dll作为被测对象。选中后点[打开],将看到右侧列出了LowLevelObj.dll程序集信息,我们只对SimpleMath感兴趣,所以勾选它

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2005-5-18 16:41:27 | 只看该作者
(3)生成测试用例
选中SimpleMath后点[生成测试用例](等待…),如果顺利,可以看到下图

在这张表单中列出了SimpleMath所包含的所有构造函数和方法,比如第9行的SimpleCalc方法,他要求两个int型和一个枚举型的参数,程序会自动为他们付值(随机的)。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2005-5-18 16:43:57 | 只看该作者
(4)编辑Excel
现在我们要对这些Excel数据进行编辑,告诉它要测试我们感兴趣的方法。
表单的第4, 5, 6, 11 行是没用的这些方法并不是我们关心的,所以右键删除这几行。我们主要来测试SimpleCalc和PowerCalc这两个方法,现在就复制SimpleCalc和PowerCalc所在的这两行,然后在下面的N行中粘贴出他们的副本,并更改里面的数值,在绿色的格子里输入期望返回的结果,编辑结果如图:

上面的数值是手工设置的,你也可以设置成不同的值,编辑完成后保存Excel,但是不要关。

[ Last edited by developing_T on 2005-5-18 at 16:50 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2005-5-18 16:53:02 | 只看该作者
(5)生成测试脚本
回到Automated Software Test程序,点上面的 [生成测试脚本],如果一切顺利稍等片刻程序会开启一个.net IDE, 里面的测试脚本代码已经生成好了,现在只需编译运行就OK。编译前它可能会提示保存信息,一般直接点保存就可以了。成功的话你会看见一个黑色的命令窗口和一个Excel窗口快速闪过。
(6)查看结果
到C:\Temp2下看,现在多了LowLevelObj文件夹和TestLowLevelObj200556144347.xls文件(点开它看一下,是测试结果)。LowLevelObj是测试脚本工程,如果想再次执行测试,可以到C:\Temp2\LowLevelObj\Bin\Debug下运行TestLowLevelObj.exe
在测试前可以对这个文件夹下的testLowLevelObjData.xls里的数据进行修改,输入你期望测试的数据。

上图是TestLowLevelObj200556144347.xls文件,红色表示实际值和期望值不符。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2005-5-18 16:53:40 | 只看该作者
我在这只是把AutoTest一些暂有的功能介绍给大家,程序的健壮要大家来维护,可以继续给它添加一些功能,比如测试数据库功能,测试注册表功能等等。
在代码,程序或者关于软件测试方面,也希望和大家交流。
详细的内容可以参考《高效软件测试自动化》”Effective Software Test Automation” 这本书,书里包含了我所说的所有方面。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2005-5-20 16:02:27 | 只看该作者
兄弟,你真好~~
谢谢拉。。
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2005-5-20 16:44:41 | 只看该作者
不客气    顺便添加点功能,比如实现连接数据库:)
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2005-5-24 09:46:55 | 只看该作者
这个是不是还要安装.net啊?我的机子没装哪个哦~~
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2005-5-24 14:53:10 | 只看该作者
没装.net的话脚本就没法生成了~~~
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2005-6-10 14:07:27 | 只看该作者
兄弟,你干的漂亮!
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2005-6-11 12:02:59 | 只看该作者
不错!顶一把!
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-2-4 10:18
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    15#
    发表于 2005-6-16 19:23:58 | 只看该作者

    请教

    他具体有什么用呀,我的知识有限,请多执教 developing_T
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
     楼主| 发表于 2005-6-20 10:14:51 | 只看该作者
    在软件框架建成后,编写实现代码前,可以先用这个工具生成测试脚本,待实现代码编写完成后对其测试。
    如下这段代码,只是生成了框架,还没有编写实现代码:
    -------------------------------------------------------
    using System;       
    using System.Runtime.InteropServices;
    using System.Text;

    namespace XYZInstrumentDrivers
    {
            /// <summary>
            /// XYZ measurement system driver
            /// </summary>
            [
            Guid("C5EA5B79-0C08-4f88-A3EF-FAEF56C44040"),       
            ClassInterface (ClassInterfaceType.AutoDual)
            ]

            public class XYZDriver
            {               
                    /// <summary>
                    /// Default constructor
                    /// </summary>       
                    public XYZDriver()
                    {
                    }
                   
                    public int Init(string resourceName, bool idQuery, bool reset)
                    {       
                            return 0;
                    }

                    public void ErrorQuery(ref int errorCode, ref string errorMessage)
                    {                       
                            return;
                    }

                    public void ErrorMessage(int statusCode, ref string message)
                    {
                            return;
                    }

                    public void RevisionQuery(ref string instrumentDriverRevision, ref string firmwareRevision)
                    {
                            return;
                    }

                    public void Reset()
                    {
                            return;
                    }

                    public void SelfTest(ref short selfTestResult, ref string selfTestMessage)
                    {
                            return;
                    }               

                    public void TimeOut(int setTimeOut)
                    {
                            return;
                    }
                   
                    public void Dcl()
                    {
                            return;
                    }

                    public void exec(string sendStringCommand)
                    {
                            return;
                    }

                    public void SetPaddlePosition(int paddle, int positionSelector, short optionalPosition)
                    {
                            return;
                    }
                         
                    public void SetScanRate(int scanSelector, int optionalScanRate)
                    {
                            return;
                    }
                   
                    public void PaddlePosition(int paddle, short position)
                    {
                            return;
                    }
                    ……

                    public void RecallState(int saveLoc)
                    {
                            return;
                    }

            }                //end of class
    }                        //end of namespace
    ------------------------------------------------
    这时可以用AT工具对这些public方法生成测试用例,待实现代码编写完成后可以对其正确性进行测试。

    [ Last edited by developing_T on 2005-6-22 at 08:52 ]
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-4 10:18
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    17#
    发表于 2005-6-20 17:26:38 | 只看该作者
    多谢 developing_T
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
     楼主| 发表于 2005-6-21 14:51:36 | 只看该作者
    这个程序对现实的.net程序测试还有很大不足,不过代码是开放的,我们可以添加需要的功能
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
     楼主| 发表于 2005-6-21 14:58:40 | 只看该作者
    你也是做测试的吗,多交流
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-4 10:18
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    20#
    发表于 2005-6-22 17:26:16 | 只看该作者
    我是测试专业
          正在学习测试的知识
      以后请多指教
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-26 11:23 , Processed in 0.085435 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表