You are on page 1of 48

Quality Assurance

Principles
Tahaluf Training Center 2022
1 Quality Control Introduction

2 Test objectives and necessities

3 Developer VS Tester

4 Quality assurance VS Quality control

5 Software Development Life Cycle (SDLC)

6 Software Development Life Cycle Model

7 QA Terms
Quality Control
Introduction
Quality software refers to software that satisfies specifications and expectations, is
produced on time and within budget limits, and is maintainable.

Software quality in the context of software engineering refers to both functional and
structural quality.
Software functional quality refers to how well a particular design is met, depending on
the functional specifications or requirements.

Software Structural Quality This relates to the handling of non-functional needs, such
as performance, security, or maintainability, that help achieve the functional
requirements, as well as the degree to which the software was created correctly.
Software that does not work correctly can lead to many
problems, including:

loss of money and Loss of business Injury or death


time reputation (Embedded system).
Software Testing
Software testing is a process that includes
many different activities. Execution is only
one of these activities. ≠
Test Execution
Test objectives and
necessities
Identifies faults to reduce live defect

Why is Testing Increase reliability

Necessary
To ensure live failures don’t impact costs & profitability

To ensure requirements plus legal requirements are met

Maintain the organization’s reputation


Finding
defects & failure

Evaluate work Preventing


product defects

Test Objectives

Share information
Reducing Risk
to stakeholder

build confidence
The Learning Hub Copyright
2022- All Right Reserved

Let’s Get Exercises


😃 Exercises
If the tester reviewed the requirements and found a contradiction
between two requirements, which objective of testing can be obtained
using this activity?

A. Building confidence

B. Compliance with laws

C. Preventing defects

10/4/2022
Component(unit) testing is a test level that focuses on individual
hardware or software components, and it always happens early in the
software lifecycle.

Depending on this definition, what testing objective can be obtained


using component testing?

A. Reduce risk
B. Give information to stakeholders
C. Compliance with laws

10/4/2022
Which of the following is Not an objective of software testing?

A. requirements fulfillment

B. building confidence in components

C. Preventing defects

D. reducing project duration

10/4/2022
If you are making sure that what you have built is the same as what the
client wants, which test objective is mostly met by this activity?

A. reducing risks

B. finding defects

C. requirements fulfilment

10/4/2022
Developer VS Tester
❑ The person who writes and maintains the source code of computer programs
used to create software is known as a software developer.

❑ Software developers assist with software maintenance and updates.

❑ In order to create software, the developer first develops each component


and plans how they will all work together.
❑ A software tester is someone who evaluates the accuracy, completeness,
and quality of created software.

❑ A software tester’s role is important since it makes sure that everything


produced and delivered is a bug - free, which assures the software's quality.

❑ He reduces maintenance expenses and offers increased functionality and


usage.
Developer Tester
It is responsible for creating It is responsible for evaluating
individual software. software.

Check to see if the code behaves as


write code to develop software.
expected.

The primary goal is to create The primary goal is to find bugs and
software that is free of bugs errors in software if present

Focus on client’ requirements while Focus on the behavior of end-user


developing software. while testing software.
Developer Tester
Should have a deep understanding of
Should have programming skills,
the system, good communication
proficiency in writing code, etc.
skills, critical thinking, etc.

They understand problems, improve They report a problem, help in saving


the quality of business, and reduce money and provide security and
costs. quality software.

provide suggestions to improve the find its root cause so that it can be
software. resolved permanently
Quality Assurance
VS
Quality Control
Quality Assurance

Quality Control
Quality Assurance (process-focused action)
a set of procedures to guarantee the quality of the software
engineering processes that, in the end, provide high-quality
software products.

Quality Control (product-focused action)


a collection of procedures used to make sure that software
products are of a high-quality level. Identifying the defects in
the actual products produced is the main goal of these
activities.
The Learning Hub Copyright
2022- All Right Reserved

Let’s Get Exercises


😃 Exercises
Quiz

Which of the following answers describe the difference between Quality


assurance(QA) and Quality control(QC)?

A. QA is focused on adherence to proper processes but QC is focused on


activities that support the achievements of quality levels of a certain
product

B. QA is focused on adherence to proper process but QC is focused on


activities that support the cost of the project and the budget available for
a certain release

C. QC is focused on development stage but QA is focused on production


stage

10/4/2022
Quiz

Who Is focused on the behavior of end-user while testing software?

A. Tester
B. Developer

10/4/2022
Quiz

Who Is primary goal is to create software that is free of bugs?

A. Tester
B. Developer

10/4/2022
Software Development
Life Cycle (SDLC)
➢ Software Development Life Cycle (SDLC) is the application of standard
business practices to building software applications.

➢ There are usually six to eight phases involved: planning, requirements,


design, build, document, test, deployment, and maintenance. Depending on
the size and complexity of the project, some project managers may combine,
divide, or eliminate steps.
Planning and
Requirements

Maintenance Design

SDLC
Implementation or
Deployment
coding

Testing
➢ Requirements gathering and planning

At this stage, the project conditions are evaluated, This includes estimating labor
and material costs, developing a schedule with specific deadlines, and defining
the scope and purpose of the application.
➢ Requirements gathering and planning

During this phase, all the relevant information is collected from the customer to
develop a product as per their expectation. Any ambiguities must be resolved in
this phase.
➢ Requirements gathering and planning

The business analyst and Project Manager set up a meeting with the customer
to gather all the information like what the customer wants to build, who will be
the end-user, and what is the purpose of the product. Before building a product
a core understanding or knowledge of the product is very important.
➢ Design

In this phase, the requirement gathered in the SRS document is used as input,
and the software architecture, User Interface, Platforms, Programming,
Communications, and Security that is used for implementing system
development is derived.
➢ Implementation or coding

Implementation/Coding starts once the developer gets the Design document.


The Software design is translated into source code. All the components of the
software are implemented in this phase
➢ Testing

Before making an application accessible to consumers, testing is essential.


Each function should be tested to make sure it operates properly. The testing
stage assists in decreasing the number of bugs and glitches users face. This
results in improved utilization rates and enhanced user satisfaction.
➢ Deployment

Once the product is tested, it is deployed in the production environment or first


UAT (User Acceptance testing) is done depending on the customer expectation.
➢ Maintenance

The software application is finished and in use in the market. However,


the Maintenance phase is still important. Users find bugs in this stage that
weren't detected during testing. These errors must be fixed, which may lead to
new development cycles.
The Learning Hub Copyright
2022- All Right Reserved

How To Implement The Basic Six


Phases For A Calculator
Application Discussion
1. Requirements gathering and planning

a) scientific or basic?

b) How many functions the calculator will have?

c) What are the features we are looking for


2. Design

Determines where the buttons will locate,


the operator order, …etc.
3. Implementation

Use an agreed programming language to


write calculator code
4. Testing

1. Check if the calculator is a normal calculator or a


scientific calculator.

2. Verify that all the buttons are present, and the text
written on them is readable.

3. Check the arithmetic operations are working fine- +, -,


/, * etc.
4. Testing

4. Verify that the calculator gives the correct result in case


of operations containing decimal numbers.

5. Verify the working of the ON-OFF button in the


calculator.

6. Verify that on pressing two operators one after the


other, the latest one will override the previous
operator.
4. Testing

7. Verify if the user can delete digits one by one using the
backspace key.

8. Check if the calculator is battery operated or works on


solar power. (hardware)

9. Verify the outer body material of the calculator.


(hardware)
5. Deployment

Once the product is tested, it is deployed in the


production environment, this is the final
product.
6. Maintenance

suppose that the Management decided that


they need a scientific calculator base on a new
need.

You might also like