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

什么是单元测试和集成测试,以及我应该了解的其他类型的测试?

如何解决《什么是单元测试和集成测试,以及我应该了解的其他类型的测试?》经验,为你挑选了5个好方法。

我见过其他人在Stack Overflow上提到了几种类型的测试.

我记得的是单元测试和集成测试.特别是单元测试被提到了很多.什么是单元测试?什么是集成测试?我应该注意哪些其他重要的测试技术?

编程不是我的职业,但我希望它有一天;关于生产等的东西也受到欢迎.



1> Steven A. Lo..:

脱离我的头顶:

"测试应用程序中最小的可隔离单元"意义上的单元测试 ; 这通常是一种方法或类,具体取决于规模.

集成测试

特征测试:这可能会跨越单位,并且是TDD的焦点.

黑盒测试:仅测试公共接口,不知道该如何工作.

玻璃盒测试:测试物品的所有部分,并充分了解其工作原理.

回归测试:构建用于重现错误的测试用例,以确保它们不会再出现.

毫无意义的测试:不止一种方式测试相同的基本情况,或测试的东西如此微不足道,以至于它们确实不需要进行测试(如自动生成的getter和setter)


玻璃盒测试通常被称为*白盒测试*.
是不是单元测试TDD的重点,而不是功能测试?

2> ChrisW..:

我应该知道我的代码的任何其他重要测试吗?

根据软件生命周期的不同阶段,这些是一些不同类型的测试:

单元测试:这一小段代码是否有效?

单元测试套件:许多单元测试的序列(对于许多小代码)

集成测试:测试两个组件在组合(或"集成")时是否协同工作

系统测试:测试所有组件在组合(或"集成")时是否一起工作

验收测试:客户如何决定他是否愿意向您付款(系统测试发现软件是否按设计运行...验收测试发现"按设计"是否是客户想要的)

还有更多:

可用性测试

性能测试

负载测试

压力测试

而且,更多......测试软件几乎与编写软件一样广泛.



3> TheTXI..:

MSDN:单元测试

单元测试的主要目标是在应用程序中使用最小的可测试软件,将其与代码的其余部分隔离,并确定其行为是否与您期望的完全相同.每个单元在将它们集成到模块中之前单独测试,以测试模块之间的接口.单元测试已证明其价值在于在使用过程中发现了大量缺陷.

MSDN:集成测试

集成测试是单元测试的逻辑扩展.在最简单的形式中,已经测试的两个单元组合成一个组件,并测试它们之间的接口.在这个意义上,组件是指多个单元的集成组合.在一个现实的场景中,许多单元被组合成组件,这些组件又被聚合到程序的更大部分中.我们的想法是测试各个部分的组合,并最终扩展流程,以便与其他组的模块一起测试您的模块.最终,构成过程的所有模块一起进行测试.除此之外,如果程序由多个进程组成,则应该成对测试,而不是一次测试.

检查网站以获取更多信息.除了微软以外,还有大量的信息来源.



4> Norman Ramse..:

另一项重要技术是回归测试.在这种技术中,您需要维护一套测试(称为回归套件),这些测试通常在每晚以及每次签入之前运行.每次修复错误时,都会向套件添加一个或多个测试.目的是阻止您重新引入已修复的旧错误.(这个问题非常普遍!)

在项目变大之前,尽早开始累积回归套件,否则你会后悔.我当然有!



5> rrazd..:

对于软件开发生命周期中的阶段,有不同级别的测试.最高级别是需求分析,最低级别是解决方案的实施.

什么是单元测试?

单元测试评估软件的实现.

我们专注于测试程序的单元(即单个方法),并忽略谁调用/使用这些单元.因此,我们基本上将每个单元视为独立单元.

有许多单元测试工具,其中最受欢迎的是JUnit.

在执行单元测试时,我们想要构建满足特定覆盖标准的测试集(测试用例集).这可能是一些结构覆盖标准(NC,EC,PPC等)或数据流标准(ADC,AUC,ADUPC等)

请注意,单元测试是最低级别的测试,因为它评估实现后生成的实际代码单元.这种类型的测试是在集成测试之前完成的.

高效的单元测试有助于确保集成测试不会很痛苦,因为在进行单元测试时,更便宜,更容易发现和修复错误

什么是集成测试?

需要进行集成测试,以确保在组合两个或多个组件时我们的软件仍能正常工作.

您可以在系统完成之前执行集成测试.

类集成测试顺序(CITO)问题与集成测试相关联.CITO与集成组件的策略有关.CITO有许多提议的解决方案,例如自上而下的集成,自下而上的集成等.主要目标是以一种能够实现高效测试和最少量存根的方式集成组件,因为编写代码存根并不总是很容易并且需要时间.请注意,这仍然是一个活跃的研究领域!

集成测试在单元测试后完成.

通常情况下,各个组件工作正常,但是当所有内容组合在一起时,我们突然看到由于与接口的不兼容性/问题而出现的错误.

其他级别的测试包括:

    回归测试

    这种类型的测试非常重要,因为开发人员通常会经常更改软件,因此我们希望确保这些更改不会引入错误.

    有效回归测试的关键是限制回归测试的大小,以便完成测试不会花费太长时间,否则测试集将无法在下次提交之前完成运行.我们还必须选择不会错过错误的有效测试用例.

    这种类型的测试应该是自动化的.

    重要的是要注意,我们可以继续添加更多的机器,以抵消越来越多的回归测试,但在某些时候,权衡是不值得的.

    验收测试

    通过此测试,我们评估与所提供的要求相关的软件,基本上我们看到我们生产的软件是否满足我们给出的要求.

    这通常是在软件开发活动序列中完成的最后一种类型的测试.因此,在单元测试和集成测试之后进行这种类型的测试.

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