08 May 2019

QA Process: A compact guide – Steps, STLC and Agile QA process

 
QA process


Defining quality has never been an easy task. You can simply take it as perfect for use or serving your purpose. However, it plays a huge role when it comes to meet the expectation level of your customer.

In this era of tough competition,  it is quite important to maintain a supremacy in terms of quality. This will help you to drag more customers and award your business with remarkable revenue.

To ensure the quality of your product or service, you must adopt a high quality QA process in your organization.

Here, we have come up with a compact guide that helps you to understand the QA process. Let us check out how it works. In the following article, we will come across the following points:

  • QA process
  • Test planning
  • Software Testing Life Cycle
  • QA Process In Agile
  • QA Process Improvement

What is QA Process?

It is a methodical process by which the functionality of the product is determined in terms of certain specific requirements and criteria.

source

⮚  Test planning/writing test cases

A written test case includes all the detailed information on the inputs and responses of the working of the product, to determine the surety of the features of the product.

⮚     Unit testing

This phase of QA process is basically done for the small level of requirements regarding the products classes, interfaces, and applications used in it, to determine that the product is fit for supply.

⮚     Integration Testing

It helps in testing the different components of the system including all the attachments of the products including the key interfaces inside the products.

⮚     System Testing

This phase involves the risk-based or specific requirement based testing for the whole system of the final product to be delivered and the next level of developments are decided later on the basis of the testing results.

⮚     Performance Testing

This non-functional testing process is used to determine the various aspects of the performance of the products depending upon the workload.

⮚     Security testing

This is a type of non-functional testing where the testing is done the ensure the security and login systems of the products.

⮚     Cross Browser Testing / Cross-Platform Testing

It is an important part of QA process assuring the quality of the product. The performance of the product is judged based on the number of platforms that it can survive and act as per the requirements in the market.

⮚     Updating Test Cases

It is very crucial and important to keep an update of the test cases. The test managers to improve the quality of the product often use them.

⮚     Regression Testing
In this type of testing process, the applications go under certain changes if an error or fault is detected. Its main purpose is to detect bug or defects in the product.

Test Planning in QA Process

Test Planning consists of all detailed information and a planned strategy of all the actions to be undertaken for verification and validation of a given product under test. Its main objective is to provide a fair view about the status of a new under process product to the stakeholders in the market. 

Starting from the top level of planning activities ensuring an effective testing process through monitoring the resources available for testing. 

Testing process

An efficient test plan is organized with a proper set up extensive tasks for carrying out the whole process in accordance with a specific target. Such a set of activities will be later used for successfully implementing and executing the test products.

 It lines up the report for giving closure to the test planning.

⮚     Scope
A test manager should be aware of the fine details about the product under test and the resources and tools incurred in the testing activities. The respective company in certain specialized cases might also feel the need to train the tester to avoid any glitches during the product testing. 

The test managers have a wide scope of growth as they are paid well for their concerned tasks. The tester must be hardworking, disciplined, organized, and have a clear picture of the whole test planning process to be conducted to achieve the targeted results.

⮚     Approach
The tactics that define the whole set of activities involved in defining a test planning process and the instruments use to reach the desired goal. It can be described as the techniques of test approach.  

An expert test manager reduces the possible risks of product failures in the company if the person is well trained, and experienced enough to operate the planned tools and techniques. 

An effective test approach can be widely described as a proactive means of a product and a reactive approach.

  • The initiative, which is conducted while the production process itself is under process is called the proactive test approaches. It plans at eliminating any possibility of error or fault after the completion of the product.
  • In a reactive phase of test planning approach, the designing, and coding activate are to be implemented before, followed by the testing models of the project.

⮚     Risk
Customer satisfaction through supply of quality goods has always been a crucial element in the development process of the company. A small glitch or error in a product existing in the market could have a drastic negative impact on the business conducts. 

Products need to be regulated with improvement in their quality for gaining customer satisfaction. Scenarios, where approaches are made on the basis of the uncertainty of the future, are often considered the risk for the organization as it could affect the user experience impacting the costs of production. 

test plan

source

Testing based on unseen risks is to ensure that business doesn’t get affected by identifying the existence of any inaccuracy in the product before supplying it in the market to complete the customer demands. 

⮚     Resources

Given the varied amount of resources in production, documenting the test plans depends up the efficient allocation of the given resources available to the test manager. It is his or her liability to analyze the new events and amend the issues. Computing the test team size and length should not come out as an obstacle in the project life cycle. It is essential to allocate the resource on the basis of the size of the project with a clear view of the objective and scope putting together the tasks to be performed in a given period of time.

⮚     Test preparation /strategies

The testing manager and the team should be able to maintain a tabulate involving the tools and methods for strategizing the production techniques of the organization. 

It is these strategies that force a testing team together for be able to determine on the accurate testing methods for a certain project with keep in track of the basis of the project and the objectives of the company. 

Test strategies are directed towards the effective utilization of the tools of project management considering the risks involved. The QA processes are then branched into various level for testing the quality of the products.

⮚     Test plan

The test teamwork strategies might be impacted by the development team working tools and strategies, which in turn might affect the features of the final products. 

Planning the test plans with an adequate set of strategies helps in identifying the reducing the risk factors in the case of risk-based testing. 

Test panning plans could be developed on the basis of specific product deficiencies like performances issues and features of the products.

⮚ Test design and scripts

Testing documents and scripts depend upon the size of the organization. Where in case of a large organization the documents are comparatively more details than the small-scale organizations. 

The objective and goals of the business are listed in the documents, which are generated by the top level of the test management team along with the senior group of stakeholders. 

The testing tools are designed based on the current project with the aim of creating new projects in the future.

⮚ Test execution

The test manager is highly responsible for test execution process after determining the test objectives. In this phase involves observing the progress of the plan and mapping the strategies alongside the test plans. 

Test plans are often conducted on the basis of the ideal test cases but for implementing a more aggressive performance the test manager can put together more testes and new tactics of observation while the execution phase takes place.

⮚ Defect management 

One of the most significant parts of the testing activities is to track the defects and faults for the development of the project by the testing team as well as the project development team. 

Such activates are highly important as it results in highlighting the area of improvements in development and testing.

⮚ Deployment

The deployment management process is the newly aggressively growing disciplines in the systems developments processes and distribution. 

The products are becoming more specialized through the ongoing testing and released with the removal of the errors that are detected by the support and the test team through developments processes.

 ⮚ Development process

Improvement and rectification of the current products are becoming necessary during the testing phase; hence it is relevant for the development process the testing and the development team altogether is efficient enough to detect the error in the project.

⮚ Analysis of requirements

In certain circumstances, the manager often fails to project the tools and equipment among the acting teams in the space available by neglecting the amount of workload because of poor planning strategies. 

The test manager should have the ability to deal in any situation that may arise with the best possible resources required for the project.

⮚ Design

This section aims at developing old products by introducing new ones in the market quickly with simple and easy design structures for making it a user-friendly product for the consumers.

⮚ Implementation

Now a day’s global competition is becoming more and more complicated hence it is very significant for the companies to produce the product with rapid changes in their performance and reliability.

source

⮚ Verification of testing

An essential process is to examine the final product. It is in this process that the test product is verified and declared appropriately designed as per the customers’ needs.

⮚ Maintenance

Developing a product is very important as well as its maintenance. There are a variety of aspects that have to be placed accordingly to maintain the quality of the product to ensure the development of an error-free product.

Software Testing Life Cycles Phases

Software Testing Life Cycle (STLC) is a testing process in which various activities are performed to improve the quality of the product. This testing cycle involves various steps such as:

  •      Requirement Analysis
  •      Planning Test
  •      Development of test case
  •      Environment setup
  •      Execution of test
  •      Test cycle closure

Each stage of testing has a defined set of Entry and Exit criteria along with activities and deliverables associated with it. Entry criteria define the prerequisite list of items that have to be completed before the test begins. 

Exit criteria are the list of items to be completed before the conclusion of the test. Practically meeting all the criteria is not feasible.

Software Testing Life Cycle

Requirement Analysis:

This is the first step in which the requirements are understood from the testing point of view. The testing team studies the requirements by interacting with stakeholders for details on the requirements. The requirements can be Functional (defines what or how the system must perform) or Non-functional (defines the performance of the system in terms of security, user experience).

Planning Test:

Test planning is the crucial stage of STLC as the strategies for testing are defined here. The testing manager estimates the effort and cost for the entire project. On complete documentation of test planning, the test case development activity begins.

Development of test case:

The testing team develops a detailed testing case in this phase. Even the test data is written down as a backup requirement for any tests. In this phase, the Requirement Traceability Matrix (RTM) is also prepared. It is an industry-accepted format where every test case is traced/ mapped with the requirements.

Environment setup:

This stage sets up the software and hardware conditions in which the product can be tested. An independent activity can be performed in parallel with the development of a test case.

Execution of the test:

Based on the test plan and test cases developed, the testers perform the test in this phase. Any bugs identified will be reported back to the development team for rectification and retest will be performed.

Test cycle closure:

On completion of the test, the test team will discuss and analyze the tested product for the development of strategies for future implementation. A detailed report will be prepared to help in removing process bottlenecks in the future STLC process.

QA Process In Agile

QA is introduced in the process of agile testing as soon as possible. This is done in order to know the issues, plan and execute the process of test cases, and to fix all the bugs in the application. 

The QA process removes all the gaps between the testers and developers of an application. This, in turn, helps in promoting a collaborative environment for working. 

When the developers and testers of software work in coordination, they are able to work in an efficient manner. The QA process guarantees excellence in products and services.

Basically, the QA process in agile consists of three components- iteration, life cycle, and scrum testing.

Let us learn about the three processes in detail.

What is the iteration in agile?

Agile iteration is a short period of seven to fourteen days. During this period, the developers analyze the demands of their customers and create a running application from the customer’s requirement.

source

During the process of iteration in agile in terms of testing, the analysis, scripting, designing, and testing of an application takes place. The iteration in agile consists of several steps.

Following the volleyball between the QA experts and Business experts, the testing of the story is done. The testers see whether the story fulfils the requirements of the end-users or not. In addition, the testers make sure that the story helps in developing and in bringing innovative changes in the product. 

The stories are prioritized based on their importance and helpfulness in the development of the product. The iteration in agile consists of several steps.

Planning of the story

The plan for conducting the iteration is designed in this phase. The planning for the next iteration is prior to the present one. In this process, the QA works with the analyst of business to get an idea about the story. This also helps in deciding the criteria for acceptance. 

The developers get a better idea of the requirements of the business. Also, the strategy for testing can be designed in an efficient manner when a proper study of the stories is done.

IPM or iteration planning meeting

The meeting held for planning for iteration helps in understanding the priorities of business in a better manner. The IPM helps in ensuring QA estimates and identifies the dependencies of the application. 

Also, the developers can raise the issues which will occur during the process of testing.

Kickoff of quality assurance for iteration

After the meeting has been held for planning the process of iteration, the quality assurance team must possess a kickoff for the process of iteration. Sometimes, analysts of business are invited to get a better understanding of the stories. 

During this phase, the potential problems are laid emphasis. The identification and settlement of data for test for all the stories are done. A matrix of status is created for the identification of priorities. 

The stories will be allotted to different members of the QA team.

Kickoff of story

After the signup for the story has been completed, there is the kickoff of the story with the developers, QA team, and the analyst of business. 

This phase involves understanding the needs of the users and the deliverables of the application based on the story. The discussion should be done in much detail in order to identify and share the scenarios of the test. 

Also, the inputs should be taken from the business experts to make sure that no scenario of the test is missed.

Preparation of data for test

The preparation of data for the test is done prior to the kickoff of the story. The QA begins to prepare and identify the data for the test, which will be needed to test the story in an effective manner. 

The data used for manual, developer testing and automated testing must be different in order to avoid issues related to data. 

The interpretation of the data should be done under the guidance of the QA team and the development team in order to ensure that the data of the test does not overlap.

Planning for the scenario of the test

The process of preparation of data for test and planning of the scenario of the test go parallel. The scenarios of the test to be used, whether automated or manual, should be mentioned in the tool for the management of the test case. 

When the writing work of the scenarios of the test is done, the scenarios can be studied and reviewed. The writing of the scenario should be done under the supervision of business experts and developers.

Automation of scenarios of test

The QA team identifies the scenarios of test which needs to be automated or which can be automated. The automation of the script can then be initiated. As the story is not yet complete, the automation of scenarios of the test might face some limitations. 

In some of the cases, several layers of framework and groundwork can build with the help of the incomplete story. 

The pieces, which are missing in the story, can be added by subjecting the tests to a developer surrounding. The scenarios of the tests should be productive. Also, any duplicated code should not be present in the test.

• Analysts of business

Once, the development of the story is done, volleyball amidst business experts and QA team members is held. The business experts and the QA experts test the story and state its criteria for acceptance based on the environment of the developer. 

The developer should resolve all the failures to the criteria for acceptance and then, the development is said to be completed.

• Testing the story

Following the volleyball between the QA experts and Business experts, the testing of the story is done. The testers see whether the story fulfils the requirements of the end-users or not. 

In addition, the testers make sure that the story helps in developing and in bringing innovative changes in the product. 

The stories are prioritized based on their importance and helpfulness in the development of the product.

The life cycle of Agile testing

The process of testing in agile initiates at the beginning of the project and continues until the product is delivered to its end-customers. 

The application is tested continuously during its life cycle. Before the activities of the testing start, it is necessary to understand the plan of release and the stories of the user. The owner of the product illustrates the stories, which are noted and analyzed by the developers. 

The stories are distributed based on their priorities and need in the market place.

source

Initially, a test plan is created. The test plan demonstrates the scope, approach of the test, and the exit and entry criteria for releasing the application. A test plan is mad for every release and the requirements, which are needed to be added after each release.

Once, the test plan has been created, sprint planning initiates. In this stage, the team discusses the dependencies, which will be involved in the process of testing. Also, the designing of the sprint is done with the allocation of work. The testers are allocated a part of the stories of the user for creating and executing the test case.

The cases for the test are created and assigned to different testers. The cases are reviewed after their creation to get inputs, which help, in coverage of the test in a better manner. Once, the creation and review of the test cases have been done, they are executed. During the process of execution, the testing must be implemented to dive deep into the process of testing.

After the testing has been conducted on the application and the bugs have been fixed, the application is ready to be presented to the owner of the product. A review of the product is made which includes all the deliverables of the product. It also specifies the features, which have not been added in the application due to some issues.

The product is tested by a few users for its acceptance testing. The beta testers test the design of the product. Finally, the product is made ready for its end-users to test the product. Lastly, the product is released in the market.

After the product releases, the team prepares itself for the upcoming release. The clarifications and issues, which will be raised by the customers, will be cleared.

What does it mean by scrum testing?

The creation of a complex application is a challenging task. Thus, scrum testing is used for the execution of the challenging task. Scrum testing lays emphasis on usability, performance, and quality of the application.

The following activities take place during scrum testing.

•    Sprint planning – in sprint planning, the tester picks up a story of the user from the backlog of product. The testing of the application is done based on the stories of the users.

•    Sprint – the users’ stories are tested and executed, the defects are evaluated and resolved. In the end, acceptance testing is done.

•    Retrospective of the sprint – the tester finds out what the defects in the sprint. He utilizes his best practices to fix the defects or bugs.

•    Reporting of the test – the overview of the test is prepared. Also, a review of the product is made. The review of the product talks about the specifications and features of the product.

QA Process Improvement 

5 Major Places to shift your focus right now

A growing company means more clients and more customers. The need for quality assurance also increases with it. As the company grows, it requires to continually maintain its reputation and name. The company needs to improve its QA process from time to time. 

Here are the 5 major places to shift your focus for QA Process Improvement.

QA Process iMPROVEMENT

 source

1. People and Culture

The people in a company and the culture in a company plays a major role in QA process. The employees working in a company are responsible for the improvement of the quality of a product or service. It is upon the QA team to create a quality culture in the company. 

It is important to look upon the basic’s of the company to improve QA process. Developing a “testing” nature in the people’s mind of the company will greatly improve quality assurance.  It is the job of the QA team to improve quality assurance, but fundamentally it falls upon the employees of the company as a whole for better results. QA is directly proportional to the employees’ growth. 

The executive leadership also needs to emphasize on “Quality” on a lot. They are required to form strategies and techniques through which the employee will take their words seriously.

A skill set of an employee is one such area where the proper focus can improve quality assurance. It is upon the employees’  skills to deliver a product or service which can average, good or best. For example, a company’s staple requirement for a software developer is C and C++ language. 

With the passage of time, new programming language Python, which is better, and faster than C and C++. Now the company requires to change its staple requirement and adding python to it. The present employees will need to learn Python, which takes us to another QA improvement process, i.e. test the training process. The company is required to train its employees and keep them updated with the latest happenings.

The structure, vision, and functions of the organization determine the culture of the company. If there is a scope of improvement in any of these three things, then it will greatly impact the QA. Testing the organization structure at some point in time after the inception of the company is necessary. The process of performance management enhances the scope of improvement in Quality Assurance.

2. Alignment to IT Methodologies

We live in the information technology age where most of the work is now done through computers. For development is quality assurance, a company is bound to adapt IT methodologies for working. The company must view IT methodologies to improve its business. 

The IT methodologies are intertwined with the company’s objectives, missions, and goals. Using IT methodologies in almost all the departments of the company like manufacturing, finance, and marketing increase the QA of the product or service.

IT techniques play an important role in change management. The IT methodologies help in predicting the changes required with accuracy, which leads to better results. Change Management in IT infrastructure is related to IT service management or ITSM. 

The main work of the ITSM is to oversee the changes occurring in a projector during the deploying of a project. This helps in the reduction of errors during the QA process, increasing the Quality assurance altogether.

The IT methodologies help in connecting with the customers. The customer service provided by the IT department of the company is responsible for recording a customer’s queries and complaint and resolving them. Resolving customer queries are the most direct way to improve the QA process.

IT methodology also plays an important role in demand management. The IT demand managers try to understand the requirement of the customer need, the future market rates, etc. These forecasting increases quality assurance because the company knows the requirement of the customer’s beforehand. 

The product or service, which will be created will be made according to the customer’s need.

3. Core processes of Quality Assurance in Software

Quality assurance is required in the fundamental areas of the company too. A Test Policy of the company lays down the goals that the organization wishes to achieve through its testing process. A change in the test policy is not an easy task because the fundamentals of testing are laid down in it. 

Bringing a positive change in the test policy will set a series of changes in the whole of the QA process. As this is a core process, the QA will definitely increase.

The Stage-gate process is a type of quality assurance process. Before a project is started, the project is divided into various phases. To enter the next phase, the project goes through a manager or review committee for approval. 

This ensures that the quality is maintained and that the project is going in the right direction.

Test traceability is the process of tracing the changes made in a test. For example when a feature or function of a test is required to be changed, then traceability helps keep a track on these changes. Another example is a set of tests were running perfectly in the past. 

Currently, it is facing some problem running. Traceability helps in identifying the changes, which were made. Traceability improves quality assurance by identifying the changes.

Test Metrics Management is another quality assurance method. In test metrics, it tells about the team’s test progress, the productivity of the team. Whenever a test is performed, the test metrics say about the quality of the project. It helps in taking the future decision for the project and rectifying the mistakes of the previous test. 

Test metrics let you know about the areas where tests are needed to be performed. Test Metric management is an essential tool for a QA team.

Configuration Management decides plainly about the things that make up the product or framework. These things incorporate source code, test contents, outsider programming, equipment, information, and both improvement and test documentation. 

It guarantees that these things are overseen cautiously, completely and mindfully amid the whole task and item life cycle. It is at times alluded to as IT robotization.

The CM procedure encourages deliberate administration of framework data and framework changes. It confirms that proposed changes are methodically considered to limit antagonistic impacts.

4. Test Prioritization

The expression “test prioritization” tells about the troublesome piece of testing that enables analyzers to oversee dangers, plan tests, consider costs, and be expository about which test to keep running with regards to the particular project.

Test estimation is the process, which can tell how long it will take to complete an activity. Estimation is one of the major tasks in Test Prioritization. With the help of Test estimation, you can estimate the cost of the task. 

Quality Assurance is greatly improved here now because you can tell the client how long it will take to complete the task and how much it would cost.

Test Planning – It is the process before a task is started. In test planning, the objectives, methods, timing and possible outcomes are laid down. This acts as a benchmark for the testers. The planned test can be compared with the end result for quality assurance.

5. Systems and Tools – There are many types of tools and software for testing available in the market.

Test management – Test Management normally means the action of dealing with the PC programming testing process. A test management tool programming is used to oversee tests (robotized or manual) that have been recently determined by a test system. It is regularly connected with mechanization programming. 

Test management regularly incorporates necessary and additional particular administration modules that permit programmed generation of the prerequisite test network (RTM), which is one of the principal measurements to show practical inclusion of a framework under test (SUT).

Test Execution – A test execution is a process where a test is first executed then the result is compared with the expected result. Amid test execution, the test manager should screen the advancement according to the test plan and whenever required he needs to take control activities as far as goal and technique. Prerequisites Traceability Matrix is utilized to decide advancement and inclusion.

Test manager has additionally to guarantee that there are very little false positives or false negatives (false positive happen when test expert denotes the test as fizzled when the conduct was right and false negatives happen when test examiner denotes the test as pass when the conduct was mistaken). 

He needs to control both these circumstances and endeavour to keep it in a satisfactory dimension. Test manager needs to likewise guarantee the test experts are logging results with vital information as test execution is going on. 

Test manager needs to guarantee that proper management is set up with the goal that the test group is clear against which version to log the test outcomes.

Recommended Reading:

QA Process
STLC
Test Planning

See other articles


Offshore Outsourcing: Your Way To Success


Software Testing Services Provider


Ecommerce Testing: How to Test an E-Commerce Website and Application