Home > Software Engineering > Automated build / deploy process: glimpse of the future

Automated build / deploy process: glimpse of the future

My team is working very hard to put finishing touches on an automated build / deployment process which will accomplish two key objectives:

– Serve as a platform to perform multiple automated regression tests, each with a specific purpose

– Increase code coverage by automated tests to more than 70%

So – what will this process look like in the very near future?   I am very excited to share a preview.

First – all product components will be rebuilt (no partial compiles).  This also includes product documentation maintained in a single source database where each documentation element – usually a paragraph or one or more sentences – are managed with XML tags.  The build process will extract documentation ‘snippets’ and automatically assemble online help files, printed documentation (user & administration guides).  This step has to work or the build process will fail.

Second – automated deployment process will initiate installation procedures (the same procedures that an actual customer may use in the future) and install  the new release of the software in 3 distinct QA environments:

– QA environment ONE:   will support execution of a standard regression suite to exercise core functionality

– QA environment TWO:  will support execution of another regression suite which consists of critical end-to-end scenarios performed by the majority of the customers. The best part: these scenarios can be changed before each nightly execution.  For example, if the new release addresses many bugs for a small group of customers, scenarios relevant to these customers can be easily included in the execution profile.

– QA environment THREE:  will run multiple scalability and performance tests.   There is an extra step in this process.  One of the engineers will schedule a process which will automatically generate test databases that mirror certain customer profiles.  It’s essential for scalability tests to operate on real or almost real customer data.

Finally, the deployment process will also execute and validate  ‘uninstall new release/ install & activate old release’ procedures.

One of the features I like the most is an automated notification of what scenarios worked and did not work.   Each software engineer receives an e-mail after each scenario was executed.  The e-mail also contains detailed diagnostic information if the scenario failed during execution.

It was a long journey to get to this point but it was more than worth it.

Categories: Software Engineering
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: