如何使用Gherkin和Codeception使Joomla CMS测试更佳?
我们所有人,Joomla!用户,都希望我们的心仪CMS能定期得到改进。我们也期待更新不会给我们带来新的错误,而只是新的功能。为了达到这个期望,每次代码中做出新的更改时,都会运行自动化测试以检查基本功能。
挑战是:如何使这些测试更好?
在这个夏天,我将致力于一个项目,将行为驱动开发(BDD)实践引入Joomla。行为驱动开发(BDD)是一种敏捷软件开发技术,鼓励在软件开发项目中促进开发人员、质量保证以及非技术或业务参与者的协作。
关于我
我是一名博士研究生,在萨乌拉什特拉大学(Saurashtra University)从事一项关于“基于PHP的各种开源CMS的建模自动化测试套件的分析研究比较”的研究。我曾在大数据应用(BCA,计算机应用学士)专业任教于Sardar Patel Kelavni Mandal - Jetpur。
我的丈夫Gunjan Patel多年前就向我介绍了J!Family。自从那时起,我开始通过加入自动化测试工作组来贡献和参与其中。我早已知道Joomla!社区,现在能成为其中一员我感到非常自豪。
谷歌夏日代码(GSoC)是一个全球计划,旨在向学生介绍开源软件开发。学生在大学假期期间与开源组织合作进行为期3个月的编程项目。这有助于学生有机会与导师一起在多种编码项目中工作,这些项目最终都将贡献给学生的指导组织,在我的情况下,就是Joomla!项目。
今年Joomla! GSoC申请由Puneet Kala(团队领导)、Ana Barcellos(助理团队领导)以及所有为使项目成功而努力工作的人士领导。
今年夏天,我将致力于使用Gherkin和Codeception语言,以及Robo.li和Selenium工具为Joomla! CMS编写内容功能和用户功能的浏览器自动化测试。项目的导师有Javier Gómez、Niels Braczek和Yves Hoppe。整个夏天(5月23日至8月15日)将在Github仓库中开发项目。请随时查看进度并提出建议。
Gherkin是一种业务可读的、特定领域的语言,它允许我们描述软件的行为,而不详细说明该行为是如何实现的。主要Gherkin有两个目的——文档和自动化测试。实际上就像你在读一本故事书,它用易于理解的故事定义了软件功能,帮助非技术人员、业务分析师和销售人员理解软件的流程和功能。对于开发者来说,Gherkin代码就像和你交谈,告诉你应该编写什么代码。
项目简要概述
在考虑这个项目“Joomla! CMS的浏览器自动化测试(涵盖用户和内容功能)”时,主要关注点是用户和内容功能。本项目的主要目标是创建基于Gherkin的所有可能场景下joomla用户管理和内容功能的系统验收套件。
以下是在Gherkin中编写的示例场景——
测试需要涵盖以下用户案例:创建、编辑、删除、发布内容文章,以及不同用户角色的修改。创建集成测试,将管理员、前端(通过创建菜单项)以及与用户和内容功能相关的应用程序(如模块和插件)链接起来。
例如
内容
-
为默认访问级别构建CRUD用例
-
Joomla在安装时提供了不同的默认访问级别。需要为所有这些访问级别创建文章及其分类的用例。
-
创建文章和分类菜单项,并确保在后台和前端按预期工作。
-
使用Joomla提供的前端编辑功能更改/更新、发布、取消发布、自动发布、更改标题等。
用户
-
在不同访问级别和组中构建CRUD用例。
-
确保用户组及其访问权限,如后台登录、前端编辑等。
-
创建新的访问级别并将其分配给用户,并确保其访问权限。
-
创建用户菜单项,从前端注册用户并更新。
-
使用配置文件插件设置新字段,并确保其按预期工作。
当前状态
深入研究Joomla CMS、内容和使用扩展,根据范围使用Gherkin编写所有可能场景的列表。这将是未来开发的完整捕捉,也可能有助于开始实际代码开发。
未来目标
开始根据范围和场景开发用户扩展的验收测试套件。我将尽我所能使文件结构和代码结构更易于用户使用,并且代码行旁边将提供适当的文档。
我衷心感谢我的导师们帮助我更好地理解这个项目,我希望我不会辜负他们的信任,并以最佳的方式完成我的工作。我希望我的技能和努力能为Joomla社区带来益处。
我还想感谢2016年Google Summer of Code团队和Joomla社区。
在Joomla社区杂志上发表的一些文章代表了作者对特定主题的个人观点或经验,可能不符合Joomla项目的官方立场。
通过接受,您将访问由https://magazine.joomla.net.cn/之外的第三方提供的服务
评论