发布新日志

  • VS2010数据驱动测试-导入CSV数据源实现自动测试

    2011-07-20 00:55:27

    1.首先录制CodeUITest.cs测试程序,输入输出的变量信息会记录在UIMap.Designer.cs

    2.CodeUITest.cs中通过TestView工具查找到测试程序中的测试方法名,会发现存在Test NameCodedUITestMethod1的方法

    3.右键选择CodedUITestMethod1属性,修改Data Connection String数据源,将其指向csv数据源文件,数据源文件中实现编写有要测试的变量的值。此时程序中会出现类似[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\aº?ºyY.csv", "aº?ºyY#csv", DataAccessMethod.Sequential), DeploymentItem("TestProject8\\aº?ºyY.csv"), TestMethod]

    的代码。

    4.CodeUITest.csCodeUITestMethod1方法中将变量值与CSV文件中的列名关联。例如:在CodeUITestMethod1方法中添加如下语句

    this.UIMap.errorinputParams.UITbx_uidEditText = TestContext.DataRow["UserName"].ToString();

    this.UIMap.errorinputParams.UITbx_pwdEditText = TestContext.DataRow["Pwd"].ToString();

  • .NET软件测试指南

    2008-12-07 12:49:07

    占位程序

    webtest应用程序中,button1_click事件的代码只是报告输入到控件中的信息,这称为占位程序。程序员使用占位程序以自上而下的方式编写软件的各个部分。这就降低了应用程序的复杂性,确保各个部分正常工作后,再编写代码的其他部分。测试人员编写测试软件时也是这样,尤其是编写复杂的测试软件或测试工具时,就更是如此。编写出占位程序的代码(如:用一个提示窗口或标签空间显示信息,而不是把错误报告信息保存到文件或数据库中)后,就只需要确保窗体正常工作即可。

    另外,程序员总是使用占位程序,有时他们会忘记完成代码的编写,若已经有了占位程序,看起来应用程序在做某项工作,但实际上不是。这就是为什么测试人员必须多次检查数据库文件和其他资源,以确保软件完成它应完成的任务。

     

    好的建议:

    利用Object BowserHelp文件和其他资源,来了解命名空间提供的重要系统信息和功能。

    使用Using指令引用.NET Framework 库中的命名空间,这可以简化代码。

    使用占位程序一次只开发测试软件的一小部分。占位程序可以模拟低级代码的工作方式。

    总是检查被测试的应用程序软件,确保它完成应完成的任务。占位程序可能偶尔是空的,这很是具有欺骗性,因为他们会报告应用程序在做某项工作,而实际上并非如此。

     

  • .NET软件测试指南

    2008-11-21 23:26:02

    第二章 理解.NET测试选项

    2.3 用控制台应用程序创建测试软件

      如果希望应用程序返回系统的某些信息,但不必坐下来输入数据,并相应应用程序,让软件在无人操作的情况下自动执行操作,可以不使用windows窗体应用程序,而是用控制台应用程序。

      控制台应用程序可以访问三种基本数据流:

    n         标准输入:进入程序的数据

    n         标准输出:程序生成的数据

    n         标准错误:表示一种特殊的数据:错误信息。

    例:

    新建一个控制台应用程序,检查文件的存在性

    using System;

    using System.Collections.Generic;

    using System.Text;

    using System.IO;

     

    namespace ConsoleApplication1

    {

        class Program

        {

            static void Main(string[] args)

            {

                Console.WriteLine();

                Console.WriteLine("Enter the file to find or enter 'Q' to Quit");

                string strInput = "";

                while (strInput != "Q")

                {

                    strInput = Console.ReadLine();

                    if (File.Exists(strInput))

                        Console.WriteLine("File Exists:Test passed");

                      

                    else

                        Console.WriteLine("File doesn't Exists:Test failure");

                    Console.WriteLine("Enter the file to find or enter 'Q' to Quit");

                }

             

                   

            }

        }

    }

    这些代码类似于2.2 中为windows窗体编写的代码,但有两个主要区别:第一,用console类读写消息。第二个区别是必须使用循环结构,让用户继续查找文件。

        专业的测试人员可能比较挑剔,会在这里多考虑一下,更多地了解可以在控制台应用程序中提供什么,以满足用户的需求。

     

  • .NET软件测试指南

    2008-11-18 23:45:22

    2 理解.NET测试选项

     

    2.1用于测试的.NET命名空间

    测试人员必须完成的一个重要的工作是,查找并返回如下信息:应用程序在运行时的信息、系统在运行应用程序之前、之后和运行过程中的状态信息。要想学习如何获取重要的系统信息,首先要理解如何使用.NET命名空间。

    用于测试的一些重要的命名空间有下面几个:

    l         System.IO

    l         System.Data

    l         System.Text.RegularExpressions

    l         Microsoft.Win32

    l         System.Web

    l         Microsoft.VisualStudio.TestTools

    l         Microsoft.VisualBasic

    l         System.Diagnostics

    在后面将作详细解释。

    打开Visual Studio.NETView->Object Browser中可以看到一些命名空间,以及包含用于测试的例程。

    2.2使用System.IO命名空间中的Exists函数

    Exists可以判断文件是否存在。被测的应用程序在运行期间常常会创建文件,包括永久文件和临时文件,因此可以用Exists函数来确定应用程序运行时是否创建或删除了适当的文件。

    例:

    using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;

    using System.Text;

    using System.Windows.Forms;

    using System.IO;

     

    namespace firsttest

    {

        public partial class Form1 : Form

        {

            public Form1()

            {

                InitializeComponent();

            }

     

            private void button1_Click(object sender, EventArgs e)

            {

                if (File.Exists(textBox1.Text))

                    MessageBox.Show("File Exists:Test passed");

                else

                    MessageBox.Show("File doesn't Exists:Test failure");

            }

        }

    }

     

  • .NET软件测试指南

    2008-11-17 23:09:49

    第一章    .NET自动测试软件

     

    1.1    测试人员需要了解得.NET编码知识

    如何访问.NET Framework内部的库函数,返回平台、文件、注册表、操作系统等相关信息。

    如何用基本空间创建一个前端,以查看测试信息和结果。

    如何快速、方便的访问数据库。

    如何访问Windows注册表,返回相关的应用程序信息。

    1.2    .NET语言进行测试的原因

    .NET Framework库有许多支持测试过程的功能。例如:有许多内部函数可以返回测试平台和被测试的应用程序的重要信息。.NETShell函数和SendKeys类函数可以用于运行应用程序,操作其图形用户界面。Visual Studio Database Tools可以连接数据库,检查其结构和数据。还可以自己编写测试工具,例如负载测试程序。.NET语言还可以用于测试应用程序的许多后台操作。例如,可以编写脚本来访问系统环境变量和性能计数器。

    1.3 项目是否应该使用自动测试

    1、项目和人员问题需要考虑

       自动策测试的范围有多大?如果目标是自动完成所有的测试任务,这个范围就是比切实际。如果试图把自动测试与已有的项目或新项目合并起来,最好从小一些的好管理的目标开始。

       测试人员的水平如何?经验和水平决定了我们所能承担的自动测试级别。

       有多少高水平的测试人员?

    2、产品问题

       所有测试的应用程序的功能是否相对稳定。如果不稳定,在应用程序发生变化时,就需要修改所编写的测试代码。如果过早的进入自动测试,就会陷入不断修改测试代码的泥潭。自动测试比较适合于结构和组件相对稳定的产品。

       是否计划测试UI?产品是基于GUI的吗?如果项目用于测试应用程序的GUI,某些自动测试工具就比较好。.NET语言可以用于某种程度的GUI测试,但需要编写大量的代码。因此,大多数情况下,不应该选择用.NET进行大量基于GUI的测试。

       产品中是否有重复运行测试代码的领域。任何重复的任务都应选择自动测试。计算机能很好的执行重复的任务。

      产品需要兼容多种平台吗?自动测试脚本可以解决一些兼容问题。

      产品的规模和预算足以支持自动测试吗?

    1.4为自动测试组建一个团队

    如果公司有一个包含10人的测试团队,则组成应是:

    4-5位测试人员精通传统的手工测试过程。

    3位测试人员擅长使用自动测试工具

    2-3位测试人员擅长软件开发。

     

Open Toolbar