Home Solutions Quality Test driven development

Continuous delivery raises the bar for performance testing

In order to accommodate rising customer expectations of frequent updates and new features, companies have had to accelerate speed of development significantly. Unfortunately, developing software so quickly means that there’s lots of code to test in a limited time span, which can lead to delays. When test coverage is low, bugs, performance issues and other problems can turn a new feature into a nightmare for customers. Therefore, it’s very important for testing to keep up with, and even drive, development.

Our testing expertise

Traditionally, test driven development was used by developers at the unit test level. After years of working in continuous delivery, and following Agile and DevOps best practices, we elevated this practice to the functional testing level, performed by quality engineers. While our focus is not always to precede development with testing, we strive to accomplish the goal of getting tests done with zero or minimal lag behind development. Our architects and engineers have years of experience in combining testing with development, having implemented this practice with many clients of various sizes in different industries.

Closing the testing and development gap

Building a cross-functional team

While individual team members may have specializations, everyone on the team should have all the skills and roles to deliver working software. When we embed QA engineers in our teams, we ensure a close collaboration between:

  • Quality engineers and product owners. Quality engineers’ deep understanding of the requirements allows them to create test cases before development starts, and helps developers understand the full scope of work, leading to a higher quality product.
  • Quality engineers and developers. In many cases, we practice an approach similar to pair programming, where QA engineers work with developers on implementing a feature.
  • Quality engineers and product owners. Quality engineers’ deep understanding of the requirements allows them to create test cases before development starts, and helps developers understand the full scope of work, leading to a higher quality product.
  • Quality engineers and developers. In many cases, we practice an approach similar to pair programming, where QA engineers work with developers on implementing a feature.

Automating everything

Once the development process is established and the team has enough skills to deliver, quality engineers will automate all aspects of testing, including:

  • Test data management.     
  • Dependency management and service virtualization.
  • Functional and integration testing.
  • Performance testing.
  • All other non-functional requirements testing including stability, security, and more.
  • Test data management.     
  • Dependency management and service virtualization.
  • Functional and integration testing.
  • Performance testing.
  • All other non-functional requirements testing including stability, security, and more.

Integrating with the CI/CD pipeline

Test automation is not complete until it is integrated into the continuous delivery pipeline. To achieve test driven development, integration must start with source code management. Automated tests typically share all the techniques that the development team uses to manage code, including the branching strategy and versioning. QA engineers also ensure that test environment preparation and automated test execution are properly configured in the CI/CD pipeline, notifying developers of defects early in the process.

Key benefits

an orange circle, monitor, and mobile devices

Reduced lead time to change

Ensures that code can be tested as soon as engineers are done with development.

an orange circle, cube and arrow

Increased development speed

Automates all aspects of testing and integration with the CI/CD pipeline.

an orange circle and two thin arrows

Increased quality

Provides full automation and close collaboration between product management, development and quality engineers.

an orange circle and an abstract icon

Reduced cost

Finds defects early in the process and fixes them before developers switch to other tasks.

Our blueprint

Our blueprint

Technology stack

Docker logo

Performs virtualization at the operating system level

Maven logo

Build automation tool

Jenkins logo

Automates software development process with continuous integration

Protractor logo

Testing framework

J unit logo

Unit testing framework for Java

SE logo

Framework for testing web applications

JS logo

High level programming langauge

Java logo

Popular general-purpose computer programming language

jbehave logo

Framework for behavior driven development

SoapUI logo

Writes, runs, integrates, and automates API tests

Fitnesse logo

Web server and automated testing tool

Black, red, and yellow letters in the word TestNG

Testing framework for Java that covers many kinds of tests

cucumber logo

Automated acceptance tests written in behavior driven development

spring logo

Application framework and inversion of control container

Ruby logo

General purpose programming language

db unit logo

JUnit extension for database-driven projects

a robot logo

Write, code, build, build, and design Android UI tests

a green logo

Framework for Android unit testing

perfecto moble logo

Cloud platform for continuous delivery

Appium logo

Test automation framework

Docker logo

Performs virtualization at the operating system level

Maven logo

Build automation tool

Jenkins logo

Automates software development process with continuous integration

Protractor logo

Testing framework

J unit logo

Unit testing framework for Java

SE logo

Framework for testing web applications

JS logo

High level programming langauge

Java logo

Popular general-purpose computer programming language

jbehave logo

Framework for behavior driven development

SoapUI logo

Writes, runs, integrates, and automates API tests

Fitnesse logo

Web server and automated testing tool

Black, red, and yellow letters in the word TestNG

Testing framework for Java that covers many kinds of tests

cucumber logo

Automated acceptance tests written in behavior driven development

spring logo

Application framework and inversion of control container

Ruby logo

General purpose programming language

db unit logo

JUnit extension for database-driven projects

a robot logo

Write, code, build, build, and design Android UI tests

a green logo

Framework for Android unit testing

perfecto moble logo

Cloud platform for continuous delivery

Appium logo

Test automation framework

Docker logo

Performs virtualization at the operating system level

Maven logo

Build automation tool

Jenkins logo

Automates software development process with continuous integration

Protractor logo

Testing framework

J unit logo

Unit testing framework for Java

SE logo

Framework for testing web applications

JS logo

High level programming langauge

Java logo

Popular general-purpose computer programming language

jbehave logo

Framework for behavior driven development

SoapUI logo

Writes, runs, integrates, and automates API tests

Fitnesse logo

Web server and automated testing tool

Black, red, and yellow letters in the word TestNG

Testing framework for Java that covers many kinds of tests

cucumber logo

Automated acceptance tests written in behavior driven development

spring logo

Application framework and inversion of control container

Ruby logo

General purpose programming language

db unit logo

JUnit extension for database-driven projects

a robot logo

Write, code, build, build, and design Android UI tests

a green logo

Framework for Android unit testing

perfecto moble logo

Cloud platform for continuous delivery

Appium logo

Test automation framework

Engagement model

We prefer a hands-on approach in our engagements from day one. When starting with new clients to improve their testing process and tooling, our architects and engineers are embedded into their application development teams. Their work begins by investigating requirements and the project management process, the testing and release management process, application architecture and existing test suites.

After we understand the current situation in depth, we make point improvements to bring the most value with the least amount of work, and in the shortest period of time. Once we show value in some areas, we move to long-term improvements in process and tooling, adopt test driven development across the board, and educate client teams to spread knowledge and know-how within the organization.

Read more

Get in touch

We'd love to hear from you. Please provide us with your preferred contact method so we can be sure to reach you.

    Test driven development

    Thank you for getting in touch with Grid Dynamics!

    Your inquiry will be directed to the appropriate team and we will get back to you as soon as possible.

    check

    Something went wrong...

    There are possible difficulties with connection or other issues.
    Please try again after some time.

    Retry