1. 程式人生 > >軟件測試作業三

軟件測試作業三

-s contex cti alt 不為 current [] txt 資源

201631062417,201631062617

代碼地址:https://gitee.com/rmbdswd/WordCount

作業地址:https://edu.cnblogs.com/campus/xnsy/Test/homework/2203

一、功能簡介

1.基礎功能

wc.exe -c file.c //返回文件 file.c 的字符數

wc.exe -w file.c //返回文件 file.c 的單詞總數

wc.exe -l file.c //返回文件 file.c 的總行數

wc.exe -o outputFile.txt //將結果輸出到指定文件outputFile.txt

2.拓展功能

wc.exe -s //遞歸處理目錄下符合條件的文件

wc.exe -a file.c //返回更復雜的數據(代碼行 / 空行 / 註釋行)

wc.exe -e stopList.txt // 停用詞表,統計文件單詞總數時,不統計該表中的單詞

[file_name]: 文件或目錄名,可以處理一般通配符

二、代碼互審與合並

代碼由兩人合作完成,相互交流,分工合作,定期查看進度。

三、靜態檢查

第一次靜態測試結果:

技術分享圖片

修改後進行第二次靜態測試結果

技術分享圖片

利用visual studio的靜態測試工具,共修改5個警告,0個錯誤

四、單元測試

1.負責 FileHelper 的單元測試

using System;
using System.IO;
using System.Collections.Generic;
using NUnit.Framework;

using WordCount;

namespace Test
{
[TestFixture]
public class FileHelperTest
{
[Test]
public void TestGlob() {
List<string> result = FileHelper.Glob(Path.Combine(GetResourcePath(), "h*.c"));

Assert.AreEqual(1, result.Count, "文件數目錯誤,不為一");
Assert.True(result[0].Contains("hello.c"), "未找到目標文件");
}

[Test]
public void TestRecursiveGlob() {
List<string> result = FileHelper.RecursiveGlob(Path.Combine(GetResourcePath(), "h*.c"));

Assert.AreEqual(2, result.Count, "文件數目錯誤,不為二");
Assert.True(result[0].Contains("hello.c"), "未找到目標文件");
}

/// <summary>
/// 獲取資源文件的路徑
/// </summary>
private string GetResourcePath() {
string projectDirectory = Path.GetDirectoryName(
Path.GetDirectoryName(TestContext.CurrentContext.TestDirectory));
return Path.Combine(projectDirectory, "Resource");
}
}
}

2.負責 ParserArgumen 的單元測試

using System;
using NUnit.Framework;

using WordCount;

namespace Test
{
[TestFixture]
public class ArgParserTest
{
[Test]
public void TestParserArgument()
{
// 正確參數解析
string[] args1 = new string[] {"-c", "-w", "input.txt", "-o", "TestResult.txt"};

ArgParser parser1 = ArgParser.ParserArgument(args1);

Assert.AreEqual("input.txt", parser1.InputFileName, "輸入文件獲取錯誤");
Assert.AreEqual("TestResult.txt", parser1.OutputFileName, "輸出文件獲取錯誤");

Assert.True(parser1.SelectedOptions.Contains("-c"));
Assert.True(parser1.SelectedOptions.Contains("-w"));

// 參數格式錯誤
string[] args2 = new string[] {"-m", "input.txt", "-o", "TestResult.txt"};

ArgParser paser2 = ArgParser.ParserArgument(args2);
Assert.AreEqual("-m", paser2.ErrorOption, "未找到錯誤參數");
}
}
}

運行結果:

DomainUsage: Single
.......
Tests run: 7, Errors: 0, Failures: 0, Inconclusive: 0, Time: 1.56569747217175 seconds
Not run: 0, Invalid: 0, Ignored: 0, Skipped: 0

五、性能測試

技術分享圖片

軟件測試作業三