【IT168 技术文章】
第一章 用.NET自动测试软件
1.1 测试人员需要了解得.NET编码知识
如何访问.NET Framework内部的库函数,返回平台、文件、注册表、操作系统等相关信息。
如何用基本空间创建一个前端,以查看测试信息和结果。
如何快速、方便的访问数据库。
如何访问Windows注册表,返回相关的应用程序信息。
1.2 用.NET语言进行测试的原因
.NET Framework库有许多支持测试过程的功能。例如:有许多内部函数可以返回测试平台和被测试的应用程序的重要信息。.NET的Shell函数和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位测试人员擅长软件开发。
第二章 理解.NET测试选项
2.1用于测试的.NET命名空间
测试人员必须完成的一个重要的工作是,查找并返回如下信息:应用程序在运行时的信息、系统在运行应用程序之前、之后和运行过程中的状态信息。要想学习如何获取重要的系统信息,首先要理解如何使用.NET命名空间。
用于测试的一些重要的命名空间有下面几个:
System.IO
System.Data
System.Text.ReguarExpressions
Microsoft.Win32
System.Web
Microsoft.VisuaStudio.TestToos
Microsoft.VisuaBasic
System.Diagnostics
在后面将作详细解释。
打开Visua Studio.NET从View->Object Browser中可以看到一些命名空间,以及包含用于测试的例程。
2.2使用System.IO命名空间中的Exists函数
Exists可以判断文件是否存在。被测的应用程序在运行期间常常会创建文件,包括永久文件和临时文件,因此可以用Exists函数来确定应用程序运行时是否创建或删除了适当的文件。
例:
using System;
using System.Coections.Generic;
using System.ComponentMode;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace firsttest
{
pubic partia cass Form1 : Form
{
pubic Form1()
{
InitiaizeComponent();
}
private void button1_Cick(object sender, EventArgs e)
{
if (Fie.Exists(textBox1.Text))
MessageBox.Show("Fie Exists:Test passed");
ese
MessageBox.Show("Fie doesn't Exists:Test faiure");
}
}
}
2.3 用控制台应用程序创建测试软件
如果希望应用程序返回系统的某些信息,但不必坐下来输入数据,并相应应用程序,让软件在无人操作的情况下自动执行操作,可以不使用windows窗体应用程序,而是用控制台应用程序。
控制台应用程序可以访问三种基本数据流:
标准输入:进入程序的数据
标准输出:程序生成的数据
标准错误:表示一种特殊的数据:错误信息。
例:
新建一个控制台应用程序,检查文件的存在性
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 ExistsTest passed);
else
Console.WriteLine(File doesn't ExistsTest failure);
Console.WriteLine(Enter the file to find or enter 'Q' to Quit);
}}}}
这些代码类似于2.2 中为windows窗体编写的代码,但有两个主要区别:第一,用console类读写消息。第二个区别是必须使用循环结构,让用户继续查找文件。
专业的测试人员可能比较挑剔,会在这里多考虑一下,更多地了解可以在控制台应用程序中提供什么,以满足用户的需求。