阅读时间4分钟 (848字)

如何使用Gherkin和Codeception让Joomla CMS测试更上一层楼?

How to make Joomla CMS tests Better with Gherkin and Codeception?

我们所有人,Joomla! 用户,都期望我们的最喜欢的CMS能够定期改进。我们也期望更新只会带来新的功能,而不会带来新的错误。为了达到这个期望,每当代码中做出新的更改时,都会运行自动化测试来检查基本功能。

挑战是:如何使这些测试变得更好?

在这个夏天,我将致力于一个项目,将行为驱动开发(BDD)实践引入Joomla。行为驱动开发(BDD)是一种敏捷软件开发技术,它鼓励开发人员、QA和非技术或业务参与者在软件项目中之间的协作。

关于我

我是一名博士研究生,在Saurashtra University(http://www.saurashtrauniversity.edu/)进行了一项“基于PHP的各种开源CMS的建模与分析测试套件比较研究”。我在Sardar Patel Kelavni Mandal - Jetpur(http://spkmjetpur.org/)教授BCA(计算机应用学士)课程。

我的丈夫Gunjan Patel很久以前就向我介绍了J!Family。我通过加入自动化测试工作组,从5个月前开始贡献并参与其中。我早就了解Joomla社区,现在能够成为其中一员,我感到非常自豪。

谷歌夏日代码(Google Summer of Code,GSoC)是一个全球项目,旨在让学生了解开源软件开发。学生在大学假期期间与开源组织合作进行为期3个月的编程项目。这有助于那些有机会与导师一起在各种编码项目中工作的学生,在我的案例中,是Joomla项目。

今年Joomla! GSoC申请由Puneet Kala(团队负责人)、Ana Barcellos(副团队负责人)以及所有为之辛勤工作的人领导。

这个夏天,我将致力于使用Gherkin和Codeception语言,结合Robo.li和Selenium工具,为Joomla! CMS编写浏览器自动化测试,针对内容功能和用户功能。该项目的导师包括Javier GómezNiels BraczekYves Hoppe。整个夏天(5月23日至8月15日),该项目将在Github仓库中开发。请随时查看进度并提出您的建议。

 

 gherkin-bdd.png

Ref 1 Ref 2

 

Gherkin是一种业务可读的、领域特定的语言,它允许我们描述软件的行为,而不详细说明该行为是如何实现的。主要Gherkin有两个用途——文档和自动化测试。实际上,它就像是在读一本故事书,它通过易于理解的故事定义软件功能,有助于非技术人士、业务分析师和销售人员理解软件的流程和功能。对于开发者来说,Gherkin代码就像是在和你交谈,告诉你应该编写什么代码。

项目简要概述

在思考“为Joomla! CMS编写浏览器自动化测试(涵盖用户和内容功能)”这个项目时,主要关注点是用户和内容功能。本项目的目标是创建针对Joomla 3.x版本的用户管理和内容功能的系统验收测试,通过BDD(基于特征描述)的方式编写,涵盖所有可能的场景。

以下是用Gherkin编写的示例场景

Gherkin feature scenarios

 

测试必须涵盖以下用户案例:创建、编辑、删除、发布文章的内容,以及由不同用户角色进行修改。创建集成测试,将管理员、前端(通过创建菜单项)以及与用户和内容功能相关的模块和插件应用程序链接起来。

例如

内容

  • 构建默认访问级别的CRUD用例

  • Joomla在安装时提供了不同的默认访问级别。需要为所有这些访问级别创建针对文章及其分类的用例。

  • 创建文章和分类菜单项,并确保在后台和前端如预期工作。

  • 使用Joomla提供的前端编辑功能更改/更新、发布、取消发布、自动发布、更改标题等。

用户

  • 在各个访问级别和组中构建CRUD用例。

  • 确保用户组和它们的访问权限,如后台登录、前端编辑等。

  • 创建新的访问级别并将其分配给用户,并确保其访问权限。

  • 创建用户菜单项,从前端注册用户并更新。

  • 使用配置文件插件设置新字段,并确保其按预期工作。

 

当前状态

深入研究Joomla CMS、内容和用户扩展,根据范围使用Gherkin编写所有可能场景的列表。这将是对未来发展的全面捕获,并可能有助于开始实际的代码开发。

 

未来目标

根据范围和场景开始开发用户扩展的验收测试套件。我将尽最大努力使文件结构和代码结构易于使用,并且代码行将附带适当的文档。

我衷心感谢我的导师们帮助我更好地理解这个项目,并希望我不会辜负他们的信任,以最佳的方式完成我的工作。我希望我的技能和努力能造福Joomla社区。

我还要感谢整个2016年Google暑期代码团队和Joomla!社区。

《Joomla社区杂志》上发表的一些文章代表了作者对特定主题的个人观点或经验,可能并不代表Joomla项目的官方立场。

0
 

评论

已经注册? 登录这里
尚无评论。成为第一个提交评论的人

通过接受,您将访问https://magazine.joomla.net.cn/之外的第三方外部提供的服务