集成testing和functiontesting有什么区别?
functiontesting和集成testing是一样的吗?
你通过unit testing开始你的testing,然后在完成unit testing之后,进行集成testing,在那里你testing整个系统。 functiontesting与集成testing相同吗? 您仍然将整个系统作为一个整体进行testing,并进行function一致性testing。
集成testing是在您testing多个组件以及它们如何一起运行的情况下进行的。 例如,另一个系统如何与您的系统进行交互,或者数据库与您的数据抽象层进行交互。 通常这需要一个完全安装的系统,尽pipe它最纯粹的forms并不是。
functiontesting是在您根据产品的function要求testing系统时。 产品/项目pipe理通常将这些内容写出来,QA将用户应该看到和体验的过程forms化,以及这些过程的最终结果应该是什么。 根据产品,这可以自动或不自动。
functiontesting:是的,我们正在testing产品或软件作为一个整体在function上是否正常工作(testingbutton,链接等)
例如:login页面
你提供用户名和密码,你testing它是否带你到主页。
集成testing:是的,您只testing集成的软件,但您testing数据stream的发生位置,数据库中是否有任何更改。
例如:发送电子邮件
您发送一封邮件给某人,有一个数据stream,也在数据库中更改(发送表增加值1)
请记住 – 单击链接和图像不是集成testing。 希望你明白为什么,因为只要点击链接就没有数据库的变化。
希望这对你有所帮助。
functiontesting:这是一个testing模块的每个组件的过程。 例如:如果一个网页包含文本字段,无线电button,button和下拉等组件需要检查。
集成testing:检查两个模块之间的数据stream的过程。
这是一个重要的区别,但不幸的是,你永远不会find协议。 问题是大多数开发人员从他们自己的angular度来定义这些。 这与关于冥王星的辩论非常相似。 (如果它靠近太阳,它会是一个星球吗?)
unit testing很容易定义。 它testingCUT( 代码testing ),没有别的。 (呃,尽可能less的。)这意味着嘲笑,假货和装置。
在另一端,有许多人称之为系统集成testing 。 这是尽可能多的testing,但仍然在你自己的CUT寻找错误。
但是广阔的空间呢?
- 例如,如果您testing的只比CUT多一点点,那该怎么办呢? 如果包含一个Fibonacci函数,而不是使用已经注入的夹具呢? 我会称之为functiontesting ,但世界不同意我的看法。
- 如果你包含
time()
或rand()
? 或者如果你打电话给http://google.com
? 我会打电话给那个系统testing ,但是我又是一个人。
为什么这很重要? 因为系统testing是不可靠的。 他们是必要的,但他们有时会因为你无法控制的原因而失败。 另一方面,functiontesting应该总是通过,而不是随机失败; 如果速度很快,那么为了使用“testing驱动开发”(Test-Driven Development),最好不要在内部编写太多的testing。 换句话说,我认为unit testing可能比他们的价值更麻烦,而且我有很好的公司 。
我在三个轴上进行了testing,所有的零都在unit testing中 :
- functiontesting:使用真正的代码更深入和更深入你的调用堆栈。
- 集成testing:您的调用堆栈越来越高; 换句话说,通过运行将使用它的代码来testing你的CUT。
- 系统testing:越来越多的不可重复的操作(O / S调度程序,时钟,networking等 )
一个testing可以很容易地全部3,不同程度。
集成testing – 集成testing不过是对不同模块的testing。 你必须testing模块之间的关系。 如果你是开放的Facebook,那么你看到login页面后inputloginID和密码,你可以看到Facebook的主页,因此login页面是一个模块,主页是另一个模块。 你只需要检查它们之间的关系就意味着你login的时候只有主页必须打开而不是消息框或者其他东西。 集成testingTOP-DOWN方法和BOTTOM UP方法有两种主要types。
functiontesting – 在functiontesting中,您只需要考虑input和输出。 在这种情况下,你必须像实际的用户一样思考。 testing你给了什么input和你得到了什么输出是functiontesting。 你只能观察输出。 在functiontesting中,您不需要testing应用程序或软件的编码。
简而言之…
functiontesting主要集中在模块的function或者模块的stream程上,集成testing主要集中在我们应用的模块集成上
在functiontesting中,testing人员只关注应用程序的function和子function。 应用程序的function应该正常工作或不正确。
在集成testing中,testing人员必须检查模块或子模块之间的依赖关系。模块logging的示例应该在另一个模块中获取并正确显示。
集成testing: – 当unit testing完成,问题解决到相关的组件时,所有需要的组件都需要集成在一个系统下,以便它可以执行操作。 为了testing系统是否正常工作,这种testing称为集成testing。
functiontesting: – testing主要分为两大类1.functiontesting2.非functiontesting**functiontesting: – testing软件是否按照用户的要求工作。 **非functiontesting: – testing软件是否满足压力testing,安全testing等质量标准。
通常情况下,客户只提供functiontesting和非functiontesting的要求,不要提到要求,但应用程序必须执行这些活动。
我想说,两者都是紧密相连的,而且很难区分它们。 在我看来,集成testing是functiontesting的一个子集。
functiontesting基于您收到的初始要求。 您将testing应用程序行为与需求一致。
说到集成testing,就是模块之间的交互。 如果一个模块发送一个input,B模块能够处理它。
集成testing
functiontesting
检查应用程序的function通常称为functiontesting,其中集成testing是检查从一个模块到另一个模块的数据stream。 让我们拿钱转移的应用程序的例子。假设我们有页面,我们input所有的凭据,如果我们按转移button,之后,如果我们得到任何成功,那么这是functiontesting。 但在同样的例子中,如果我们validation金额转移,那么它是集成testing。
作者在这方面分歧很大。 我不相信有这个“正确的解释”。 这真的取决于。
例如:大多数Rails开发人员认为unit testing是模型testing,functiontesting是控制器testing和集成testing,就像那些使用类似Capybara的应用程序一样,从最终用户的angular度来探索应用程序 – 也就是浏览页面生成的HTML,使用DOM检查预期。
还有一些验收testing,这些testing又是系统的一个“实时”文档(通常他们使用小黄瓜使得用自然语言编写这些文档成为可能),通过多个场景描述所有应用程序的function由开发人员。 那些,恕我直言,也可以被认为是两个,functiontesting和集成testing。
一旦你理解了每一个背后的关键概念,你就会更加灵活地对待或者错误。 所以,恕我直言,functiontesting也可以被认为是一个综合testing。 对于集成testing来说,根据集成testing的集成types,可能没有考虑到functiontesting – 但是在编写集成testing时通常会有一些要求,所以大多数时候也可以考虑functiontesting。