关于测试

测试驱动开发编程

测试驱动开发 (TDD) 是一种以很是短的开发周期不断迭代的软件开发过程:首先开发者对将要实现的功能浏览器

或者新的方法写一个失败的自动化测试用例,而后就去写代码来经过这个测试用例,最终经过重构代码让框架

一其达到可接受的水准函数

1.单元测试  工具

单元测试是一种编程方法来确认函数,类和方法以咱们预期的方式来工做,单元测试会贯穿整个项目的开
发周期。经过检查各个函数和方法的输入输出,你就能够保证内部的逻辑已经正确执行。经过使用依赖注
入和编写”mock” 类以及 stubs 来确认依赖被正确的使用,提升测试覆盖率。
当你建立一个类或者一个函数,你应该为它们的每个行为建立一个单元测试。至少你应该确认当你输入
一个错误参数会触发一个错误,你输入一个有效的参数会获得正确的结果。这会帮助你在开发周期后段对
类或者函数作出修改后,确认已有的功能任然能够正常的工做。可替代的方法是在源码中使用
var_dump() ,但这种方法却不能去构建一个或大或小的应用。
单元测试的其余用处是在给开源项目贡献代码时。若是你写了一个测试证实代码有bug,而后修复它,并
且展现测试的过程,这样补丁将会更容易被接受。若是你在维护一个项目,在处理 pull request 的时候可
以将单元测试做为一个要求。单元测试

2.集成测试测试

集成测试 (有时候称为集成和测试,缩写为 I&T)是把各个模块组合在一块儿进行总体测试的软件测试阶段。spa

它处于单元测试以后,验收测试以前。集成测试将已经通过了单元测试的模块作为输入模块,组合成一对象

个总体,而后运行集成测试用例,而后输出一个能够进行系统测试的系统

开发

3.功能性测试

有时候也被称之为验收测试,功能测试是经过使用工具来生成自动化的测试用例,而后在真实的系统上

运行。而不是单元测试中简单的验证单个模块的正确性和集成测试中验证各个模块间交互的正确性。这

些工具会使用表明性的真实数据来模拟真实用户的行为来验证系统的正确性

 

功能测试的工具
Selenium
Mink
Codeception 是一个全栈的测试框架包括验收性测试工具。
Storyplayer 是一个全栈的测试框架而且支持随时建立和销毁测试环境

行为驱动开发

有两种不一样的行为驱动开发 (BDD): SpecBDD 和 StoryBDD。

StoryBDD 专一于业务逻辑或功能的行为和互动。采用 StoryBDD 时, 你编写可读的故事来描述应用程序

的行为。接着这些故事能够做为应用程序的实际测试案例执行。Behat 是使用在 PHP 应用程序中的 StoryBDD

框架,它受到 Ruby 的 Cucumber 项目的启发而且实现了 Gherkin DSL 來描述功能的行为。

SpecBDD 专一于代码的技术行为。采用 SpecBDD 时, 你编写规格来描述实际的代码应该有什么行为。

你应该描述函数或者方法应该有什么行为,而不是测试函数或者方法。PHP 提供了 PHPSpec 框架来

达到这个目的,这个框架受到了 Ruby 的RSpec project 项目的启发。

BDD 连接
Behat, PHP 的 StoryBDD 框架, 受到了 Ruby’s Cucumber 项目的启发。
PHPSpec, PHP 的 SpecBDD 框架, 受到了 Ruby’s RSpec 项目的启发。
Codeception 是一个使用 BDD 准则的全栈测试框架。

其余测试工具除了个别的测试驱动和行为驱动框架以外,还有一些通用的框架和辅助函数类库,对任何的测试方法都很有用。工具地址Selenium 是一个浏览器自动化工具 integrated with PHPUnitMockery 是一个能够跟 PHPUnit 或者 PHPSpec 整合的 Mock 对象框架Prophecy 是个有本身的想法,且很是强大灵活的 PHP 对象 mocking 框架。它整合了 PHPSpec 并且能够和 PHPUnit 一块儿使用

相关文章
相关标签/搜索