You are on page 1of 11

Quality Assurance Testing Techniques

QA process

1. Review of requirements.
2. Test planning / writing test cases.
3. Unit testing.
4. Integration testing.
5. System testing.
6. Performance testing.
7. Security testing.
8. Cross-browser testing / cross-platform testing.

_____________________

A QA Testing Process As Integral To Your Software Project


Software development is more than creating solutions that run needed functions. For business, a
new software product is a way to change the operational status quo or make a leap in processes
optimization in order to ensure better business results. It requires writing high-quality code and
delivering a reliable solution that operates seamlessly and doesn’t have flaws.

Therefore, Quality Assurance and software testing are more than finding bugs in a “the-more-
the-better” mode. The QA team’s mission is to help web developers deliver the product of their
work within the estimated timeline, detecting any issues that might block the successful
operation of the software or even affect the user experience.

QA Process and Development Steps

Initially, QA helps design and control the development process in a way that prevents serious
issues during the project. To make this happen, QA engineers work on the project together with
other team members (product owner, project manager, business analyst, and dev lead)
throughout the complete software development cycle. The number and the order of QA activities
may vary from project to project, depending heavily on the scope of the work and the project
aims.

Development process

 Analysis of requirements
 Design
 Implementation
 Verification or testing
 Maintenance

Sensitivity: Internal
QA process

 Review of requirements
 Test planning / writing test cases
 Unit testing
 Integration testing
 System testing
 Performance testing
 Security testing
 Cross-browser testing / cross-platform testing
 Updating test cases
 Regression testing

Let’s have a deeper look at QA processes and how they are connected with the development
steps.

Step one: review requirements and documentation.

QA engineers start their work on the project in parallel with documentation generation. They
review the requirements and documentation for:

 completeness
 redundancies
 clarity
 consistency
 executability
 verifiability

Sensitivity: Internal
The aim is to analyze system architecture and technologies for discrepancies.

Key benefits for the development process:

 Errors cost less when detected at an early stage


 Improved documentation means a higher quality project for lower labor input and more
accurate estimates.

For this step, think about using specialized software for documentation review, like Confluence.
You can gather all related documentation which is used throughout the whole project, and
maintain an internal knowledge base. Every team member can see any changes as soon as any
requirements or documents are changed, added, updated, or deleted.

Step two: plan and prepare test cases

When the requirements have been established, it is time to start planning test cases, i.e. –
describe the actions QA engineers perform to make sure the piece of software functions as
planned. In case the volume of such cases turns to be really significant, you can also use special
tools like TestRail or Zephyr for writing test cases. Both pieces of software allow creation and
modification of tests, and track results using metrics.

Step three: design test cases

When the development stage is finished, the QA team starts running the test cases. The main
goal of this stage is to check whether the solution is developed properly from the technical
perspective and meets the initial product owner’s requirements.

Below are the main QA activities and their aims:

 Smoke testing comes first. QA engineers lightly check that the software, or its module,
functions as planned. When passed, the further investigation begins.
 Integration testing – verify that different components work as a single system.
 Performance testing that includes:

Load testing – check system behavior for normal and expected peak load

Stress testing – determine critical load after which the system breaks down

 Security testing – ensure the solution has a sufficient protection level.


 Cross-browser testing/cross-platform testing – check that the software works smoothly
on different browsers (Chrome, Mozilla, Safari) or platforms (Android, iOS, Windows
Phone). This is especially important for web and hybrid apps.
 Regression testing – detect bugs in the code that was tested previously. Usually needed
when adding new features or making any updates to an existing system.

Sensitivity: Internal
Again, you can choose to automate the testing (e.g., unit testing, regression testing). The general
rule: the longer a project lasts, the more it needs automated tests.

Step four: report and measure

When a QA engineer discovers a bug, he/she records it in a bug tracking system which is also a
project management system. For this purpose, you may use Jira or Redmine, both being highly
configurable software. They enable easy tracking of issues of any level, from a broken login
form to security problems, and all team members can see real-time task updates. This simplifies
communication inside the team and helps keep a clear overview of the improvement process.

Each issue gets a priority level from urgent to low, which the development team then resolves
based on time and people available.

Step five: verifying fixes

When a developer fixes an issue he/she informs the responsible QA engineers, who verify it. The
ticket in the bug tracking system is closed when no issue is detected. This rule applies: no bug
can be marked as fixed until it is verified.

Are there any tricks for how to boost the QA process?


All above-mentioned testing steps usually apply to Waterfall development methodology. Such
steps as Review of Requirements or Test planning/writing test cases are mostly used in complex,
long-term projects and/or sensitive industries like healthcare or logistics, where an error costs too
much compared to the time spent on documentation generation. However, very often delivery
time is crucial (e.g., when you are a startup). For projects limited by time and budget, it is better
to spend time on stabilizing and polishing the software product in favor of preparing the entire
documentation and scrupulous test planning.

When using an Agile approach (like in most of our cases), for the short-term web development
projects you can skip steps Review of requirements and Test planning; as on-time delivery of
valuable solutions is more important than perfect documentation. Consequently, QA engineers
can start testing immediately from step three using very simple tools like Google spreadsheet.

Also, some stages of the Development and QA processes can be performed simultaneously to
save time, for example: Analysis and Review of requirements, Implementation & Test planning,
or even Running different types of tests during development. In these parallel stages the testing
activities help measure the success of the corresponding development tasks.

Read more: https://kruschecompany.com/quality-assurance-in-projects/#ixzz6ZcCmSgII

https://kruschecompany.com/quality-assurance-in-projects/

Sensitivity: Internal
QA best practices
Below, we list the most efficient software QA practices you should follow to facilitate your
product quality assurance check.

Let’s find out what software QA best practices mean and what benefits you and your QA team
can get by following them.

#1 Set testing goals and requirements 


At the start of a software testing project, QA engineers should elicit the client’s expectations and
testing requirements. This involves clarifying the following:

The client’s expectations

Being aware of issues clients want to solve through testing and the criteria they use to assess the
success of testing allows QA engineers to arrange the testing process in accordance with clients’
needs. Moreover, clarifying requirements helps testing specialists estimate the resources required
for testing.

Sensitivity: Internal
Testing priorities

At this point, QA engineers need to get a specification for product functionality and a feature list
with prioritized features to be tested first. Also, QA engineers need to know who the primary
users of the product are and how they’ll use it. 

When investigating testing priorities, QA engineers inform clients of the types of testing that are
usually applied to a particular type of product and why so clients can decide on the types of
testing they want to apply to their own software project.

Reporting on results

The QA team needs to know what bugs to report, what information to include in reports, and
what format to use for reports. Also, the client and QA team need to discuss the conditions and
frequency of regression testing and retesting. 

Communication

A client and a QA team need to establish a meeting schedule and communication channels. The
client needs to specify who the QA team should contact in case they need to clarify something or
ask for more information regarding the project. Also, the QA team needs to know if the client
requires any non-standard reports such as test descriptions, test reports, or time reports.

Benefits for the QA team

One of the biggest advantages of setting testing goals and requirements is that the team can
assess the scope of tasks to perform and plan the testing process accordingly. 

Above all, eliciting testing expectations helps both the client and the QA team assess the ability
to attain the client’s goals with the help of testing. Thus, the client shouldn’t have false
expectations and is more likely to be pleased with the results at the end of the testing process.
Understanding a client’s goals and requirements allows QA engineers to deliver results the client
expects and will be satisfied with. This also helps the QA team build a good reputation.

Benefits for the client

A clear workflow for the QA team is beneficial for the client, as it helps them to be aware of the
full scope of testing tasks, the estimated cost of services, and the timeline for all QA activities.
When the due date for the testing process is clear, the client can plan the release date and build a
marketing campaign.

When testing requirements are clarified, clients can have realistic expectations regarding the
testing process. Thus, testing results are more likely to meet the client’s goals. 

#2 Establish a clear workflow

Sensitivity: Internal
A well-designed workflow is vital for a successful quality assurance check. Experienced teams
carry out testing in several stages. 

First of all, they create a test plan. A quality assurance team needs to create a plan that will guide
the testing process throughout development. In this plan, the team should specify the scope of
tasks for the project, the deadline for completing the testing process, and the price of services. 

The next step is to investigate all project requirements to check if they meet quality criteria and
correspond to the product’s business needs. To do this, testing engineers gather information on
the domain of the tested software. This allows them to understand specific requirements the
software product needs to meet. 

After that, the QA team moves to functional testing. During this stage, quality assurance
engineers test your product feature by feature to ensure that all functionality works as it’s
supposed to and according to specifications. 

To ensure product stability, testing engineers run automated test cases after product updates or
new features are implemented. This process is called regression testing. QA specialists use
regression testing to evaluate the impact of updates on existing functionality and make sure that
new builds don’t cause new bugs or system crashes. 

Another vital aspect of an efficient workflow is test reporting. A QA team should provide test
reports that include a summary of testing activities and final testing results after each testing
iteration. Regular test reporting aims to inform stakeholders of the current product quality, make
them aware of testing progress, and provide them with greater control over the quality assurance
process. 

Apart from having an established flow of tasks, a QA team needs to set a precise distribution of
roles and responsibilities. One of the most useful tools to distribute tasks efficiently between
team members is a RACI matrix. A RACI matrix assigns responsibilities for completing tasks
and checking others’ deliverables. It also indicates who needs to be consulted or informed about
project-related matters.

Benefits for the QA team

A well-developed workflow helps QA engineers know their responsibilities and boosts the
efficiency of the testing process.

By setting a specific workflow with an established scope for all testing tasks, QA teams can
reduce rework and delays that are common issues in both testing and development. 

Benefits for the client

A clear workflow for the QA team is beneficial for the client, as it helps them to be aware of the
full scope of testing tasks, the estimated cost of services, and the timeline for all QA activities. A

Sensitivity: Internal
clear workflow and regular reporting allows clients to establish transparent cooperation with a
QA team and makes the testing process even more productive.

Moreover, a streamlined workflow helps testing engineers cut down on the time required for
testing which, in turn, reduces the time to market and saves money. 

Want to outsource software testing tasks? Check out our guide on how to efficiently manage an
offshore QA team.

#3 Check compliance with industry standards


Different industries and jurisdictions have their own regulations and standards that businesses
should follow to secure their customers’ personal information. For instance, the General Data
Protection Regulation (GDPR) aims to secure the personal information of EU residents, the
Health Insurance Portability and Accountability Act (HIPAA) protects patients’ health
information in the US, and the Payment Card Industry Data Security Standard (PCI DSS)
protects customers’ payment card information globally. QA teams have to provide compliance
testing services to ensure that a product meets any and all requirements.

Benefits for the QA team

Performing compliance testing makes a QA team in-demand. Compliance testing requires skills
and knowledge that not every QA specialist has. Thus, if a QA team has the skills to perform
compliance testing, they’ll be attractive to clients.

Benefits for the client

Laws and regulations are too expensive to neglect. In the first quarter of 2020, European
supervisory authorities issued over 68 administrative fines for neglecting GDPR totaling
approximately €50 million. Compliance testing helps business owners make sure their software
products comply with the requirements of particular domains and avoid enormous fines. 

A compliance check helps to ensure that end users’ personal information is safe and sound and
that a security breach is unlikely.

In 2018, companies that violated HIPAA paid $28,683,400 in total penalties. Get a full HIPAA
compliance checklist for your software product and learn how to avoid tremendous fines.

#4 Combine automated and manual testing

Sensitivity: Internal
Each manual and automated testing approach has its own benefits and nuances. Manual testing
requires test engineers to run test cases manually to identify deviations from the expected
behavior of the tested software and report them to developers. 

When using the automated testing approach, tests are performed automatically with the help of
scripts and automation testing tools. 

The key to efficient software testing is combining manual and automated approaches rather than
choosing one or the other. 

Benefits for the QA team

Using both automated and manual testing speeds up the testing process and improves product
quality. 

Another advantage is that combining these approaches creates a team with a wide range of skills
and competencies. 

Benefits for the client

Manual and automated testing allow for checking different areas and functionalities of a software
product. Applying both of these approaches increases test coverage, which is one of the metrics
used to evaluate the success of the testing process. A successful quality assurance check should
have between 80% and 100% test coverage.

Automated testing involves creating autotests that can be reused in the future. This facilitates
code modification and support.

RubyGarage uses a combination of manual and automated testing along with other QA best
practices to provide exceptional quality assurance services. Learn more about the types of testing
we use.

#5 Implement risk-based testing


Risk-based testing is an approach that aims at identifying the most harmful risks during the
testing process. This approach involves assessing project risks, prioritizing them, and planning
the testing process according to the priority of these risks. This allows QA engineers to
concentrate on the most critical risks that may harm the product’s overall performance.

Benefits for the QA team

Implementing a risk-based testing approach at the early stages of software development helps to
simplify the code architecture and, therefore, makes the product easier to test. 

Sensitivity: Internal
When applying a risk-based approach, testing engineers concentrate on the issues most likely to
appear during product use. Thus, it helps to reduce the range of testing activities. 

Benefits for the client

When following a risk-based testing approach, a QA team tests those pieces of functionality that
are more prone to bugs. Thus, you can get a high-quality product even if you don’t have the
resources to check all product functionality. 

#6 Perform frequent regression testing


Another good quality assurance practice is conducting regression testing after updating a
software product. When performing regression testing, QA engineers run a selection of tests that
have been used earlier in the SDLC to check if the product works as it should. Regression testing
allows testing engineers to ensure that updates or new features don’t affect the core of the
software product.

Benefits for the QA team

Regression testing entails creating detailed documentation for running autotests. This
documentation includes system specifications, test designs, bug reports, operator results, and
other software-related information. This information can be used not only by testing engineers
but also by developers and stakeholders. 

Another key benefit of frequent regression testing is that it allows testing engineers to make sure
new product features don’t affect the stability of the core software in order to maintain product
quality at a high level. 

Benefits for the client

Updates may bring bugs to a software product. Regression testing helps QA engineers minimize
the number of bugs in a product.

QA engineers use automated tests to speed up quality assurance checks and simplify the software
update process. 

#7 Use shift left testing


One of the most crucial quality assurance best practices is shift left testing. This approach entails
starting the testing process early in the SDLC. This means the testing team is involved at earlier
phases of development than in traditional methods like waterfall, when testing activities begin
only after the development stage is over. 

Sensitivity: Internal
Identifying and eliminating bugs at the early stages of the SDLC is cheaper than at the final
stages, when product development is almost complete. According to IBM, discovering bugs after
release may be up to 30 times more expensive than discovering them in the design phase. 

Benefits for the QA team

This approach relies on closer cooperation between the QA team and the team of developers,
giving QA engineers the possibility to influence product development from the very start. 

Moreover, this approach facilitates covering a product with tests at the initial stages of the
development process, allowing testing engineers to identify bugs much earlier and improve the
quality of the software.

Benefits for the client

When starting test activities as early as possible, you need to ensure close cooperation between
your QA and development teams. Close and effective cooperation accelerates the development
process, reduces time to market, and lowers development costs.

https://rubygarage.org/blog/qa-best-practices

Sensitivity: Internal

You might also like