QA Principles
QA Principles
Principles
Tahaluf Training Center 2022
1 Quality Control Introduction
3 Developer VS Tester
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:
Necessary
To ensure live failures don’t impact costs & profitability
Test Objectives
Share information
Reducing Risk
to stakeholder
build confidence
The Learning Hub Copyright
2022- All Right Reserved
A. Building confidence
C. Preventing defects
10/6/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.
A. Reduce risk
B. Give information to stakeholders
C. Compliance with laws
10/6/2022
Which of the following is Not an objective of software testing?
A. requirements fulfillment
C. Preventing defects
10/6/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/6/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.
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
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.
10/6/2022
Quiz
A. Tester
B. Developer
10/6/2022
Quiz
A. Tester
B. Developer
10/6/2022
Software Development
Life Cycle (SDLC)
➢ Software Development Life Cycle (SDLC) is the application of standard
business practices to building software applications.
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
a) scientific or basic?
2. Verify that all the buttons are present, and the text
written on them is readable.
7. Verify if the user can delete digits one by one using the
backspace key.
a) D, B, C, A, E and F
b) B, D, C, A, F and E
c) B, C, A, E, D and F
d) B, C, D, A, E and F
10/6/2022
Quiz
The first step in the systems development life cycle (SDLC) is:
A. Analysis.
B. Design.
C. Planning
D. Development and Documentation.
10/6/2022
Quiz
Enhancements, upgrades, and bug fixes are done during the ____________ step
in the SDLC.
10/6/2022
Quiz
10/6/2022
Software Development
Life Cycle Model
A software life cycle model is a descriptive representation of the software
development cycle. SDLC models might have a different approach, but the basic
phases and activity remain the same for all the models.
Software Development Life Cycle (SDLC) Model:
Waterfall Iterative
V Model Spiral Model
model Model
Incremental
Agile Model
Model
The waterfall model is a Sequential development model that presents the software
development process as linear, sequential process steps. This implies that the
beginning of every phase in the development process should occur after the
conclusion of the phase before it. Although there shouldn't be any overlap between
phases in principle, in practice it might be helpful to have early input from the phase
that comes after.
The Agile model is the combination of iterative and incremental process models.
The requirements are broken down into several small pieces in the Agile approach so
they may be produced incrementally. Iterative development is an aspect of the Agile
approach. Iterations are used to construct each incremental component. Each
iteration should only take a few weeks to complete and be minimal and simple to
manage.
Agile Modal
The Learning Hub Copyright
2022- All Right Reserved
A. Prototype model
B. Linear sequential model
C. Iterative Model
D. None of the mentioned above
10/6/2022
The iterative Model should be used when,
10/6/2022
____ begins after successful testing of the developed system in
waterfall model.
A. System Design
B. Requirement Analysis
C. Deployment
D. None of the mentioned above
10/6/2022
The waterfall model is suitable for small projects with clear
requirement
A. True
B. False
10/6/2022
With reference to the waterfall model, each phase must be completed
before the ___ can begin and there is no overlapping in the phases.
A. Previous phase
B. Next phase
C. Both A and B
D. None of the mentioned above
10/6/2022
An iterative life cycle model does not attempt to start with a full
specification of requirements.
A. True
B. False
10/6/2022
In waterfall model, output of one phase is input to next phase.
A. True
B. False
10/6/2022
1 Static Testing VS Dynamic Testing
4 White-Box Testing
5 Black-Box Testing
System Testing
Dynamic Testing
Functional Testing
Integration Testing
Testing
Performance Testing
Review
Static Testing Security Testing
Non-Functional
Static Analysis
Testing
Usability Testing
Compatibility
Testing
Testing
Static Dynamic
Testing Testing
Let’s break down the basic definition of Software testing into the
following parts:
Static
Review
Analysis
Both types of static testing(Reviews & static analysis) assess the code
or other work product being tested without actually executing the
code or work product being tested.
Static testing includes:
A. Static Testing
B. Dynamic Testing
10/6/2022
If a developer runs his code and finds a defect in it, this is called............
A. Static Testing
B. Dynamic Testing
10/6/2022
Which of the following is a correct definition of a review?
10/6/2022
Which of the following is correct?
10/6/2022
Dynamic Testing Type
Dynamic
Testing
Black-Box White-Box
Testing Testing
Dynamic testing includes:
Input Output
Dynamic testing includes:
Input Output
White-Box Testing
Input White-Box Testing Output
White-Box Testing
White-Box
Testing
Data/Control
flow testing
Data/Control flow testing:
This testing is concentrated on the points in the source code that initializes and
utilizes variables also used to determine whether an execution path is broken, and
data is not passing to the next component. Additionally, it assists in detecting
dead code that the application cannot reach, as well as infinite loops where the
program keeps running.
Black-Box Testing
Input Output
Black-Box Testing
Black-Box
Testing
Non-
Functional
Functional
Testing
Testing
Functional Testing:
Functional testing makes that the software is prepared with all the required
functionalities that are listed in the functional requirements. Additionally, it looks
at whether the actual output for a given input matches the expected output. This
kind of testing entails assessing and comparing each software function with
business requirements.
Non-Functional Testing:
Non-functional testing is the process of evaluating an application based on factors
other than its functionality, such as its performance, compatibility, usability,
reliability, memory utilization, etc. This kind of testing saves money since it allows
for the early identification of system hazards related to performance, memory,
and multiple user logins.
Functional
Testing
Integration Testing: Integration testing is carried out when many pieces of code
are combined to perform a larger function.
System Testing: After all the modules have been merged, system testing is an end-
to-end evaluation. It is used to verify that the system operates in accordance with
the specifications. Once the system is ready in its entirety, this testing is
performed.
Acceptance Testing: This is performed to see if the system satisfies all business
needs and is prepared for end users to utilize.
Non-
Functional
Testing
Usability Testing: usability testing that focuses on the user experience. These are
some of the questions that we attempt to respond to such as: How user-friendly
is the application? How satisfying was your experience using the system? How
simple is it to learn if it's not familiar?
Quiz
10/6/2022
Quiz
10/6/2022
Quiz
10/6/2022
Quiz
10/6/2022
Quiz
10/6/2022
References
1. Complete Guide to Test Automation Arnon Axelrod 2018.
2. https://martinfowler.com/articles/is-tdd-dead/
Overview of Database
3. https://seleniumhq.wordpress.com/2017/08/09/firefox-55-and-selenium-ide/