軟件測試作業三
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
五、性能測試
軟件測試作業三