Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

GCSW Class 2

Download as pdf or txt
Download as pdf or txt
You are on page 1of 34

Quality Assurance

Axel Christian Santos Bloomfield


Agenda

1. Homework revision

2. WTF is Quality Testing?

3. Let’s have some fun!

4. Best Practices

5. Testing Life Cycle


Homework revision
• What do you expect from these classes?
• What do you expect from me?
• Research about 3 important events throughout history that were
catastrophic due to lack of QA.
WTF is Quality Testing?
Quality Testing
● It’s in human nature to make errors and that’s why any developer working on a
large piece of work will make errors along the way. From the beginning of
computer programming, developers have been writing massive amounts of code
to deliver a very specific function to meet requirements.
● Ultimately errors will occur, bugs can and will slip into the code, and as a result
defects may appear in the software delivered to the end user.
What do Quality Testers do?
● Developers deal in ‘how’, to meet the requirements and how to deliver a
solution in the most efficient and productive way possible.
● Testers deal in ‘what’ and ‘why’. What does the system do? Why does it
do it in a particular way? What happens if I do this instead of that? Why
does it accept only these particular values? Testers have a different way
of thinking, different methodologies and different approaches to systems
than other technical staff.
What do Quality Testers do?
* Developers operate at project level and perform their daily work at a
machine level.

* Testers can be seen as the interface between the end user and the project
team and bring knowledge and a general overview of the functionality of the
delivered product. Also can deliver additional information to both the end-
user/customer and development team to bridge any gaps in their
knowledge.
WTF?
What is Quality?
Quality is extremely hard to define, and it is simply stated: “Fit for use
or purpose.” It is all about meeting the needs and expectations of
customers with respect to functionality, design, reliability, durability, &
price of the product.

What is Assurance?
Assurance is nothing but a positive declaration on a product or
service, which gives confidence. It is certainty of a product or a
service, which it will work well. It provides a guarantee that the
product will work without any problems as per the expectations or
requirements.
What is Quality Assurance in SW Testing?
● Defined as a procedure to ensure the quality of software products or
services provided to the customers by an organization. Quality
assurance focuses on improving the software development
process and making it efficient and effective as per the quality
standards defined for software products. Quality Assurance is
popularly known as QA Testing.
Quality Assurance: Complete Process
Quality Assurance methodology has a defined cycle called PDCA cycle
or Deming cycle. The phases of this cycle are:
Software Quality Control
● It is a Software Engineering process used to ensure quality in a product
or a service. It does not deal with the processes used to create a
product; rather it examines the quality of the “end products” and the final
outcome.
Difference between QA & QC
● Sometimes, QC is confused with the QA. Quality control is to examine
the product or service and check for the result. Quality Assurance in
Software Engineering is to examine the processes and make changes
to the processes which led to the end-product.
Let’s have some fun!
Let’s have some fun
● Go to
https://userinyerface.com/
and let’s have some fun.
Finish it in 10 min.
Best Practices
Best Practices
1. Test one thing at a time: tests should have clear objectives. Each test
should focus on a feature or look at things like user interface or security.

2. Understand the types of testing on offer: there are lots of different types
of tests - from load testing to user acceptance testing (UAT) - so make sure
you understand the differences and how to use them.

3. Use regression tests: testing a main feature once isn’t enough. New
additions to the code repository can interfere with features that previously
passed tests.

4. Report and track bugs: determine how bugs will be reported and what
kind of data is needed. Will you use an open-source bug tracking tool, or build
one that’s specifically suited to your workflow?
Best Practices
5. Leverage analytics: decide which QA metrics to track. Keep records of every test
conducted and use this data to determine where bugs are likely to occur. This data
will help you to develop new tests that address problem areas.

6. Choose the right environment for tests: try covering a wide range of scenarios,
including different devices, OS and user profiles.

7. Use unit and integration tests: unit testing will isolate each component of your
app, while integration tests will assess how well each subsystem works. Run unit
tests in parallel to save time, but don't move onto integration tests until you have
ensured that individual components work like they should.

8. Don’t neglect the UI: use functional tests performed by human testers to perform
end-to-end scenarios and get a feel for the UI of the app. It might be best to wait until
you have fixed issues detected during unit and integration tests.
Testing Life Cycle
Testing Life Cycle
Requirement Analysis

During this phase, test team studies the requirements from a


testing point of view to identify the testable requirements.

The QA team may interact with various stakeholders (Client,


Business Analyst, Technical Leads, System Architects etc) to
understand the requirements in detail.

Requirements could be either Functional (defining what the


software must do) or Non Functional (defining system
performance /security availability)
Test Planning

Typically, in this stage, a Senior QA manager will determine effort and


cost estimates for the project and would prepare and finalize the Test
Plan. In this phase, Test Strategy is also determined.
Test Planning
Activities Preparation of test plan/strategy document for various types
of testing

● Test tool selection


● Test effort estimation
● Resource planning and determining roles and responsibilities.
● Training requirement

Deliverables

● Test plan /strategy document.


● Effort estimation document.
Test Case Development
This phase involves the creation, verification and rework of test cases &
test scripts. Test Data, is identified/created and is reviewed and then
reworked as well.
Test Case Development
Activities

● Create test cases, automation scripts (if applicable)


● Review and baseline test cases and scripts
● Create test data (If Test Environment is available)

Deliverables

● Test cases/scripts
● Test data
Environment Setup
Test environment decides the software and hardware conditions under
which a work product is tested. Test environment set-up is one of the
critical aspects of testing process and can be done in parallel with Test
Case Development Stage. Test team may not be involved in this
activity if the customer/development team provides the test
environment in which case the test team is required to do a readiness
check (smoke testing) of the given environment.
Environment Setup
Activities

● Understand the required architecture, environment set-up and


prepare hardware and software requirement list for the Test
Environment.
● Setup test Environment and test data
● Perform smoke test on the build

Deliverables

● Environment ready with test data set up


● Smoke Test Results.
Test Case Execution
● During this phase, the testers will carry out the testing based on the
test plans and the test cases prepared. Bugs will be reported back to
the development team for correction and retesting will be
performed.
Test Case Execution
Activities

● Execute tests as per plan


● Document test results, and log defects for failed cases
● Map defects to test cases in RTM
● Retest the Defect fixes
● Track the defects to closure

Deliverables

● Completed RTM with the execution status


● Test cases updated with results
● Defect reports
RTM
● Requirement Traceability Matrix (RTM) is a document that maps
and traces user requirement with test cases. It captures all
requirements proposed by the client and requirement traceability in
a single document, delivered at the conclusion of the Software
development life cycle. The main purpose of Requirement
Traceability Matrix is to validate that all requirements are checked
via test cases such that no functionality is unchecked during Software
testing.
Test Cycle closure
● Testing team will meet, discuss and analyze testing artifacts to identify
strategies that have to be implemented in the future, taking lessons
from the current test cycle. The idea is to remove the process
bottlenecks for future test cycles and share best practices for any
similar projects in the future.
Test Cycle Closure
Activities

● Evaluate cycle completion criteria based on Time, Test coverage, Cost,


Software, Critical Business Objectives, Quality
● Prepare test metrics based on the above parameters.
● Document the learning out of the project
● Prepare Test closure report
● Qualitative and quantitative reporting of quality of the work product to the
customer.
● Test result analysis to find out the defect distribution by type and severity.

Deliverables

● Test Closure report


Test Levels
A level of software testing is a process where every unit or component of a
software/system is tested. The main goal of system testing is to evaluate the
system's compliance with the specified needs.
Testing Types
Questions?

You might also like