超简单的变化测试

发表于:2011-10-14 11:02

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

分享:

  变化测试系统

  在这部分中,我将逐行向您介绍变化测试程序,但是省略了图 1 中所示的用于生产输出的 WriteLine 语句的大部分内容。 我在 MutationTesting 根目录中创建了一个名为 Mutation 的 C# 控制台应用程序。 该程序的开头如下所示:

using System;
using System.Collections.Generic;
using System.IO;
using System.Diagnostics;
using System.Threading;

namespace Mutation
{
class Program
{
static Random ran =new Random(2);
staticvoid Main(string[] args)
{
try
{
Console.WriteLine(
"\nBegin super-simple mutation testing demo\n");
...

  Random 对象的目的是生成一个随机的变化位置。 我使用了一个种子值 2,但其实任意值都可以。 接下来,设置文件位置:

string originalSourceFile ="..
\\..
\\Class1-Original.cs
";
string mutatedSourceFile ="..
\\..
\\..
\\MathLib\\Class1.cs
";
string mutantProject ="..
\\..
\\..
\\MathLib\\MathLib.csproj
";
string testProject ="..
\\..
\\..
\\TestMutation\\TestMutation.csproj
";
string testExecutable =
"..
\\..
\\..
\\TestMutation\\bin\\Debug\\TestMutation.exe
";
string devenv ="C:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\Common7\\IDE\\devenv.exe";
...

  稍后,您将看到如何使用每个文件。 请注意,我所指向的 devenv.exe 程序与 Visual Studio 2008 相关联。 我没有对该位置进行硬编码,而是生成一个 devenv.exe 的副本,并放置到变化系统的根文件夹中。

  程序继续:

List<int> positions = GetMutationPositions(originalSourceFile);
int numberMutants =2;
...

  我调用帮助程序 GetMutationPositions 方法来扫描原始源代码文件并将所有的“<”和“>”字符的字符位置存储到 List 中,然后将要创建和测试的变化数量设置为 2。

  主处理循环为:

for (int i =0; i < numberMutants; ++i) {
Console.WriteLine(
"Mutant # "+ i);
int randomPosition = positions[ran.Next(0, positions.Count)];
CreateMutantSource(originalSourceFile, randomPosition, mutatedSourceFile);

try {
BuildMutant(mutantProject, devenv);
BuildTestProject(testProject, devenv);
TestMutant(testExecutable);
}
catch {
Console.WriteLine(
"Invalid mutant.
Aborting.");
continue;
}
}
...

53/5<12345>
精选软件测试好文,快来阅读吧~

精彩评论

  • andyyoung
    2011-10-14 13:36:43

    写了5页,取名叫”超简单“。

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号