软件测试作业三

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

五、性能测试

原文地址:https://www.cnblogs.com/rmbdswd/p/9824436.html