Treselle systems services
Treselle systems services
Treselle systems services

Quality Assurance

Capabilities

Full cycle testing includes all aspects of functional, non-functional, unit, integration, performance and regression testing both manual and using open source automation tools and technologies such as Selenium, SOAPUI, Gatling, Supertest, Nightwatch, Cucumber, and custom programming as needed. Different testing strategies need to be applied for monolithic and microservice based architecture.

 

Testing for Layered or Monolithic architecture: V-model verification and validation process is involved that covers different testing mechanism at different stages as follows:

  1. Unit test plan to perform unit testing during detailed low level design phase
  2. Integration test plan to perform integration testing during high level design phase
  3. System test plan to perform system testing during functional specification phase
  4. Acceptance test plan to perform acceptance testing during requirement analysis phase
 

Testing for Microservice architecture:Pyramid model is more effective when testing microservices due to their decentralized nature that provides loose coupling and high cohesion. This model involves testing at different stages as follows:

  1. Unit testing is performed on different functions of a single service
  2. Contract testing is performed on each microservice independently treating it as a black box
  3. Integration testing is performed on multiple services that have to interact with each other to fulfil a functionality
  4. End to End service testing is performed on multiple services that includes all external interactions such as database and third party APIs
  5. UI/Functional testing is done on the whole system as an end user

Products and applications are being built using polyglot persistence that involves multiple SQL & NoSQL databases to solve a use case. Testing on such diversed persistence storage systems involve good knowledge of SQL to perform complex queries on RDBMS and database proprietary query languages for NoSQL. The following tools and query languages across different databases need to be mastered to perform high quality testing:

 

MySQL/Oracle/Postgres: Testing using complex SQL queries, validating stored procedures, triggeres, functions, and views, checking constraints and referential integrity, and verify database schema with the reference model for data types, data length, character set, etc..

 

NoSQL: MongoDB query language to verify JSON documents and collections, CQL for Cassandra, Cypher QL for Neo4j, OrientDB SQL to verify nodes and relationships in OrientDB, Lucene queries to verify documents in ElasticSearch, and others

 

Tools:Tools such as Compass, Metabase, Talend, Zeppelin, Jupyter, and programming languages like Python and Java are extremely useful while dealing with hybrid database systems

Big Data Testing is the most complex testing process due to huge volume of data flowing thru the system that are processed by multiple tools and technologies from ingestion to analytics. It’s very important to understand the source of the data, multiple transformation and filtering process it goes thru, identifying data lineage graph, different calculations and aggregations performed on the data, and have data sense towards outliers.

 

Tools and technologies such as Talend, Zeppelin, Jupyter, and decent query abilities on Hive and SparkSQL are necessary to perform testing on Big Data that should cover entire data pipeline as below:

 
  1. Big Data Infrastructure Testing
  2. Big Data Governance Testing
  3. Big Data Ingestion Testing
  4. Big Data Profile Testing
  5. Big Data Extract, Load & Transform (ELT) Testing

Continuous development, integration, and deployment with containers on cloud using Agile iterative principles is the proven combination for faster time to market. Testing different moving parts at a fast rate in less than 2-week sprint cycle needs different testing strategies on top of regular full cycle testing such as below:

 
  1. Test the infrastructure & network topology and validate against server operational documents
  2. Automate scripts using AWS CLI & SDK to check various attributes and operations such as network in/out, S3 Object TTL, EBS snapshots, AMI frequency, and auto scaling
  3. Test user authentication & authorization by accessing AWS services based on IAM users
  4. Download and test Docker container images on multiple OS across multiple deployment environments
  5. Run Docker console and verify multiple container links and interaction are working as expected
  6. Run builds using Jenkins and validate CI & CD are working as expected
  7. Test blue-green deployments for continuous deployment with near zero downtime
  8. Test feature flags to make sure same applications behave different for different user groups

RESULTS

LATEST THINKING

  • Database Performance Testing with Apache JMeter
    25
    Jul, 2017

    Database performance testing is used to identify performance issues before deploying database applications for end users. Database load testing is used to test the database applications for performance, reliability, and scalability using varying user load. The load testing involves simulating real-life user load for the target database applications and is used to determine the behavior of the database applications when multiple users hit the applications simultaneously. read more

  • Database Performance Testing with Apache JMeter
    25
    Jul, 2017

    Database performance testing is used to identify performance issues before deploying database applications for end users. Database load testing is used to test the database applications for performance, reliability, and scalability using varying user load. The load testing involves simulating real-life user load for the target database applications and is used to determine the behavior of the database applications when multiple users hit the applications simultaneously. read more

  • Distributed Load Testing using Apache JMeter
    27
    Jun, 2017

    Distributed load testing is a process of simulating very high work load of enormous number of users using multiple systems. As a single system cannot generate large number of threads (users), multiple systems are used for load testing. It helps to distribute the tests and the load. read more

  • Database Performance Testing with Apache JMeter
    25
    Jul, 2017

    Database performance testing is used to identify performance issues before deploying database applications for end users. Database load testing is used to test the database applications for performance, reliability, and scalability using varying user load. The load testing involves simulating real-life user load for the target database applications and is used to determine the behavior of the database applications when multiple users hit the applications simultaneously. read more

  • Distributed Load Testing using Apache JMeter
    27
    Jun, 2017

    Distributed load testing is a process of simulating very high work load of enormous number of users using multiple systems. As a single system cannot generate large number of threads (users), multiple systems are used for load testing. It helps to distribute the tests and the load. read more

  • Protractor with Cucumber
    27
    Jun, 2017

    Protractor, an end-to-end testing framework, supports Jasmine and is specifically built for AngularJS application. It is highly flexible with different Behavior-Driven Development (BDD) frameworks such as Cucumber. Cucumber, a BDD framework, is used for web applications for performing acceptance tests. It provides a higher-level view of testing process of the suite. read more

  • Database Performance Testing with Apache JMeter
    25
    Jul, 2017

    Database performance testing is used to identify performance issues before deploying database applications for end users. Database load testing is used to test the database applications for performance, reliability, and scalability using varying user load. The load testing involves simulating real-life user load for the target database applications and is used to determine the behavior of the database applications when multiple users hit the applications simultaneously. read more

  • Distributed Load Testing using Apache JMeter
    27
    Jun, 2017

    Distributed load testing is a process of simulating very high work load of enormous number of users using multiple systems. As a single system cannot generate large number of threads (users), multiple systems are used for load testing. It helps to distribute the tests and the load. read more

  • Protractor with Cucumber
    27
    Jun, 2017

    Protractor, an end-to-end testing framework, supports Jasmine and is specifically built for AngularJS application. It is highly flexible with different Behavior-Driven Development (BDD) frameworks such as Cucumber. Cucumber, a BDD framework, is used for web applications for performing acceptance tests. It provides a higher-level view of testing process of the suite. read more

TALK TO US

How can we help you accomplish your goals?