Chinese Idiom Stories for Software Professionals: #16 Complementing Each Other (相辅相成)
Mastering two complementing skills makes impossible tasks much easier.
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9a35ea6a-4b1d-4a9c-976f-89adbb548eb9_1400x587.png)
This article is one of the “Chinese Idiom Stories for Software Professionals” series.
Story
Once upon a time, a man bragged about his bow: “There is no bow better than mine. It doesn’t need any arrow!”
Another man bragged about his arrow: “There is no arrow better than mine. It doesn’t need any bow!”
At that time, a man good at archery happened to pass by and heard their dialogue. He said: “You are both wrong. One cannot shoot an arrow without a bow; and without an arrow, how can one hit the target?”
Thereupon, the man good at archery asked them to take out their bow and arrow. Then he showed them how to shoot at the target with both the bow and arrow.
Now they understood: A bow won’t do without an arrow; nor an arrow without a bow.
Meaning
Complement each other, Complete each other.
Examples in IT
Test Automation and Continuous Testing are often considered two separate activities. One proof is that two different job titles: Test Automation Engineer and DevOps (or CI/CD) Engineer.
While CI/CD is listed in some automated tester’s selection criteria, its scope is more a just familiar with CI/CD process. By the way, as far as functional testers’ concern, it is Continuous Testing, not CI/CD.
For me, Test Automation and Continuous Testing are integrated skill sets for a real Test Automation Engineer. I created TestWise (a functional testing IDE) and BuildWise (an international award-winning Continuous Testing server). OK, my example might be an extreme case. But you probably see the absolute need for me to get both working.
A real Test Automation engineer must be comfortable with
Developing automated End-to-End UI test scripts
Refactoring automated tests to be more reliable, readable and flexible.
Maintaining all automated End-to-End tests as regression testing (much much harder than the test creation).
Setting up a Continuous Testing server (including the database, Git, …) from scratch.
Configuring build projects in the CT server
Setting up BuildAgent farm to support parallel test execution
Triggering a run of regression (automated E2E) tests at least once a day, resolved all issues (99% within the same day, this is very hard)
Some might wonder: “Wow, how could that be possible? These people are gold”. Yes, that’s what Google VP Patrick Copeland said.
“In my experience, great developers do not always make great testers, but great testers (who also have strong design skills) can make great developers. It’s a mindset and a passion. … They are gold”.
- Google VP Patrick Copeland, in an interview (2010)
Don’t give up. My 20-old daughter achieved the above in her first intern role on the first day. Check out her article: “Set up, Develop Automated UI tests and Run them in a CT server on your First day at work”. She did that by taking advantage of tools/practices from my 16 years of experience. You could accomplish that too, with a couple of tests on the first day. However, the challenge grows quickly with an increasing number of tests. I think, my daughter is capable of managing a regression suite of 50 tests, not bad for her age, but still, a lot to learn. (Level 2 of AgileWay Continuous Testing Grading, based on my estimate, better than 90+%).
Real Test Automation means we need to run automated tests in a CT server
I will illustrate this with an example. Suppose you are working on an ‘agile’ green-field project, and you want to cover most of the user stories in automated end-to-end UI tests, ‘Done, Done’. Now, guess how many automated tests you will have. Maybe 200 or more, right?
Keep reading with a 7-day free trial
Subscribe to The Agile Way to keep reading this post and get 7 days of free access to the full post archives.