SQE Notes
SQE Notes
Software:
Refers to a collection of data or instructions
that guide a computer's operations.
It's a compilation of data, programs, or
instructions to execute specific computer tasks.
Quality:
Represents the level of excellence or the
general standard of something.
Engineering:
A field in science and technology, focusing on
the design, construction, and utilization of
engines, machines, and structures.
Assurance:
Indicates a level of certainty or confidence in
something or one's capabilities.
Provides a guarantee that a product or service
will function as expected.
Quality Assurance (QA):
A systematic approach to ensuring that
products adhere to predefined requirements
and standards.
Emphasizes improving the processes to ensure
top-notch products for the customer.
QA is a proactive process, concentrating on
preventing defects by focusing on the process
of product creation. It's a tool for management.
All team members play a role in ensuring
quality.
Example of QA activity: Verification.
QA's Role:
QA aims to thwart quality issues via systematic
and documented activities.
It involves setting up a robust quality
management system and regularly evaluating
its effectiveness.
Quality Assurance Process (PDCA or Deming
cycle):
Plan: Set up the process objectives and
determine the necessary processes for a high-
quality outcome.
Do: Implement and test processes. Make
necessary adjustments.
Check: Monitor and adjust the processes to
ensure alignment with goals.
Act: Execute actions necessary for process
improvement.
The cyclical PDCA steps are consistently revisited
to ensure regular assessment and enhancement of
organizational processes. Using QA guarantees that
products are made with the right procedures,
leading to fewer issues in the end product.
Six Sigma
A quality management approach pioneered by
Motorola and later adopted by companies like
General Electric (GE) and Allied Signals.
Aims for a staggering 99.99966% accuracy,
allowing only 3.4 defects per million products.
Relies heavily on statistical evaluation and
enhancement.
CMMI
Renowned as the go-to model for tech
enterprises.
Conceived by the Software Engineering
Institute (SEI) at Carnegie Mellon University
with funding from the Department of Defense.
CMMI was introduced after the various CMM
models.
SEI ceased offering CMM after 2005.
CMMI Representations
Continuous
Staged
CMMI: Maturity Levels Overview
Level 1 - Initial: Here, the quality environment
is chaotic with an absence of documented or
followed processes.
Level 2 - Repeatable: Certain processes are
established and can be replicated. Ensures
adherence to processes at a project scope.
Level 3 - Defined: Processes are standardized
and documented organization-wide. These
processes are open to potential enhancements.
Level 4 - Managed: Emphasis is placed on
process metrics, ensuring effective process
adherence.
Level 5 - Optimizing: Focus shifts to perpetual
process improvements, driven by learning and
innovation.
Weighting Factors:
Serious (ws): 10
Moderate (wm): 3
Minor (wt): 1
Calculations:
Key Terms:
1.Failure: When your software doesn't work the
way it should. Like when your game crashes in
the middle of playing.
2.Fault: The actual mistake in the software
causing the failure. Think of it as a wrong wire
connection in a gadget that makes it
malfunction.
3.Time Interval between Failures: How long the
software works without crashing. More time
between crashes means it's more reliable.
Metrics (Or ways to measure reliability):
1.MTTF (Mean Time To Failure): Average time
the software works before it crashes.
2.MTTR (Mean Time To Repair): Average time
taken to fix the software after a crash.
3.MTBF (Mean Time Between Failure): Total
time between two crashes. It's the sum of MTTF
and MTTR.
Software Availability: It's like the uptime of a
website. If a website is available 99% of the time,
its availability is 99%.
Conclusion:
Just like we want cars that don't break down often,
we want software that doesn't crash frequently.
Reliable software provides a better experience for
users and saves money in the long run by reducing
the costs of fixes and customer complaints.
In Simple Terms:
The SQA Plan is like a checklist and guide for
making sure the software is of good quality. It
answers questions like: What rules should the
software follow? Who checks the software? When
and how do they check it? What documents are
created along the way?
In Simple Terms:
The SQA Group is like a team of quality-checkers
for software. Just like how a factory would have
inspectors to make sure products are made
correctly, this group checks that software works
well and doesn't have problems. Within the team,
there are different roles, from managers to junior
testers, each with its own set of responsibilities.
Week 4
Main Characteristics:
1.Functionality:
Measures if the software does what it's
supposed to.
Suitability: Does it offer the right
functions?
Accuracy: Does it give the correct
results?
Interoperability: Can it work with
other systems?
Security: Is it safe against
unauthorized access and attacks?
2.Reliability:
Gauges if the software performs reliably
without crashing or errors.
Maturity: Is it mature enough to avoid
frequent crashes?
Fault Tolerance: Can it handle faults
gracefully?
Recoverability: Can it recover quickly
after a failure?
3.Usability:
Checks how user-friendly the software is.
Understandability: Can users easily
grasp what the software does?
Learnability: Can users quickly learn
how to use it?
Operability: Is it easy to operate?
Attractiveness: Is it pleasing to use?
4.Efficiency:
Assesses if the software performs tasks
quickly and efficiently.
Time Behavior: How fast does it
respond?
Resource Utilization: Does it use
computer resources (like memory or
CPU) efficiently?
5.Maintainability:
Measures how easy it is to modify or
maintain the software.
Analyzability: Can you easily find and
understand issues or defects?
Changeability: Can you easily make
changes to it?
Stability: Are changes likely to
introduce new problems?
Testability: Can you easily test it after
changes?
6.Portability:
Determines how easily the software can be
transferred to another environment.
Adaptability: Can you adjust it for
different environments?
Installability: How easy is it to install?
Coexistence: Can it run alongside other
software without issues?
Replaceability: Can it replace another
software in its environment?