6.
1 SOFTWARE TESTING
(Source: [Link])
* Software testing is a procedure to verify whether the actual results are
same as expected results.
* Software testing is performed to provide assurance that the software
system does not contain any defects.
* Defects means errors which are detected by tester when actual result of
our software module is not identical as expected result.
* To perform software testing we create test cases and test data.
* Collection of test cases is called as test suit.
* Test data is the input provided to modules which are present in our
software product.
* Sometimes test data is used for positive testing.
* Sometimes test data is used for negative testing.
6.1.1 Advantages of Software Testing
GQ. What are the advantages of Software Testing? (5 Marks)
* Testing reduces the possibility of software failure by removing errors.
* Testing process removes maximum possible errors and helps to deliver
qualitative software to customer.
* Testing ensures correctness and completeness of software along with
quality.
* Testing allows us to verify and validate the software.
* Testing enables the software to produce expected outcome by removing
errors.
6.1.2 Types of Software Testing
GQ. Write note on Manual and Automation Testing (10 Marks)
Software Testing is divided in to two categories:
1. Manual Testing
* Tester treat himself as end user and use every module of application to
check application behavior.
* In manual testing, tester manually runs all the test cases without help
of any automation testing tools.
2. Automation Testing
* Automation Testing is the process of using various automation tools for
executing test cases.
6.1.5 Objectives of Software Testing
(Source: [Link])
UQ. What are the objectives of testing?
* To reduce the probability of errors being generated by the programmer
while doing coding of software.
* To provide assurance that the software product is secure.
* To make sure that we deliver quality software product to our end user.
* To give assurance that it satisfies requirements present in the BRS
(Business Requirement Specification) and SRS (System Requirement
Specification).
* To make sure that we are giving our customers a quality software
product which must be user friendly and fulfills all the requirements and
expectations of customer.
6.1.6 Software Testing Process
GQ. Explain the software testing process in detail. (10 Marks)
* Software testing process is a sequence of activities that must be
performed to certify a software system.
* The phases are: Requirements analysis, Test planning, Test case
development, Environment setup, Test execution, Test cycle closures.
* Entry criteria: Defined conditions that must be satisfied before testing
begins.
* Exit criteria: Describes the conditions that must be satisfied before
testing is concluded.
6.2 VERIFICATION AND VALIDATION
(Source: [Link])
GQ. Explain verification and validation in detail. (8 Marks)
6.2.1 Verification
* Verification can be defined as a process of evaluating the intermediate
products of a software development.
* Verification refers to the set of activities that ensure that the software is
developed with adherence to design specifications.
* Goal: To ensure that all elements present in the software product are
correct and consistent.
6.2.2 Validation
* Validation can be defined as a process of evaluating the final product to
ensure that the software meets all the specified requirements.
* Validation is performed at the software deployment to show that the
product fulfills its intended use and works as desired.
* Goal: To ensure that the software does what the user wants.
6.2.3 Difference Between Verification and Validation
UQ. Compare between Verification and Validation.
| Parameter | Verification | Validation |
|---|---|---|
| Focus | Checks code as per specification. | Checks if software solves the
actual problem. |
| Aim | Are we building the product right? | Are we building the right
product? |
| Inclusion | Verification contains Reviews, Meetings and Inspection. |
Validation is performed by testing. |
| Performance | Verification is considered as a quality assurance process. |
Validation is considered as a test activity. |
| Code Execution | Execution of code is not a part of Verification. |
Execution of code is a part of Validation. |
| Explanation | Verification proves proper explanation of software
according to requirement. | Validation gives explanation about acceptance
of software by the user or not. |
Table in Normal Text Form:
* Parameter: Focus
* Verification: Checks code as per specification.
* Validation: Checks if software solves the actual problem.
* Parameter: Aim
* Verification: Are we building the product right?
* Validation: Are we building the right product?
* Parameter: Inclusion
* Verification: Verification contains Reviews, Meetings and Inspection.
* Validation: Validation is performed by testing.
* Parameter: Performance
* Verification: Verification is considered as a quality assurance process.
* Validation: Validation is considered as a test activity.
* Parameter: Code Execution
* Verification: Execution of code is not a part of Verification.
* Validation: Execution of code is a part of Validation.
* Parameter: Explanation
* Verification proves proper explanation of software according to
requirement.
* Validation: Validation gives explanation about acceptance of software
by the user or not.
6.3 SOFTWARE TESTING STRATEGY
(Source: [Link])
GQ. Explain Software Testing Strategy and its importance. (10 Marks)
* The testing strategy defines a series of steps that lead to the successful
testing of the software.
* The testing strategy has the following phases: Unit testing, Integration
testing, Validation testing, System testing.
6.3.1 Stability and Drivers in Unit Testing
(Source: [Link])
* Unit Testing is a level of software testing where individual
units/components of a software are tested.
* Driver: A driver is a program module that acts as a substitute for a
module that receives data and passes the results to a module under test.
* Stub: A stub is a program module that acts as a substitute for a module
that is called by the module under test.
6.3.2 List of Errors Detected by Unit Testing (10 Marks)
* The following is the list of errors that can be detected by Unit Testing:
* Data structure errors
* Incorrect boundary conditions
* Errors in arithmetic logic
* Incorrect calculation or incorrect data
* Missing or erroneous logic
* Global and local data handling
6.4 TYPES OF SOFTWARE MAINTENANCE
(Source: [Link])
6.4.1 Types of Software Maintenance
(Transcribed earlier, but listing here for sequence)
* Corrective Maintenance
* Adaptive Maintenance
* Perfective Maintenance
* Preventive Maintenance
6.5 VALIDATION TESTING
(Source: [Link])
GQ. Explain VALIDATION TESTING in detail. (10 Marks)
* Validation testing begins after completion of independent components.
* Testing is concentrated on the actions which are directly visible by user
and output which will be successful when the system.
* Validation is successful when the software confirms to its user
requirements and specifications.
6.5.1 Validation Test Criteria
* A test plan describes the classes regarding tests to be conducted.
* A test procedure defines particular test cases which are designed to
ensure the expected functional requirements are fulfilled.
* Validation criteria include: All of the expected functional requirements
are fulfilled, All of the expected behavioral characteristics are fulfilled,
There is consideration in all the content and are properly presented, There
is accuracy in all the content and are properly presented, Documentation
is accurate.
* After completion of validation test case, there is one of two possible
conditions:
* There is acceptance of the function or performance characteristic.
* A variation from specification is not corrected.
6.5.2 Configuration Review
* Configuration review is considered as a vital element of the validation
process.
* The main aim of the review is making sure that all associated elements
of the software configuration accurately developed are properly cataloged.
6.6 SYSTEM TESTING
(Source: [Link])
GQ. Write short note on System Testing (4 Marks)
* System testing is a series of tests which performs on the complete
integrated computer-based system.
* System testing falls under black box testing in which every component
of the system is tested.
* It covers functional and non-functional tests.
6.6.1 Functional and Non-functional testing
* Functional Testing: Checks whether requirements of an application are
fulfilled or not.
* Non-functional Testing: Checks requirements that are not inclined or tied
to any particular function.
6.7 INTEGRATION TESTING
(Source: [Link])
GQ. Explain Integration testing in detail. (10 Marks)
* Integration testing is a method of software testing in which all units of
software modules are integrated and tested in a single group.
* Aim: To check the communication among all units of software.
* It is mainly done after unit testing is approached.
* Two main approaches: Top-down and Bottom-up integration.
6.7.1 Strategies for Conventional Software - Unit Testing
(Source: [Link])
* Unit Testing is a level of software testing where individual
units/components of a software are tested.
* The Test Plan is the highest level of software testing.
* It is performed to isolate the unit and test it without any external
components.
6.7.2 Types of Integration Testing
1. Big Bang Approach
* Incremental approach, which is categorized into given types:
* Top-Down Approach
* Bottom-up Approach
* Sandwich Approach: Combination of Top Down and Bottom Up.
2. Incremental Approach
* Integration testing is performed in stages as modules are integrated
one by one.
6.8 WHITE BOX TESTING
(Source: [Link])
* In White box testing, tester can see the source code of the software
program and is aware of all programming logic.
* It is also called Structural Testing or Glass Box Testing.
6.8.1 Advantages of White Box Testing
(Transcribed earlier, listing here for sequence)
* All the possible paths of a system is a strength of testing.
* Tester can achieve high code coverage.
6.8.2 Disadvantages of White Box Testing
(Transcribed earlier, listing here for sequence)
* It requires high level knowledge of programming language and internal
structure.
* It requires more time for testing.
6.8.3 White Box Testing Techniques
* Basis Path Testing (BPA): A systematic technique that guarantees 90%
code coverage.
* Condition Testing: Exercises logical conditions in a program module.
* Data Flow Testing: Selects test paths based on the locations of
definitions and uses of variables in the program.
* Loop Testing: Exercises loop constructs (simple, concatenated, nested,
and unstructured loops).
6.9 BLACK BOX TESTING
(Source: [Link], [Link])
* In Black box testing, the tester does not know the internal structure of
the software.
* Black box testing includes testing based on the functionality of the
software.
6.9.1 Types of Black Box Testing
(Transcribed earlier, listing here for sequence)
* Functional Testing
* Non-functional testing
* Regression Testing
* Load Testing
* Stress Testing
* Usability Testing
6.9.4 Difference between White Box Testing and Black Box Testing
(Source: [Link])
(Table in Normal Text Form)
* Parameter: Applicable levels
* White box testing: It is mainly applicable at lower levels of testing i.e.
unit and integration testing.
* Black box testing: It is mainly applicable at higher levels of testing i.e.
acceptance and system testing.
* Parameter: Base for testing
* White box testing: Detail design is the basis for White Box testing.
* Black box testing: Requirement specification is the basis for Black Box
testing.
* Parameter: Performed by
* White box testing: It is carried out by software developers.
* Black box testing: It is carried out by software testers.
6.10 USABILITY TESTING
(Source: [Link])
GQ. Explain following concept related to web-based testing - Usability
testing. (4 Marks)
* The primary goal of usability testing is to understand how real users
interact with your website.
6.10.1 (A) Components of a Usability Test (4 Marks)
* In a usability test, there are two groups: users and observers.
6.10.1 (B) Methods of Usability Testing
* Card Sorting
* In Person Testing
* Remote Testing
6.11 ART OF DEBUGGING
(Source: [Link])
6.11.1 Art of Debugging
* Debugging is the process of detecting and removing errors in a program
to make it run successfully or correctly.
6.12 SOFTWARE MAINTENANCE: SOFTWARE SUPPORTABILITY
(Source: [Link])
6.12.1 Step to Grow Maintenance Log
* Maintenance log is necessary in every system as it provides record of all
work performed on the system at any time.
6.19 SELF-LEARNING TOPICS : TEST STRATEGIES FOR WEBAPPS
(Source: [Link])
* Important points to consider before testing Web-Based applications (4
Marks):
* Compatibility with different browsers
* Functional testing
* Usability
* Integration
* Security
* Performance