Software Quality Assurance in Action
Software Quality Assurance Planning
Planning is just planning, what is Software Quality Assurance planning different from others? You might ask. Apparently, Software Quality Assurance Planning is rather complicated than it might sound. The Software Quality Assurance Plan includes all the procedures, techniques, and tools that are used to certify the end products/software aligned with the software requirement specification.
The software Quality Assurance plan also determines the QA team’s responsibilities, the Software Quality Assurance work products, what work products are to be reviewed and audited, and the schedule to perform the Software Quality Assurance tasks. Each Software Quality Assurance plan document may be in different formats, however it generally covers the following sections:
Scope of works & Intention
Reference Documents
Software configuration management (Organization, Tasks, Roles & Responsibilities, Resources, Schedule, etc.)
Documentation
Standards, Practices, Conventions, and Metrics
Review & Audits (Technical Review, Management Review, Process Audits, Configuration Audits, etc.)
Test
Problem reporting and corrective action (Process Audit Report, P/CR, Software Tool Evaluation Report, etc.)
Tools, Technologies, and Methodologies
Code control
Records: Collection, maintenance, and retention
Risk Management
Developing a Software Quality Assurance plan document is vital to any software development project. There is no skipping or doing it halfway. It acts as a backbone, foundation, and structure for your project. Preventing overlapping tasks, excessive arguments on roles and responsibilities, etc. Outlining all the comprehensive rules and procedures to ensure the highest quality of the products. Helping the organization to effectively allocate testing and financial resources.
Software Quality Assurance Techniques
Various Software Quality Assurance techniques are adopted in Software development, here are a few worth mentioning:
Auditing
Involving the Software Quality Assurance professionals to inspect whether or not the work products and anything related to them follows the predefined standard processes.Reviewing
Examining the products by the internal and external stakeholders in a meeting to get approval and seek comments on the products.Code Inspection
Formal review concerning static testing to find bugs and avoid them escalating later on in the project. This inspection would not include the original product coders, mainly carried out by trained mediators/peers based on the established rules, checklists, etc.Design Inspection
This technique mainly goes over a checklist containing these design areas, such as general requirements and design, functional and Interface specifications, conventions, requirement traceability, structures and interfaces, logic, performance, error handling and recovery, testability, extensibility, coupling, and cohesion.Simulation
Integrating real-life conditions into a simulation model to examine the system behaviors virtually.Functional Testing
This is a behavioral testing technique where it focuses on a specific functionality without knowing about its structure or design or how it does it. It allows the software quality tester to be in the users’ shoes and think from the users’ point of view.Standardization
Making sure everything in the software follows the standards without being ambiguous and guess works.Static Analysis
An automated methodology debugs by examining the code without executing it. These automated tools shall scan all the code available to check for vulnerabilities and validate them at the same time.Walkthroughs
An informal process known as peer reviews is initiated by the developers to go through all the documents/codes with their peers, acknowledge the status of the code completed, and collect comments, queries, suggestions, etc. regarding the software for better development's sake.Path Testing
It is a structural testing technique, conducted to evaluate the code and the internal structure of such software. This often goes side by side with the black box testing or behavioral testing as mentioned above to sufficiently cover the maximum defects.Stress Testing
As the name suggests, this technique checks how the system might behave under heavy load /high demand conditions to test out the capacity of the software.The Six Sigma
A quality assurance approach strives to achieve 99.76% defect-free software. To go into detail about what six sigma is, we’ll save that for a later blog. Stay alert and watch out for the upcoming blogs!
There are far more Software Quality Assurance techniques than those listed above. Depending on the type of software, project size, and organization model, one may prefer to narrow down the techniques they favor over the others.
As technology evolves in the last decade and the overwhelming introduction of new advanced technologies & innovations, has triggered a change in customer behaviors., leading to significant shifts in seeking complex software testing. In response, Software Quality Assurance is undeniably an important factor in the software development life cycle, a reliable indicator of success in the market and exceeding customer expectations.
Nhận xét
Đăng nhận xét