Software Testing

Quality is baked into our code through rigorous testing.

At Calavista, we go further than simply developing software; we have a transparent process that focuses not just on development but also testing. Software testing and quality assurance is a critical part of our approach.

We know that quality cannot be tested into software at the end, it must be baked in from the beginning.

Software Testing is not a separate package or add-on to our development services, rather it’s an inherent part of our process. It’s what makes our code so reliable and allows us to deliver quality every time. When hiring Calavista, you will not get developers working by the hour, you will get an entire Development Group in a Box®. Software Test Engineers are always part of that group – so every project includes thorough testing performed by QA professionals.

Test Driven Methodology

An experienced quality assurance team combined with Calavista’s test-driven methodology and process automation guarantees that every piece of code is rigorously tested and verified before the end-user sees it.

Unit
Testing

End-to-End
Testing

Code
Analysis

Performance
Testing

Open-Source
Testing

Security
Testing

Test-Driven Development

We believe better code is written using approaches like Test-Driven Development. TDD involves creating small, automated tests for the intended functionality of the code first.  The tests will fail until the code is written to make each test pass. This helps ensure that all required functionality is in place from the start, and creates a rapid feedback cycle, which allows the team to write high-quality, effective code faster.

Automated Testing

By automating tests using a continuous integration infrastructure, we ensure that once functionality is introduced or corrected, it can never later fail. This means that new code cannot break existing components, or adversely impact other regions of the code.

Manual testing is still part of the process – we recognize its value in exploratory testing and that automation is not always feasible – but if continuous testing is crucial to quality, then test automation is the mechanism that maintains project velocity.

Continuous Code Analysis

We use both static and dynamic code analysis to assess our code through all stages of the process. We can inspect the source code without even needing to run the software – screening for bugs, security weaknesses, and other shortcomings while it is still being written.

We also evaluate the code as the software executes, using dynamic code analysis to detect issues that only crop up when different elements interact.

This approach allows us to identify issues early in the project, long before they would be caught through other testing approaches.

DevSecOps Integration

Since we believe so strongly in automated testing and TDD, much of our testing is integrated into our cutting-edge DevSecOps processes which we bring to every project. Check out our DevSecOps page to learn more about how we utilize continuous testing and automation along with other methods to streamline our processes.

Agile Software Development List

Agile Development

At Calavista, we’ve been doing Agile since 2001, when the Agile Manifesto was first published. Over the years, we’ve continuously refined our methodologies, and now employ our proprietary Hyper-Agile® approach. Each 2-week Sprint not only delivers production-quality code, but we deploy each Sprint’s work on a Staging Server for our customers to use, play with, inspect…. Sprint Demos are really Sprint Deliveries, so stakeholders can actually see and touch what’s been done as we go along. All levels of testing, from code analysis to performance and security testing will be done within each Sprint. This helps ensure that production-quality code is consistently released.

Success is baked in with good testing.

Rigorous testing up front saves time and money in the long run. Work with a team that prioritizes test-driven-development.

Chef holding a cake