51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 35287|回复: 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:44:41 | 显示全部楼层
不客气    顺便添加点功能,比如实现连接数据库:)
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2005-5-24 14:53:10 | 显示全部楼层
没装.net的话脚本就没法生成了~~~
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 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 ]
回复 支持 反对

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2005-6-21 14:58:40 | 显示全部楼层
你也是做测试的吗,多交流
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2005-6-22 18:13:02 | 显示全部楼层
呵呵,别说指教,交流吧,其实我学的不是软件专业, my major is quality control.
回复 支持 反对

使用道具 举报

该用户从未签到

15#
 楼主| 发表于 2005-6-24 10:54:50 | 显示全部楼层
我的理解外包是公司把你放到其他的公司里为其他公司工作。比如外包到微软,IBM什么的,你的公司负责给你发工资,和支付一些其他费用。你是哪家公司的?
回复 支持 反对

使用道具 举报

该用户从未签到

16#
 楼主| 发表于 2005-8-16 09:25:04 | 显示全部楼层
程序还有些 BUG,大家一起改进吧~:)
回复 支持 反对

使用道具 举报

该用户从未签到

17#
 楼主| 发表于 2005-9-25 16:49:14 | 显示全部楼层
最后一步?调不出.net IDE吗?
这个我只在几台机器上测试过,配置如下:

Windows 2000
Office 2003
VS.net 2002

如果用的 office 2000的话要把代码中的excel接口参数修改一下才能正常运行。
回复 支持 反对

使用道具 举报

该用户从未签到

18#
 楼主| 发表于 2006-1-11 14:32:09 | 显示全部楼层
不会呀, 我试过很多次的, 不过我现在没有 .net IDE , 也不呢验证。
回复 支持 反对

使用道具 举报

该用户从未签到

19#
 楼主| 发表于 2006-6-15 17:22:02 | 显示全部楼层
如果用Microsoft Visual Studio.NET IDE 2005需要重新编译一下,哪位有兴趣可以帮忙,我这里没有.net环境了
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-5-5 22:37 , Processed in 0.087941 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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