当前位置:  开发笔记 > 编程语言 > 正文

测试用例,"何时","什么"和"为什么"?

如何解决《测试用例,"何时","什么"和"为什么"?》经验,为你挑选了2个好方法。

作为基于测试的开发的新手,这个问题一直困扰着我.多少是太多了?应该测试什么,应该如何测试,以及为什么要进行测试?给出的例子是在C#中使用NUnit,但我认为问题本身与语言无关.

以下是我自己的两个当前示例,对通用列表对象进行测试(使用字符串进行测试,初始化函数添加三个项目{"Foo", "Bar", "Baz"}):

[Test]
public void CountChanging()
{
    Assert.That(_list.Count, Is.EqualTo(3));
    _list.Add("Qux");
    Assert.That(_list.Count, Is.EqualTo(4));
    _list[7] = "Quuuux";
    Assert.That(_list.Count, Is.EqualTo(8));
    _list.Remove("Quuuux");
    Assert.That(_list.Count, Is.EqualTo(7));
}

[Test]
public void ContainsItem()
{
    Assert.That(_list.Contains("Qux"), Is.EqualTo(false));
    _list.Add("Qux");
    Assert.That(_list.Contains("Qux"), Is.EqualTo(true));
    _list.Remove("Qux");
    Assert.That(_list.Contains("Qux"), Is.EqualTo(false));
}

代码是相当自我评论的,所以我不会深入研究正在发生的事情,但这种事情是否过于遥远?Add()并且Remove()当然是单独测试的,那么我应该用这些类型的测试达到什么水平?我应该进行这类测试吗?



1> Yuval..:

我会说你实际测试的是等价类.在我看来,添加到包含3个项目或7个项目的列表之间没有区别.但是,0项,1项和> 1项之间存在差异.对于这些案例,我最初可能会有3个测试用于添加/删除方法.

一旦错误开始从QA /用户进入,我会将每个这样的错误报告添加为测试用例; 通过红条看到错误的重现; 通过获得绿色条来修复错误.每个这样的'错误检测'测试都可以保留 - 这是我的安全网(阅读:回归测试),即使我再次犯这个错误,我也会得到即时反馈.



2> James Baker..:

将您的测试视为规范.如果您的系统在没有测试失败的情况下可能中断(或存在重大错误),那么您没有足够的测试覆盖率.如果一个单点故障导致许多测试中断,则可能有太多(或者耦合太紧).

这很难以客观的方式定义.我想我会在测试方面说错了.然后,当测试开始惹恼你时,那些是重构/重新调整的特定测试(因为它们太脆弱,或者测试错误的东西,并且它们的失败没有用).

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有