What is Quality?
The degree of conformance and
the degree excellence of given product/service to customer/stackholders'
requirements/specification/standards/expectation.
Quality is subjective and relative term to a set of requirements, specification, standards and expectation.
ISO 9000: "Degree to which a set of inherent characteristics fulfills requirements."
American Society for Quality: "A subjective term for which each person has his or her own definition. In technical usage, quality can have two meanings:
A. The characteristics of a product or service that bear on its ability to satisfy stated or implied needs;
B. A product or service free of deficiencies."
Philip B. Crosby: "Conformance to requirements."
Joseph M. Juran: "Fitness for use."; Fitness is defined by the customer.
Noriaki Kano: two-dimensional model of quality: "must-be quality" and "attractive quality."
In brief: Quality is always about customers' requirement and expectations.
Quality assurance (QA) is a set of activities intended
to establish confidence
that quality requirements will be met.
According to the British Standard 4778:
All planned and systematic actions
necessary to provide adequate confidence
that a product or service will satisfy given requirements for quality.
Quality Control (QC) is a set of activities intended
to ensure that quality requirements are actually being met.
According to the British Standard 4778:
The operational techniques and activities
that are used to fulfill requirements for quality.
Error (mistake) = > Fault (defect) => Failure
Failure, Fault and Error are known as defects (bugs).
Defect Detection = Debug
Defect Removal = Debugging
Error (mistake): missing or incorrect human action resulting in certain fault(s).
Fault (defect): an underlying condition within software that causes certain failure(s) to occur.
Failure: deviation from the user requirement or product specification.
Error (mistake) = > Fault (defect) => Failure
Failure, Fault and Error are known as defects (bugs).
Defect Detection = Debug
Defect Removal = Debugging
Validation is QA activity to check whether a function specified in a requirement is present in a software product.
Verification is QA activity to check the conformance of a software system to its specification to ensure the correct and reliable performance of the specified functions.
Testing is a systematic exploration of a component or system
with the main aim of finding and reporting defects;
to provide stakeholders with information about the quality of the product or service under test.
Testing is the process, not an activity.
with the main aim of finding and reporting defects;
to provide stakeholders with information about the quality of the product or service under test.
Testing is the process, not an activity.
IEEE: The process of analyzing a software application
to detect the differences between existing implementation and required conditions (requirements)
and to evaluate the features of the software item.
Testing is the part of QA, but not a part of QC.
Quality deviation-Measure/Correction/Audit is the part of QC, the QC itself is the part of QA.
Testing helps us to measure the quality.
Testing is often a process of managing risk.
Testing is often a process of managing risk.
Risk: A factor that could result in future negative consequences; usually expressed as impact
and likelihood. (ISTQB)
Smoke Testing: A quick-and-dirty test that
the major functions of a piece of software work
without bothering with finer details.
Originated in the hardware Testing practice of turning ON
a new piece of hardware for the first time and
considering it a success if it does not catch on fire.
Sanity Testing: Testing to determine if a new application version is performing
well (healthy) enough to accept it for a major testing effort.
If application is crashing for initial use then system is not stable enough for further testing and build or
application is assigned to fix.
application is assigned to fix.
This will include install and testing core functionality without much finer details and recording.
Black Box Testing: Testing without knowledge of the internal workings of the application being tested.
It is Testing perspective/methodology.
White Box Testing (also known as Glass Box Testing, Structural Testing): Testing based on an analysis of internal workings and structure of the application software.
Includes techniques such as Branch Testing and Path Testing.
Unit Testing: It is testing method by which individual units of source code are tested
to determine if they are fit for use. A unit is the smallest testable part of an application.
Compatibility Testing: Testing to ensure compatibility of an application
with different browsers, OSs, network, and hardware platforms.
to determine if they are fit for use. A unit is the smallest testable part of an application.
Compatibility Testing: Testing to ensure compatibility of an application
with different browsers, OSs, network, and hardware platforms.
Conformance Testing: Verifying implementation conformance
to industry, governing-body and/or regulatory standards.
Conformance Testing ensure to provide the portability, interoperability, and/or compatibility
as defined in standard.
Functional Testing: Validating an application conforms to its functional specifications and correctly
performs all its required functions.
This includes a series of tests which perform a feature by feature validation of the application's
function/behavior, using a wide range of normal and erroneous input data.
This can involve Testing of the product's user interface, APIs, database management, security, installation, networking, etc
Security Testing: Testing how well the application protects against unauthorized access.
Checked if application and its data are safe and secured.
There are two approaches: Penetration and Ethical Hacking.
Performance Testing: Performance Testing means benchmarking application's
scalability and reactivity (e.g. response time).
This is useful to identify performance bottlenecks in applications.
Performance Testing generally involves an automated test suite as this allows easy simulation of a variety of
normal, peak, and exceptional load conditions.
Load Testing: It’s a performance testing to check system behavior under load.
Testing an application under heavy loads, such as testing of a web site under a range of loads to determine at what point the system’s response time degrades or fails.
Stress Testing: Testing conducted to evaluate the application
at or beyond the limits of its specification,
to check how and when it fails.
A graceful degradation under load leading to non-catastrophic failure is the desired result.
e.g.:
employing a very high level of simulated load,
simulating high number of users,
loading exceeded amount/size of data
Regression Testing: Testing when a test or group of tests performed on new version of the application,
to ensure the key and the related modules/parts of the application are functioning as required and consistent,
also to identify that no new defects are introduced related the last change made to the application.
Good candidate for the automation.
Recovery Testing: Testing how well a system recovers from crashes, hardware failures, or other catastrophic problems.
Integration Testing: Testing in which modules/sub-parts are combined and tested as a group.
Modules are typically code modules, individual applications, client and server applications on a network, etc.
Integration Testing follows unit Testing and precedes system Testing.
System Testing: Testing conducted on a complete, integrated application environment
(this integrated application environment is what known as system)
to evaluate the application and the system's compliance with their specified requirements.
System Testing falls within the scope of black box Testing, and as such, should require no knowledge of the inner design of the code or logic.
End-to-End Testing: Similar to system testing,
involves testing of a complete application environment in a situation that mimics real-world use,
such as interacting with a database, using network communications, or interacting with other hardware, applications, or systems if appropriate.
Alpha Testing: In-house virtual user environment similar to targeted production environment,
excluding core development/QA members can be created for this type of testing to simulate the production
run.
run.
Testing is done at the end of development. Still minor design changes may be made as a result of such testing.
Beta Testing: Testing typically done by end-users and generally external members not directly involed in the
application project.
application project.
Final testing before releasing application for commercial purpose, for the product application.
User Acceptance Testing: Testing to verify a product meets specified requirements.
A user/customer usually does this type of Testing before releasing the application to the Production
environment.
environment.
The final Testing.
No comments:
Post a Comment