A Dream that I Had 20 Years Ago: “develop a cool C++ app” Has Been Finally Realised
On 2020–10–13, I opened the book “The C++ Programming Language” that I bought 20 years ago, found out a hand-written line on a back blank page: “develop a cool C++ app”. This was a dream back then, and I have totally forgotten.
In 2000, I worked as a software engineer (Java) at a research centre. Under my tech lead’s advice, I learned C++ and developed a small C++ utility (bought the book at that time). I was very impressed with the C++ speed (comparing to Java). However, C++ was a lot harder to program for me, as I got used to Java’s memory management. My writing “develop a cool C++ app” on a blank back page showed a lack of confidence.
After I left the research centre and went on to work as a contract Java programmer, I put the goal of ‘developing a C++ app’ totally behind me. It was really like a dream that faded gradually.
Years later, my interest moved onto Test Automation and Continuous Testing. As I faithfully practising test automation (and CT) for a few months, I noticed my productivity as a programmer greatly increased. About a year later, my productive gain was not double or triple, is more like 10x+. This gave me the confidence to start developing my own apps in my spare time. I developed a few apps in my spare time: TestWise, ClinicWise, SiteWise, BuildWise, and WhenWise. All are in beautiful Ruby language.
TestWise, a functional testing IDE, is my first and still most-loved app. I use TestWise every workday. In 2009, wxRuby, the open-source GUI library TestWise uses, ended its development. Since then, I have been patching the Selenium WebDriver source to make it work in TestWise 4. The patching experience was no good. So I decided to re-develop TestWise.
I have tried to use Python and Java for the redevelopment of TestWise 5. It worked, however, I was not satisfied. On 2018–07–01, I decided to go for C++, by using the wxWidgets GUI library directly to eliminate the dependencies. TestWise 6, a total rewrite in C++, was released on 2020–03–25.
If you are a programmer and wonder how could a person create a testing IDE twice in his spare time? The secret is Test Automation and Continuous Testing. Please read my “Benefits of Continuous Testing” series. The short answer is that, as some might have read from agile books, Test Automation will greatly improve software design skills. My advice to programmers who want to develop own products: spend 70% of time on developing and maintaining automated tests.
TestWise v6 is better than v4 in every way, and for the first time, TestWise now runs on macOS and Linux. The most noticeable change is speed, C++ is really fast!
Does it justify ‘Cool’? As it was my dream, it definitely satisfies my criteria, and some others’ as well.
- TestWise (formerly known as iTest2) was demonstrated at the Agile 2009 workshop, with good feedback
- Listed in Ward Cunningham (co-author of the Agile Manifesto) Functional Testing Tools
- Listed as the first testing tool in Lisa Crispin (co-author of Agile Testing book)’s ‘Agile Testing Overview’ presentation
- A Finalist of 2nd Ruby Award
- Dozens of customers, including two top FORTUNE 500 companies
What matters the most is that I use TestWise every workday. As a programmer, I enjoy the boosted productivity for my development/testing through using my own tool.
This article was initially published on LinkedIn (2020–10–13)