Software Quality Assurance: Aamir Khan
Software Quality Assurance: Aamir Khan
Software Quality Assurance: Aamir Khan
Aamir Khan
Basic concepts
Software quality assurance (SQA)
consists of a means of monitoring the software engineering processes and methods used to ensure quality. It does this by means of audits of the quality management system under which the software system is created. These audits are backed by one or more standards, usually ISO 9000 or CMMI.
It is practically impossible to iron out every single bug before releasing it both from a difficulty point of view and due to time constraints.
2
Both QA and QC activities are generally required for successful software development
SQA jobs
SQA includes:
Reviewing requirements documents Software testing
The processes and methods to manage, monitor, and measure software ongoing quality are as fluid and sometimes elusive as are the defects that they are meant to keep in check
5
SQA Methodology
PPQA audits:
Process and Product Quality Assurance Is the activity of ensuring that the process and work product conform to the agreed upon process.
Validation testing
Is the act of entering data that the tester knows to be erroneous into an application. For instance, typing "Hello" into an edit box that is expecting to receive a numeric entry.
Data comparison
Comparing the output of an application with specific parameters to a previously created set of data with the same parameters that is known to be accurate.
Stress testing:
A stress test is when the software is used as heavily as possible for a period of time to see whether it copes with high levels of load. Often used for server software that will have multiple users connected to it simultaneously. Also known as Destruction testing.
Usability testing
Sometimes getting users who are unfamiliar with the software to try it for a while and offer feedback to the developers about what they found difficult to do is the best way of making improvements to a user interface
7
Advantages of SQA
Improved customer satisfaction Reduced cost of development Reduced cost of maintenance
10
11
12
Negative testing:
Doing something it was not supposed to do
The simple testing the application beyond and below of its limits Examples
the password where it should be minimum of 8 characters so testing it using 6 characters is negative testing
13
Error Guessing
design technique based on the ability of the tester to draw on his past experience, knowledge and intuition to predict where bugs will be found in the software under test
15
17
Usability testing
needed to check if the user interface is easy to use and understand.
Security testing
essential for software which processes confidential data and to prevent system intrusion by hackers.
Regression testing
After modifying software, either for a change in functionality or to fix defects, a regression test reruns previously passing tests on the modified software to ensure that the modifications haven't unintentionally caused a regression of previous functionality. Regression testing can be performed at any or all of the above test levels. These regression tests are often automated.
More specific forms of regression testing are known as sanity testing, when quickly checking for bizarre behavior, and smoke testing when testing for basic functionality. Benchmarks may be employed during regression testing to ensure that the performance of the newly modified software will be at least as acceptable as the earlier version or, in the case of code optimization, that some real improvement has been achieved.
19
System testing
Software or hardware is testing conducted on a complete, integrated system to evaluate the system's compliance with its specified requirements Black box testing To detect any inconsistencies
between the software units that are integrated together (called assemblages) between any of the assemblages and the hardware
20
Test plan
document which says what to test, when to test ,how to test and who to test. the test plan document was prepared by the test lead
21
Automated testing
The use of software to control the execution of tests, the comparison of actual outcomes to predicted outcomes, the setting up of test preconditions, and other test control and test reporting functions
22
IEEE 829
829 Standard for Software Test Documentation
a set of documents for use in eight defined stages of software testing, each stage potentially producing its own separate type of document Test Plan: a management planning document Test Design Specification Test Case Specification Test Procedure Specification Test Item Transmittal Report Test Log Test Incident Report Test Summary Report
23
ISO 9003
A quality assurance model for final inspections and testing
24
Software walkthrough
a form of software peer review
A designer or programmer leads members of the development team and other interested parties through a software product And the participants ask questions and make comments about possible errors, violation of development standards, and other problems
25
Change Management
the process of requesting, determining attainability, planning, implementing and evaluation of changes to a system Changes in the IT infrastructure may arise reactively in response to problems or externally imposed requirements
26
Configuration Management
a field of management that focuses on establishing and maintaining consistency of a product's performance and its functional and physical attributes with its requirements, design, and operational information throughout its life
Configuration identification Configuration control Configuration status accounting Configuration authentication
27
Version Control
The management of multiple revisions of the same unit of information
application source code
28
Defect Tracking
the process of finding defects in a product (by inspection, testing, or recording feedback from customers), and making new versions of the product that fix the defects.
29