I will try to cover a complete course for fresh Software Testers/QA so that they can be a successful QA professionals.
Contents:
- Basics of Quality Assurance & Quality Control
· What is Quality
· What is Quality Assurance
· What is Quality Control
· Difference between QA & QC
· How Quality can be achieved
· Why Testing
· When to start Testing
· When to finish Testing
· SDLC
· Waterfall
· V Model
· Agile / SCRUM
- Reviews(Inspection and walkthrough)
- Test Methods
- Testing Levels
- Test Process
· Software Testing Life Cycle
· Bug Life Cycle
· Bug Priority and Severity
· Test Plan
· Test Estimation
· Test Strategy
· Test Approach
· Test Case Development
· Test Case Design Techniques
· Test Coverage
- Test Execution
- Test Status Reporting
What is Quality
According to IEEE Quality is
- The degree to which a system, component, or process meets specified requirements
- The degree to which a system, component, or process meets customer or user needs or expectations.
According to ISO Quality is
- The totality of characteristics of an entity that bear on its ability to satisfy stated and implied needs
What is Software Quality
According to Roger Pressman Software Quality is defined as
- Conformance to explicitly stated and performance requirements, explicitly documented development standards, and implicit characteristics that are expected of all professionally developed software
According to Roger Pressman Software Quality is defined as
- Conformance to explicitly stated and performance requirements, explicitly documented development standards, and implicit characteristics that are expected of all professionally developed software
Quality Assurance & Quality Control
IEEE define Quality Assurance as:
- A set of activities designed to evaluate the process by which products are developed or manufactured
IEEE define Quality Control as:
- A set of activities designed to evaluate the quality of developed or manufactured products
Difference between QA and QC
Quality Assurance
Software QA involves the entire software development PROCESS - monitoring and improving the process, making sure that any agreed-upon standards and procedures are followed, and ensuring that problems are found and dealt with. It is oriented to 'prevention'
Quality Control
Testing involves operation of a system or application under controlled conditions and evaluating the results (eg, 'if the user is in interface A of the application while using hardware B, and does C, then D should happen'). The controlled conditions should include both normal and abnormal conditions.
What is Software Testing?
Testing is the process of executing a program or system with the intent of finding error [Myers, 1979]
Testing is any activity aimed at evaluating an attribute of a program or system. Testing is measurement of software quality [Hetzel, 1983]
According to IEEE
The process of analyzing a software item to detect the differences between existing and required conditions and to evaluate the features of the software items (IEEE Std 829-1983
Why Software Testing
- Redefine the application/software development process
- Identify areas of weakness and enhancements
- Verify the expected performance
- Verify the accuracy of logic
- Ensure that business requirements of the system have been met
Let’s illustrate why testing with the true story of Mercury spacecraft failure.
The computer program ABOA spacecraft contained the following statement with the FORTRAN programming language.
DO 100 I = 1.10
The programmer's intention was to execute a succeeding statements up to line 100 ten times then creating a loop where the integer variable I was using the loop counter, starting 1 and ending at 10.
Unfortunately, what this code actually does is writing variable I do to decimal value 1.1 and it does that once only. Therefore remaining code is executed once and not 10 times within the loop. As a result spacecraft went off course and mission was aborted considerable cost!).
Correct Syntax
The correct syntax for what the programmer intended is:--
.DO 100 I=1,10
So a small mistake make a very big thing. That’s why software testing is very necessary
When to start Testing
- Testing should begin with the Analysis phase of a project and continue all the way through
- As many issues found in analysis, design phase can reduce the cost of project
When to finish Testing
Some of the common factors and constraints that should be considered when decided on when to stop testing are
- Project deadline and test completion deadline.
- Critical or Key Test cases successfully completed. Certain test cases even if they fail may not be show stoppers.
- Functional coverage, code coverage, meeting the client requirements to certain point.
- Defect rates fall below certain specified level & High priority bugs are resolved.
- The risk in the project is under acceptable limit.
Reviews
A review is any activity in which a work product is distributed to reviewers who examine it and give feedback
Two main Types
· Inspection
· Walkthrough
Other types of reviews include
- Desk check
- Peer Review
- Code reading
- Management reviews
- Audits
In next blog I will discuss about reviews in details....