I was fortunate to have the opportunity at my new job to work on an innovation project of my own choosing for the past week.
I decided to try to my hand at model-based testing again. In my previous job I was doing software build and deployment engineering for several years, and agile team leadership. In my current job I have been doing more test automation in Ruby with tools like Cucumber. But writing test cases by hand takes a long time.
Back in 2008 I posted a comment on this blog about mbt.tigris.org, an MBT tool written in Java. The tool still exists, and was renamed GraphWalker, and numerous enhancements have been made to it over the years.
I created a Docker container to run GraphWalker as a rest service, and a JSON models to represent one of our testing components. Then I created a Ruby command line program to load the JSON model into GraphWalker and generate test inputs through the REST API. Finally I created a Ruby program with method names matching the element names in the JSON model. It runs and generates tests at the same time, very fast, and works great.
I really enjoy model-based testing. Whenever I do it there is a part of my brain that lights up with excitement. On some level I know this is how things should be done.
I will be giving a demo of the project next week. I hope to convey some part of the excitement I have been experiencing this past week. I hope that it will turn some heads.
UPDATE:
The demo went very well. I made some enhancements to the tool in the days that followed. Several people gave me feedback about the tool and how innovative it was.
Open Testing is my software engineering blog. It is also a concept of testing software in an open and public manner.
Saturday, July 6, 2019
Thursday, January 24, 2019
Taking Leave
Last October I became a remote employee after my employer announced it was going to close its Seattle office at the end of the year. For several months I worked out of my home, and trained a new team in the new headquarters in another city. I liked my new team. Really I did. But I also watched as my former team in the Seattle office worked to transfer knowledge and prepare to find new jobs.
I could perhaps have stayed on as a remote employee indefinitely. But I was told in no uncertain terms that working remotely would be career limiting. I had been a team lead, on track to become a manager, and that path was now gone. The last month I was there, management started referring to me and a handful of other remote employees they kept on, as "subject matter experts". That led me to believe that I was only being kept around for an extended knowledge transfer. At some point they would let me go no matter what I did. And it would probably happen at a time inconvenient for me.
And so I kept interviewing. I got a great offer from a stable local company only five miles from my home. They were willing for wait for me to come over until a time that was convenient for me. There were some indications that the company had been through some tough times, but the interview was positive and it just felt right.
Two weeks into my new job, I am glad I made this move. I have a new team, and I like them a lot already. While I am not the lead, I will be doing exciting work as an individual contributor. I am working with modern software development technology and practices, on a product that the company is committed to, and learning a lot about an industry that is new to me. I get home a lot earlier than I used to. I can take the bus home if necessary. And I am having fun again.
My final email to colleagues before I left had the lyrics to a song I love, called The Greatest Adventure. This is my favorite verse.
A man who's a dreamer
Who never takes leave
Who lives in a world that is just make believe
Will never know passion
Will never know pain
Who sits by the window will one day see rain
And the chorus:
The greatest adventure is what lies ahead
Today and tomorrow have yet to be said
The chances, the changes, are all yours to make
The mold of your life is in your hands to break
The greatest adventure is what lies ahead
I could perhaps have stayed on as a remote employee indefinitely. But I was told in no uncertain terms that working remotely would be career limiting. I had been a team lead, on track to become a manager, and that path was now gone. The last month I was there, management started referring to me and a handful of other remote employees they kept on, as "subject matter experts". That led me to believe that I was only being kept around for an extended knowledge transfer. At some point they would let me go no matter what I did. And it would probably happen at a time inconvenient for me.
And so I kept interviewing. I got a great offer from a stable local company only five miles from my home. They were willing for wait for me to come over until a time that was convenient for me. There were some indications that the company had been through some tough times, but the interview was positive and it just felt right.
Two weeks into my new job, I am glad I made this move. I have a new team, and I like them a lot already. While I am not the lead, I will be doing exciting work as an individual contributor. I am working with modern software development technology and practices, on a product that the company is committed to, and learning a lot about an industry that is new to me. I get home a lot earlier than I used to. I can take the bus home if necessary. And I am having fun again.
My final email to colleagues before I left had the lyrics to a song I love, called The Greatest Adventure. This is my favorite verse.
A man who's a dreamer
Who never takes leave
Who lives in a world that is just make believe
Will never know passion
Will never know pain
Who sits by the window will one day see rain
And the chorus:
The greatest adventure is what lies ahead
Today and tomorrow have yet to be said
The chances, the changes, are all yours to make
The mold of your life is in your hands to break
The greatest adventure is what lies ahead