My daughter's book, "Selenium WebDriver Recipes in C#: Practical Testing Solutions for Selenium WebDriver", was published by Apress on December 24th, 2023. You can now order it on Amazon.
As the father and her test automation coach, I am proud.
Readers with a cynical mindset might assume, "That's because you assisted her." Yes, I did assist in a way one would aid one's own child. Nevertheless, it was Courtney who did the writing (with me serving as the editor/reviewer), in addition to updating test scripts for the new Selenium v4 and contributing a significant portion of fresh content derived from her writings on Medium. Ultimately, Courtney underwent the rigorous selection process at Apress, an established tech book publisher, as an author.
I still remember her writing first automated test in TestWise at the age of 12. She found "It was easy" and said "Fun" when doing functional test refactoring in TestWise IDE. I don't push her to learn test automation, as her main focus is studying (middle school, later high school, and university). So, she just learned it bit by bit casually. This situation persisted today..
Courtney works for Amazon Australia as a software development engineer, and no web front-end was involved. At the day job, she programs in Java , JavaScript or Scala. At home, she might use another language, e.g. Python, for her Bachelor's Honour degree study (part-time) and do some test automation exercises in Ruby. In preparation for this book, Courtney learned and mastered a new language, C#.
Some readers might be impressed with her ability to use several languages, sometimes within one day. That is really nothing, just a mindset. Programming, fundamentally, is the same. You surely can learn to use several language for scripting E2E tests, quickly.
At the very early beginning, I taught her to be open-minded about programming languages (starting with Ruby). Those who are fixated on one or two programming languages and refuse to learn are not normal to me. As we all know, IT is a fast-moving industry.
I received many requests for advice or help online, and I gave the same advice (as to my daughter), such as learning Ruby. But, to my knowledge, few listened.
Table of Contents: · How did I assist with this book? · It was a lot of work for her · I have been providing the same advice here as for my daughter
How did I assist with this book?
I published the second edition of the Selenium WebDriver Recipes in C# with Apress in 2015. In March 2023, a senior editor from Apress contacted me to persuade me to write the 3rd edition. I declined. The reason is simple: I don't want to use C#.
I completed the Selenium Recipes book in C# for a closure, i.e. covering all five official Selenium languages.
After that, I didn't want to touch C# any more. (I programmed professionally in .NET for two years; It was a Biztalk project, which left me with bad memories)
I received one request for training on Selenium C# Test Automation because of my book. My reply was, "I don't recommend using C# for test automation. Using Ruby is much better. I can provide training for that if you are interested". As expected, no responses.
Back to the new book. The editor was not an easy-to-give-up person; she sent a few more emails to convince me. A thought came to mind: "Courtney can do that, maybe it is an opportunity for her to learn C#".
Firstly, I needed to convince Courtney. Understandably, she was hesitant. Courtney gained confidence in E2E Test Automation & Continuous Testing at her first intern job, where she technically crushed the company's so-called best test automation engineer. (Check out this article).
Courtney's hesitation was on C#. I explained that "this book won't be hard for you for reasons":
- This is a solution book, a relatively easy type.
- You are familiar with this book format and solutions, which you learned web test automation using this book series.
- You have already written a dozen Selenium solution and case study articles on Medium, which can be added to the book.
- Learning a new language (C#) is good. After that, simply convert the Ruby version to C#.
- You are pretty good at using VS Code (which I am not). For this new edition, it is better to migrate to VS Code from the heavyweight Visual Studio IDE.
Finally, she agreed. This also meant she needed to pause writing her own "Practical Mobile Test Automation" book.
Then, I replied to the Apress with my recommendation. This editor was interested. As a professional editor for an established technical book publisher, she certainly needed to do verification (to make sure Courtney had the capability), not just take my word for it. She contacted Courtney and conducted one Zoom meeting (an interview, really).
Courtney has actively contributed to Medium, focusing on E2E Test Automation and Continuous Testing, just like me. Over the past year, 15 of her articles that have been featured in prominent software testing newsletters. Additionally, she has published an interactive course on educative. The combination of these accomplishments, coupled with Courtney's evident confidence, knowledge, and passion showcased during the interview, left a strong impression on the editor.
It was a lot of work for her
Courtney works full-time at Amazon as a Software Development Engineer; her work is mostly about the back-end, not related to Web Test Automation. Some readers might think, "Working at a FAANG company is quite challenging; doing this side work is hard". Not really. According to a recent research on side hustle,
- "Side hustles may actually make employees better at their full time jobs, a 2021 study found."
- "They can have these positive, enriching experiences that carry forward into their full-time work,"
Since 2006, I've been engaged in side hustles, focusing on learning and practicing test automation, and subsequently, writing books/articles and developing my own applications. As a result, my daughter has come to acknowledge this after witnessing my work from home consistently throughout the years.
The main challenge for her is that she is studying two university courses for an honour's degree!
Writing a Press book requires far more effort than self-publishing on Leanpub. Besides the authoring content, she needed to replicate her drafts (in Markdown format) into a Word format. Of course, with many revisions. Other work includes retaking screenshots for the print-book,…, etc.
I have been providing the same advice here as for my daughter
I do mentoring in a consistent form. The tech stack choice, approaches and practices that Courtney has learned, you can find them in my blog, such as:
- Selenium WebDriver for Web; Appium for Desktop and Mobile
- RSpec syntax framework
- Prefer Ruby as the scripting language
- Handle waits and AJAX operations.
- Maintainable Automated Test Design
- Test Refactoring in TestWise
- Continuous Testing in BuildWise.
- …
Certainly, Courtney's benefit is having access to my mentoring, which is available to customers. From my perspective, the crucial factor why she has exhibited higher web test automation productivity since high school than many senior automated testers is starting with and continuing to use the right tech stack, "AgileWay Test Automation Formula". Once you really master the essence of Web Test Automation and Continuous Testing, switching frameworks/languages does not matter that much.
In E2E Test Automation, it is very easy to get on the wrong path.
During consulting engagements, I frequently encountered frustration in attempting to persuade companies to adopt inferior tech stacks, such as
- commercial test automation tools, IBM Rational Functional Tester, Ranorex, Microsoft UI Test Pro
- bad web automation frameworks, e.g. ProtractorJS, Cypress.
- bad test syntax frameworks, e.g. Cucumber, SpecFlow
- bad scripting language, e.g. Java, JavaScript
- Using CI servers such as Jenkins and Bamboo to execute E2E tests
- silly trying to create 'a framework' on top of Selenium
- …
Courtney did not have those problems or contaminated mindsets; that's why she learned to develop useful Selenium tests on Day 1 of training at the age of 12. Of course, other 12-year-olds could accomplish that too, if under proper training because Selenium syntax is so simple and intuitive, Ruby is such a great scripting language, and TestWise makes learning much easier, more effective and fun.
Related reading: