- is a process of executing a program or application with the intent of finding bugs.
- Process: Testing is a process of validating and verifying that a software meets requirements -All Life Cycle : takes place throughout SDLC -Static Testing: It can test and find defects without executing code. done during verification process. includes reviewing of the documents This is useful and cost effective way of testing. For example: reviewing, walkthrough, inspection, etc -Dynamic Testing: In dynamic testing the software code is executed to demonstrate the result of running tests. It’s done during validation process. For example: unit testing, integration testing, system testing, etc. -Planning: control test activities -Preparation: choose what testing -Evaluation: check the results and evaluate whether we have finished testing and whether the software product has passed the tests. -why: -to avoid expensive or dangerous mistakes -required to point out the defects and errors that were made during the development phases. -quality of product: customer reliability, confidence, trust, satisfaction, requires lower maintenance cost -required to stay in the business. -Objectives: Main: Verification, Validation, defect finding -find defects -prevent defects -level of quality -satisfy BRS n SRS (business and system requirement specs) -Principles: 1-Testing shows presence of defects: A necessary part of the test case is a definition of the expected output of result Initial input data set Correct output for initial data set ever test your own program organization should not test its own programs. thorough inspection of test result go with the intent of finding error 2- Exhaustive testing is impossible 3-Early testing: 4- Defect clustering: 5-Pesticide paradox: If the same kinds of tests are repeated again and again, eventually the same set of test cases will no longer be able to find any new bugs. Review testcase regularly 6-Testing is context depending: 7-Absence – of – errors fallacy:
Software test plan
IEEE 829-2008: describes documentations 1.Test plan identifier 2. Introduction 3. Test items 4. Features to be tested 5. Features not to be tested 6. Approach 7. Item pass/fail criteria 8. Suspension criteria and resumption requirements 9. Test deliverables 10. Testing tasks 11. Environmental needs 12. Responsibilities 13. Staffing and training needs 14. Schedule 15. Risks and contingencies 16. Approvals
IEEE Standard 610 (1990)
A set of test inputs, execution conditions, and expected results developed for a particular objective, such as to exercise a particular program path or to verify compliance with a specific requirement.
Boris Beizer (1995, p. 3)
A sequence of one or more subtests executed as a sequence because the outcome and/or final state of one subtest is the input and/or initial state of the next.
Software quality: The degree to which a system, component, or process meets specified requirements (customer or user needs or expectations.)
ISO/IEC 9126: Software Product Quality Model
standard defines a framework for evaluating the quality of a software product. It provides a structured approach to assess both the internal and external quality of software, focusing on the attributes that contribute to user satisfaction and effective software functionality. The framework is divided into four parts: 1. Quality Model: o Defines six primary quality characteristics for software. 2. External Metrics: o Measure software behavior during execution. 3. Internal Metrics: o Evaluate the software's static properties, such as code structure and complexity. 4. Quality in Use Metrics: o Focuses on the end-user experience and evaluates usability and satisfaction.
BS EN ISO 9001:2000: Quality Management Systems
globally recognized quality management system (QMS) standard, designed to help organizations consistently deliver products and services that meet customer and regulatory requirements. The goal of ISO 9001:2000 is to ensure that organizations: • Enhance customer satisfaction. • Continuously improve processes. • Deliver consistent, high-quality products and services. This version emphasizes a process-based approach, integrating quality management into an organization's operations rather than treating it as a separate function.
ISO/IEC 15504: IT - Software Process Improvement and Capability Determination (SPICE)
ISO/IEC 15504, commonly known as SPICE (Software Process Improvement and Capability Determination), is an international standard that provides a framework for assessing and improving software development processes. It is applicable not only to software but also to system and IT processes. The standard focuses on evaluating the capability and maturity of processes, enabling organizations to identify strengths, weaknesses, and areas for improvement.