软件测试作业三
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
五、性能测试