developing_T 发表于 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 ]

developing_T 发表于 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 ]

developing_T 发表于 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 ]

developing_T 发表于 2005-5-18 16:39:17

(2)开始
点[打开程序集]弹出Dll under Test话筐,这时选择要测试的程序集,在这里我们就选择\Simple\LowLevelObj\bin\Debug文件夹下的LowLevelObj.dll作为被测对象。选中后点[打开],将看到右侧列出了LowLevelObj.dll程序集信息,我们只对SimpleMath感兴趣,所以勾选它

developing_T 发表于 2005-5-18 16:41:27

(3)生成测试用例
选中SimpleMath后点[生成测试用例](等待…),如果顺利,可以看到下图

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

developing_T 发表于 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 ]

developing_T 发表于 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文件,红色表示实际值和期望值不符。

developing_T 发表于 2005-5-18 16:53:40

我在这只是把AutoTest一些暂有的功能介绍给大家,程序的健壮要大家来维护,可以继续给它添加一些功能,比如测试数据库功能,测试注册表功能等等。
在代码,程序或者关于软件测试方面,也希望和大家交流。
详细的内容可以参考《高效软件测试自动化》”Effective Software Test Automation” 这本书,书里包含了我所说的所有方面。

wl7532329 发表于 2005-5-20 16:02:27

兄弟,你真好~~
谢谢拉。。

developing_T 发表于 2005-5-20 16:44:41

不客气    顺便添加点功能,比如实现连接数据库:)

wl7532329 发表于 2005-5-24 09:46:55

这个是不是还要安装.net啊?我的机子没装哪个哦~~

developing_T 发表于 2005-5-24 14:53:10

没装.net的话脚本就没法生成了~~~

snowflake 发表于 2005-6-10 14:07:27

兄弟,你干的漂亮!

kernzhang 发表于 2005-6-11 12:02:59

不错!顶一把!

wuzhe 发表于 2005-6-16 19:23:58

请教

他具体有什么用呀,我的知识有限,请多执教 developing_T

developing_T 发表于 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 ]

wuzhe 发表于 2005-6-20 17:26:38

多谢 developing_T

developing_T 发表于 2005-6-21 14:51:36

这个程序对现实的.net程序测试还有很大不足,不过代码是开放的,我们可以添加需要的功能

developing_T 发表于 2005-6-21 14:58:40

你也是做测试的吗,多交流

wuzhe 发表于 2005-6-22 17:26:16

我是测试专业
      正在学习测试的知识
以后请多指教
页: [1] 2 3 4
查看完整版本: 自动化测试工具