What is Testing Solution?
In our testing solutions we practice continuous integration and testing strategy to ensure quick and clear problem resolution, in-time reporting and transparency of the project to team members, stakeholders and product management. The dedicated infrastructure is built to be flexible and reliable, to meet any sophisticated requirements. The toolchain includes:
- Distributed Version Control System. We use Git to interface with our source code which is kept in a remote repository. We employ the Gitflow Workflow.
- Our build server monitors Repository. The master branch is monitored on a remote Build server by multifunctional continuous integration services: TeamCity, Bamboo, Jenkins. Changes to master branch trigger the service to run a build process. The build process steps can be adjusted to challenge the agile development process.
- In our build process we generally invoke Test Runners to run Unit Tests. We use Xunit, Nunit and others to unit test our code prior to building. If a test fails then the subsequent steps of the build do not occur a summary of the failure is being reported.
- We use Tosca CI agent to execute UI tests. Tricentis Tosca Test Management suite is an essential part of our Testing solution.
- Finally, the build artefacts are deployed to dedicated hosting server infrastructure.
The progress of project is tracked by Atlassian JIRA. Issues, bugs, build statuses and reports are seamlessly integrated to one subject.
Why do we use it?
Continuous testing strategy is a key feature of our development support infrastructure. We implemented custom configurations to allow team to configure application environment variables in the setup stage. For Sitecore projects, variables like database names, website instance names, deployment location paths can be set instantly by developer and in few minutes to instantiate a live version of currently developed feature on the server infrastructure.
Other topics like general task automation are also implemented within our Continues Integration environment. These are automated jobs for various data acquisition scenarios involving Selenium and derivative software, Tosca automation jobs and many more processes involved into developments.
This approach lets us:
- Work simultaneously on different features and products
- Detect issues early
- Automate deployment to production for continuous delivery
Automate everything and of course … to have fun!