Hello!
Please love and favor:

Jeff Morgan, aka Cheezy (
@chzy ). Jeff gave us a detailed interview about
his new book “Cucumber & Cheese” and the best testing methods, so ... just preface - read and get to know!
1. Hello, Jeff (Cheezy)! Thank you for taking the time to talk with us. You are a fairly well-known person, for example, in the world of Agile and ATDD. But could you tell us a little about yourself for those who still do not know you?')
My passion is writing programs, which I have been doing for almost thirty years. More than eight years ago, I decided to leave the “corporate car” and founded a company that later became known as
LeanDog . Since then, I have traveled around the United States and Canada and have been helping development teams work more efficiently by implementing Agile and Lean techniques.
I “stick out” from working with teams, where developers have no idea how to write clean code, testers execute scripts manually or do only random checks, and the customer is not sure that the team can provide a quality product. It's great when in a few months you manage to deploy such a team 180 degrees. I like to see how developers delve into programming skills, like teaching them to write high-quality code, incorporating techniques such as TDD, pair programming and the right design principles. I like to watch testers work shoulder to shoulder with developers and learn to write code to automate their tests. How to restore customer faith in the team. See when teams start working like clockwork. This is what I do.
At the beginning of my “coaching” career, I was disappointed with the state of the tester profession, especially in the teams I worked with. Testing has almost always been a stumbling block and did not allow the team to reach their full potential. After seeing how Kent Beck, Ron Jeffries and others managed to raise the bar of professionalism in the developer community, I decided to go the same way and influence the situation in the field of testing. I started introducing teams with ATDD, started working with testers and teaching them test automation with the same rigor with which I teach developers to write code. I began to expand the boundaries of the concept of collaboration in the Agile-team. At first, many of my ideas were considered radical and uncompromising, but over time they gained recognition and distribution.
2. When and how did you meet Ruby, and what do you like most about it?I like all programming languages. I like to delve into the subtleties of the language in order to understand what it has to offer. When there is a choice, I choose the language that best solves the problem.
In this way, I discovered Ruby for myself about six years ago. Rails was a novelty back then and many community members talked about it. I began to study it, and I liked it - especially the simplicity of the language combined with such a powerful object model. I thought it would be convenient to use metaprogramming to create high-level DSL for developers. This is the secret of Rails.
A couple of years later, I worked with testers and tried to help them implement test automation. I began to look closely at the existing instruments and was struck by their low level. Ruby seemed like a good solution. Using this language, we were able to write code to build high-level DSLs that testers could use to build test suites. Subsequently, this led to the development of a number of Ruby gems.
3. RoR developers must be very excited about your book, as we are in the RubyMine team. Could you tell us more, for whom is this book?My book is dedicated to Cucumber.

At the dawn of Cucumber, most people used web steps that came with a heme, or other gems, for example webrat. These tools usually created not very reliable test suites, but they worked fine with small sites because they took on the work necessary to run the tests. With the development of sites, there was a need for testing in different browsers, and we quickly realized that our additional needs could not be met with these gems.
The book attempts to cover several topics. First of all, it gives a good idea about Ruby and Cucumber. She also introduces the reader to a number of additional gems that Cucumber can use to write robust, flexible test suites. Also covered in-depth topics, including test data management and test scaling. Although the book is popular primarily among testers, I believe that developers will also be able to find many useful things in it.
4. Why Cucumber? What are the benefits of this testing environment?A remarkable feature of Cucumber is its ability to express the behavior of a program in a natural language called gherkin. I use this opportunity to increase the level of teamwork in the teams that I teach. Usually, it all starts with the fact that the product owner or the customer compiles a user history description on gherkin. When a developer understands the essence of a user story, we have a short discussion between the product owner, the developer, and the tester; it should last no more than five to ten minutes. During the discussion, we review the description on gherkin, make sure that we have reached a common understanding, and if necessary, add the missing scenarios. We call it the "conversation of the three amigos." After discussion, the developer starts writing code, and the tester automates scripts. The developer regularly runs cucumber tests to report progress and the remaining steps. The tester conducts research testing of history as the completion of its parts. The story is considered finished when both the developer and the tester are both sure that the code is clean and free from defects. This, of course, requires close cooperation between the developer and the tester, and Cucumber just meets the requirements of such cooperation. We were able to abandon the division of the workflow into stages of “development” and “testing”. We have a simple development stage, and testing has become an integral part of it.
5. You develop Ruby gems for testing enhancement. Can you tell us more about your favorite gems?This is the same as asking for a child to be loved. I love them all! Today the most popular is my
page-object gem. It allows you to create an abstraction around a web page and isolate the rest of the test suite from the changes on these pages. Another few gems that have received recognition recently -
brazenhead and
gametel . They provide a reliable testing platform for applications written for Android devices. Finally,
data_magic is a gem that works closely with page-object to isolate and randomize the data used in your tests. This is a required element for running tests in parallel. When tests are run in parallel, you lose control over the order of execution. If several test cases use the same test data, one test can use the data of another, and then a random test failure occurs.
6. What other testing tools can you recommend besides gems?Postcards, good development environment and git. Yes, I don’t like massive processes and tools. I love everything to be simple, without unnecessary complications.
7. It is a great honor for us that RubyMine is constantly mentioned in the book. How long have you been using RubyMine? What do you like about her?I have long, since the 1980s, been using emacs and the command line. I discovered RubyMine for myself immediately after its first release. Before that, I was pleased to use several other JetBrains tools, namely IntelliJ and ReSharper. And when I talked about Ruby as a platform for testing teams, I needed a fully integrated development environment. RubyMine met my requirements. Since then, this is my favorite tool.
8. Is there any functionality that you lack in RubyMine?I have already introduced many developers and testers to RubyMine, and most often I hear from them flattering words addressed to the best code completion for classes that are built dynamically. I know how difficult this task is, so I am pleased with the quality of your instrument and its continuous development. Continue in the same spirit.
9. You are engaged in training, blogging, etc. Where do you get inspiration from? Books, blogs? Hobbies?When I'm on the road (and this is about 90% of the time), I spend a short while writing code. In cities where I come, I visit user groups and try local beer. At the weekend I live a completely different life. We often go out with the family to nature and enjoy fly fishing.
10. Thank you for your attention, Jeff, we are waiting for the final release of your book. Are there any events or topics that you would like to draw the attention of readers?I just wanted to urge all developers to delve into the subtleties and improve their craft, and wish to never give up on the way to their intended goals!
Your Team JetBrains RubyMinePS The original interview in English can be read on the RubyMine blog at
http://blog.jetbrains.com/ruby/2012/11/interview-with-jeff-cheezy-morgan/