专栏文章 集成测试、单元测试、系统测试

FunTester · 2020年04月28日 · 最后由 FunTester 回复于 2020年05月03日 · 129 次阅读

为了使软件正常工作,所有单元都应集成在一起并正常运行。集成测试就像是要求不同工种的工人修建一个房子,希望他们都团结协作。如何判断他们在一起是否可以按照计划完成建设呢?唯一了解的方法是通过将它们全部拉在一起并测试它们如何相互作用来执行 “集成测试”。软件开发和设计也是如此。

如果希望每个软件单元无缝地合并,则必须合并它们并判断结果。下面将展示一些集成测试软件的最佳实践,以及集成测试和类似形式的测试之间的差异。

但是首先看一下集成测试的定义。

什么是集成测试?

集成测试在软件测试类型中排名靠前,这是因为它对任何一支优秀的 DevOps 团队而言至关重要。

通常,集成测试是在单元测试之后进行的,以确保所有单元相互协调运行。通常,一个单元将被视为具有独立功能,但在与其他单元交互时可能会引起问题。这就是软件测试如此重要的原因,尤其是作为一个整体的测试单元。同样,大多数软件项目都有多个开发人员为不同的模块和单元编写代码。因此,集成测试确定不同开发人员正在编写的软件是否能够按照计划的那样工作。

但是在执行集成测试之前,必须先进行单元测试。

什么是单元测试?

单元测试通常是开发人员对软件进行的第一次测试。测试的目的是确保软件作为独立设备运行良好。

现在,在对这些单元进行单元测试和集成测试之后,开发人员将继续进行系统集成测试。

什么是系统集成测试?

系统集成测试用于验证整个软件系统。基本上,软件单元集成在一起以创建模块。然后将这些软件模块集成到一个完整的系统中。

为了确保我们对刚刚列出的所有三种测试的定义和差异都一目了然,让我们看一下它们的比较。

集成测试与单元测试

单元测试 整合测试
分别测试每个单元,以确保其可以正常工作 测试单元在一起以确保它们可以相互结合而不会出现问题
可以随时执行 在单元测试后执行
只能检测单个单元内的错误 可以检测由于单元相互交互而导致的错误
通常由开发人员执行 通常由一组专业的测试人员执行

系统测试与集成测试

在单元上执行集成测试后,这些单元将组合到各个模块中,然后必须将其作为一个完整的系统进行测试,因此需要进行系统测试。

为完全了解集成测试和系统测试之间的区别,这是另一个比较两者的表格:

整合测试 系统测试
测试各个单元的协同工作效果 测试单元和模块作为整个系统(即整个产品)的一部分如何协同工作
与提供预期结果的模块有关 与符合指定要求的最终产品有关
仅执行功能测试 执行功能和非功能测试,例如可用性,性能,负载等
是黑盒测试还是白盒测试,都需要了解单元和界面 一种黑盒测试技术,不需要了解内部结构或代码
由开发人员和测试工程师执行 仅由测试工程师执行
在单元或模块而不是整个系统之间寻找缺陷 寻找并发现与影响整个系统的内部和外部接口有关的缺陷和问题
模拟两个单元之间的交互 模拟真实的测试用例

  • 郑重声明:文章首发于公众号 “FunTester”,禁止第三方(腾讯云除外)转载、发表。

技术类文章精选

非技术文章精选

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 4 条回复 时间 点赞

感觉这么讲有点虚,建议可以结合一个实际项目的实战来举例说明?

陈恒捷 回复

我们项目中的集成测试、系统测试这些还好,不过技术层面我这没啥讲的。唯一能讲的单元测试,在实际项目中使用的效果不咋好,只能说一下小技术细节,讲不了项目。

FunTester 回复

hmm,我的意思是,你讲的这些都是比较虚的道理,缺少和大家会遇到的场景结合,新手会觉得云里雾里。对于大部分同学来说,学习知识比较高效且容易的方式,是类比或者举例子。

举个例子:
1、对象(Object) :可以对其做事情的一些东西。一个对象有状态、行为和标识三种属性。类(class):一个共享相同结构和行为的对象的集合。
2、举例来说,“狗” 这个类会包含狗的一切基础特征,例如它的孕育、毛皮颜色和吠叫的能力。而一只实际在你面前撒娇的二哈则是一个对象。

是不是有第二个生活中的例子辅助,会容易理解很多?

另一方面,实际上大部分软件公司系统测试、集成测试其实没有那么明确的区分,或者说基本没有完全符合你上面概念的系统、集成测试。那是不是从一些实际项目实践上讲,会比单纯教科书里讲概念更有意义?

陈恒捷 回复

ok,本来这个专栏就是发一些非技术的文章。以后这个停更掉好了。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册