Earlier this year I started thinking more about the test stack. The test stack is heavily integrated with the dev/CM stack. The automated tests run using a language, library, or languages and libraries. People edit the test files in editors or IDEs. The test code is stored in source control systems. Test are run by continuous integration environments, the results are stored. Deployment systems create VM’s for the system under test and for running tests. Testers tie their changes checked into source control to requirements and features in the issue tracking system.
I use these parts, these components, in my job. I have used different versions of them, different brands/sources, and in different ways. But until last week, almost all of my energy was focused on learning about the automated test languages & libraries. In some cases, I used a “stack in a box” that we can get from a vendor like Compuware or HP. Other times I was provided those components by IT departments and CM professionals.
But I decided earlier this year to learn more about that stack. I will not become an expert on those components. But I will install some of them, and integrate them, and get them all working together on my laptop (or from my laptop).
I will try to drop some insight into my experience with them. I have already worked with Windows, Mac, and Linux, including the on VM’s that software under test and test software can run on. I set up Git as a source control repository. This past weekend, I installed Jenkins that runs deployments and tests everytime code is checked into my Git. Last, I installed Redmine that I can record features that I will create. Those will be the parts I write.
I may install Chef, which deploys VM’s and configures them by deploying SUT and test software. I haven’t decided on that, or what kind of monitoring software (such as Splunk). If you have suggestions, I would appreciate reading them and possibly being influenced by them. I can’t do it all, but I want to know enough that I can better build one should I ever be in the position of a small office.
Update: I want to add database, of which I am using sqlite3 right now. Of course there is data loading.
Update 2: Somebody told me about flyaway, which is a database (scheme?) versioning application.