IT quality assurance (QA) encompasses not only software testing but also other activities that ensure the overall quality of IT systems, including requirements analysis, process improvement, and various testing types such as system testing, integration testing, and user acceptance testing.
QA aims to prevent defects and improve the development and testing processes to deliver high-quality software or IT solutions.
IT security testing frameworks on this post.
Penetration testing methodologies on this post.
Service validation involves testing the functionality of a service.
Fagan Inspection
Fagan inspection is a process of trying to find defects in documents (such as source code or formal specifications) during various phases of the software development process. It is named after Michael Fagan.
Fagan inspection can also be applied to software.
IT Benchmarking
You can read this post about IT benchmarking.
Benchmarking is a technique to test the performance of a system or component.
Synthetic benchmark tests the maximum capacity of a component by applying artificially. Some synthetic benchmark tools are Dhrystone and Whetstone.
Hardware Quality Assurance
This section is specific about quality assurance on hardware.
Software Quality Assurance
This section is specific about quality assurance on software.
Software Quality Standards
Software quality standards featured on this post:
- ISO 33000
ISO/IEC 33000
ISO/IEC 33xxx is a family standard on process quality. It may include software development process quality.
Software Quality Models
Software quality models:
- McCall
McCall Quality Model
McCall’s quality model is a software quality model that highlights software quality factors that reflect both the views of users and developers’ interests.
McCall’s quality model factors of production quality:
- Product Operation
- Product Revision
- Product Transition
Testing Methods
- Unit testing
- Integration testing
- Regression testing
- System testing
- Orthogonal array testing
- Pattern testing
- Matrix testing
Unit testing focuses on modules or smaller sections of code for testing.
Integration testing is used to validate how software modules work together.
Regression testing is performed after developers make changes to an application. It reruns a number of test cases and compares the results to baseline.
System testing is done on a complete integrated product.
Orthogonal array testing is a method for generating tests based on statistical analysis.
Pattern testing uses records of past software bugs to inform the analysis.
Matrix testing develops a matrix of all possible inputs and outputs to inform the test plan.
Fagan inspection can also be applied to software.
Types of Software Testing
- Static (SAST)
- Dynamic (DAST)
- Fuzzing
- Interactive (IAST)
- Software Composition Analysis (SCA)
- Use case
- Misuse case / Abuse case testing
OWASP has an Abuse Case Cheat Sheet.
Software Testing Approaches
Shift-left testing approach involves increasing testing in early SDLC stages, compared to the traditional way where most of the testing effort is left to the final statges.
Software Testing Frameworks
You can read about software testing frameworks on this post.
These solutions are general-purpose test software. For security-aimed source code test tools, you can read more about IT security testing frameworks on this post and Application Security Testing (AST) on this post.
User Experience Assurance
A/B testing, bucket testing, split-run or split testing involves comparing two software products and verify which once offers a better user experience.
You might also be interested in…
External References
- McCall’s quality model
- Geeks; “McCall’s quality model“; Geeks