Quality Assurance

Automated or manual, we ensure an excellent result.

QA
For over 20 years Kanda Software utilized an Integrated Quality Assurance practice to ensure the highest quality of our deliverables. We have perfected QA strategy and methodology that blend seamlessly into the development lifecycle without crossing the important boundary between the development and software quality assurance processes.

Why Kanda Software QA?

  • Quality assurance in-depth testing will continuously uncover functional issues and discrepancies and minimize the cost of fixing bugs.
  • Our expertise in building detailed, exhaustive and realistic test plans as well as thoroughly following through with their execution will ensure efficiency, quality and value.
  • Our experience in building effective cooperation between quality assurance engineers, development team and the Client will allow achieving excellent quality for the initial version of the software and ensure high user acceptance.
  • Our software quality assurance services are available as a part of software development engagements or can be retained as stand-alone.

We offer full cycle quality assurance and application testing. Dedicated QA team will perform infrastructure analysis, develop a test plan, assess automation potential, and define and execute critical test cases.

Just like all Kanda services, Quality Assurance is flexible. We scale up when you need before the launch, and scale down when the project is in the maintenance phase – so we’re particularly cost effective.
We’re well versed in Rational and Mercury as well as leading open-source tools.

We can recommend the best solution or, if you prefer, effectively utilize yours.

Quality Assurance Phases

A typical quality assurance lifecycle at Kanda is divided into 4 general phases:
Initiation phase: Within this phase QA engineers become acquainted with product requirements and prepare test artifacts for future tests.
First review phase: The first detailed tests of the initial development deliverables are completed in this phase. Sometimes it is necessary to improve QA artifacts in this phase.
Cycle phase: This phase involves the daily routine testing of the intermediate product versions.
Control phase: Within this phase the product is extensively examined to ensure it is ready for production. The QA documentation describes, in detail, all workflows inside and between all the phases, required artifacts, roles and activities involved, and defines the required artifact templates.

QA Tools and Technologies

Kanda’s Quality Assurance team is well versed in a variety of tools and technologies, including:

Test Automation Tools

• Selenium
• WATIR
• HP (Mercury) QuickTest Professional; LoadRunner
• IBM (Rational) Functional Tester,; Performance Tester
• AutomatedQA
• TestComplete
• Jmeter
• Visual Studio Team Edition
• XLT (JAVA-based scripting)

Defect Tracking and Test Case Management tools

• Atlassian JIRA
• IBM Rational ClearQuest
• HP Quality Center
• Bugzilla
• Team Foundation Server (TFS)
• MS Excel

Quality Assurance Testing Methods:

testimonials

Unit Testing

Over 75% of Kanda’s projects that are in the development stage include built-in Unit Testing.  By incorporating Unit Testing into the programming process we ensure that much higher quality code reaches QA. This approach radically decreases the number of iterations necessary to reach production-level quality. Kanda most commonly uses JUnit and NUnit Unit Testing frameworks.  We also utilize dynamic mock object frameworks to create mock implementations of custom objects and verify their interactions using unit testing.

Initial Project Quality Assurance Review and Preparation

The main goal of this phase is to perform all preparation activities for further effective execution of the testing procedures. Activities during this phase include:

 Research:

  • Investigation of project functionality.
  • Existing processes review, tuning and cooperation process agreement. Set up of the efficient and customized testing process (determining the rules and means of communication, the format of interaction and reporting procedures between all teams, task assignments and control, etc.).
  • Test plan update and consensus. Kanda QA will commence work on the test plan to meet client’s needs based on information acquired during project analysis. This plan will include defining high-level test cases and timelines.
  • Thorough investigation of project functionality. Kanda’s QA Engineers will study in-depth functioning components of the system and investigate as many functional aspects as possible, interacting with Project manager as well as directly with client’s  personnel.
  • Reviewing/updating the already existing test cases. QA Engineer will review the existing test cases and update them to make sure they contain sufficient details to test functionality fully and can be used by the team for further project testing.
  • Environment setup. During this stage Kanda’s quality assurance team finalizes the logistics, hardware and software necessary to test application in an environment acceptable to the client.

Functional and UI Testing

Functional and User Interface testing is carried out by experienced QA engineers who verify that the system performs all functions and tasks the application was built for and works according to the client requirements and user expectations.

The process of the module execution will be coordinated by the QA Team Lead and performed according to the global project test plan updated during the initial module. QA engineer will work in close cooperation with development team during this phase adhering to the established QA processes.

The application functional and UI testing activities usually include:

  • Business logic check – conformity of a particular function in the application with the one described in the requirements.
  • Check integration of the Client’s legacy and third-party modules with custom developed components
  • Application screen/pages load check
  • Required content check
  • Control elements test (navigation, links, buttons, etc.)
  • GUI check – compliance with visual design standards established by in the specifications.

One of the key strengths of our experience and methodology is our ability to build an effective cooperation between Client’s teams and Kanda QA engineers to achieve excellent quality of functionality and to cover all UI, functional, and platform-specific deficiencies within a uniform and closely followed Test Plan.

Migration Testing

Migration Testing is necessary for software development projects where pre-existing data or content has to be migrated to a new schema or repository.

The main goal of this test cycle is to check that all documents will be migrated successfully and keep its architecture and metadata.

Migration Testing approaches include:

  • Divide all data/documents into several groups based on common properties (or equivalence classes). From each group several data examples will be selected as a representative sample and manually checked that data is migrated correctly.
  • In case sufficiently representative manual checking is not feasible Kanda will create a script-comparator. Script will read data and its properties from both old and new platform and compare it automatically.

Performance and Stress Testing

The main objective of performance testing is to check that the application’s response time is stable under load; that no crushes occur under live and above-live load; the system reliably supports simultaneous work of production number of users. Boundary system performance should be determined by stress testing.

Performance tests usually cover the most frequently used workflows. Performance metrics are established, measured with large set of data in the database.

During testing the following parameters of the system are monitored:

Application performance indicators:

  • Loading time of pages and how the loading time depends on the data size.
  • Number of (HTTP) webpage loading errors.

System parameters:

  • CPU usage of system servers
  • Operation of server disk subsystem
  • Network traffic from the load generator to test servers and between the system servers
  • Free RAM memory of the system servers.

If needed, detailed monitoring of the specific parameters can be performed.

Defects Verification

To assure the quality of the final software and ensure defect elimination Kanda QA team performs several cycles of defect-fix verification and regression testing. The frequency and duration of each cycle will be determined separately. QA team works closely with Project Manager and Development Team as well as Client’s stakeholders to ensure that all possible defects are recorded, tested, and verified/rejected rapidly to speed up the overall development and delivery cycles.

This service consists of:

  • Validating delivered defect fixes
  • Checking the areas surrounding the fixed defects in order to find any potential negative consequences of fixes (regressions)
  • Reviewing all pages to check if the pages load correctly, without re-checking all the page features again.

User Documentation Testing

If applicable, Kanda Software QA team can perform User Documentation Testing based on the Client’s related documentation. Within the bounds of documentation testing quality assurance specialists will check that:

  • All screenshots in the documents reflect actual application
  • The instructions in the documents describe workflows and use cases correctly
  • All modules are described in the user guides
  • The user guides are exhaustive and no contain no contradictions.

Defects and Test Cases Management

Formal and centralized defect management is a key factor for keeping a project under-control, especially near its completion. A unified defect tracking system gathers detailed descriptions of all defects found their severity from the user’s point of view and outlines the priority for their fixing. This leads to faster discovery of an acceptable product level and taking the lead in the market.

Kanda QA team has experience within many various defect management systems.  Using the right tools in a correct manner ensures streamlined communication and overall quality management of the project.