Let’s say one of our programmers is busy designing your individualized application on his/her own computer. Red light! What happens if the system crashes? Vast amounts of work may be lost forever. So instead, we commit (or upload) the code to a central source code repository. Imagine this repository as a holding zone, a database for our code.
With the code in the repository, we then scan it for common problems. There are a variety of tools available for this, based on programming language used, in our projects JSHint, FxCop and Code Duplication Checkers are some of the most commonly used. We like scanners because they can automatically monitor the code before we deploy it.
We compile the code after we’ve scanned it. In this step we change the programmer’s commands into something that works on your desktop, mobile device or web browser. Here we also use scripts to create the database tables, test data and stored procedures.
Finally, we’re ready for the automated tests. For instance, if we’re working with a website application, scripts load the browser automatically, land on a specific page, and test how things work on that page. Typically, there are hundreds of automated tests for a given application. The quality of the application is vastly improved because the automated tests run daily.
When automated tests detect a problem, our team receives immediate notification in order to swiftly repair it. The result is essentially bug free code throughout the development process. When our manual testers discover new issues, we develop a new automated test expressly for that issue. Selenium is our preferred software testing framework for user interface automated tests.