Software Testing
What is Software Testing? Definition: 1.is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. 2.provides an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation
Software testing can also be stated as the process of validating and verifying a software program/application/product 1. meets the business and technical requirements that guided its design and development; 2. works as expected; and 3. can be implemented with the same characteristics
What is the primary purpose of Software Testing? to detect software failures so that defects may be discovered and corrected. This is a non-trivial detection. often includes examination of code as well as the execution of that particular code in various environments and conditions as well as examining the aspects of code.
Functional vs. non-functional testing Functional testing refers to activities that verify a specific action or function of the code. Non-functional testing refers to aspects of the software that may not be related to a specific function or user action.
Defects and failures Not all software defects are caused by coding errors. Software faults occur through the following processes. – A programmer makes an error (mistake), which results in a defect (fault, bug) in the software source codeerrordefectsource code – If this defect is executed, in certain situations the system will produce wrong results, causing a failure.failure Note: Not all defects will necessarily result in failures A defect can turn into a failure when the environment is changed
Compatibility A common cause of software failure (real or perceived) is a lack of compatibility with other application software, operating systems (or operating system versions, old or new), or target environments that differ greatly from the original (such as a terminal or GUI application intended to be run on the desktop now being required to become a web application, which must render in a web browser).compatibilityapplication softwareoperating systemsversionsterminalGUIdesktopweb applicationweb browser For example, in the case of a lack of backward compatibility.backward compatibility
Software verification and validation Software testing is used in association with verification and validation:verification and validation 1. Verification: Have we built the software right? (i.e., does it match the specification). 2. Validation: Have we built the right software? (i.e., is this what the customer wants).
The software testing team Software testing can be done by software testers. 1.Manager 2.test lead 3.test designer 4.Tester 5.automation developer 6.test administrator.
Testing methods The box approach 1.White box testing is when the tester has access to the internal data structures and algorithms including the code that implement these. 2.Black box testing treats the software as a "black box"—without any knowledge of internal implementation. 3.Grey box testing (American spelling: gray box testing) involves having knowledge of internal data structures and algorithms for purposes of designing the test cases, testing at the user, or black-box level.
Testing Levels 1.Unit testing refers to tests that verify the functionality of a specific section of code, usually at the function level. In an object-oriented environment, this is usually at the class level, and the minimal unit tests include the constructors and destructors. 2.Integration testing is any type of software testing that seeks to verify the interfaces between components against a software design. Software components may be integrated in an iterative way or all together ("big bang"). Normally the former is considered a better practice since it allows interface issues to be localised more quickly and fixed. 3. System testing tests a completely integrated system to verify that it meets its requirements.
End of Lesson Short quiz regarding the lesson will follow