Download presentation
Presentation is loading. Please wait.
1
UNIT-1 SOFTWARE TESTING FUNDAMENTALS
Prepared By: Asst. Prof. Garima K. Pathak
2
Index Introduction Testing objectives Test information flow
Testing lifecycle Test Cases Designing test cases
3
Introduction Definition:
According to ANSI/IEEE 1059 standard, Testing can be defined as - A process of analyzing a software item to detect the differences between existing and required conditions (that is defects/errors/bugs) and to evaluate the features of the software item. In general, these properties indicate the extent to which the component or system under test: meets the requirements that guided its design and development, responds correctly to all kinds of inputs, performs its functions within an acceptable time, is sufficiently usable, can be installed and run in its intended environments, and achieves the general result its stakeholders desire.
4
Introduction Why Testing?
Software testing is very important because of the following reasons: Software testing is really required to point out the defects and errors that were made during the development phases. It’s essential since it makes sure of the Customer’s reliability and their satisfaction in the application. It is very important to ensure the Quality of the product. Testing is required for an effective performance of software application or product. It’s important to ensure that the application should not result into any failures because it can be very expensive in the future or in the later stages of the development. It’s required to stay in the business.
5
Introduction Software Hazards Examples: This is China Airlines Airbus A300 crashing due to a software bug on April 26, 1994, killing 264 innocent lives Software bugs can potentially cause monetary and human loss, history is full of such examples In April of 1999, a software bug caused the failure of a $1.2 billion military satellite launch, the costliest accident in history In may of 1996, a software bug caused the bank accounts of 823 customers of a major U.S. bank to be credited with 920 million US dollars As you see, testing is important because software bugs could be expensive or even dangerous
6
Introduction When Start to Testing?
An early start to testing reduces the cost and time to rework and produce error-free software that is delivered to the client. However in Software Development Life Cycle (SDLC), testing can be started from the Requirements Gathering phase and continued till the deployment of the software. It also depends on the development model that is being used. For example, in the Waterfall model formal testing is conducted in the testing phase; but in the incremental model, testing is performed at the end of every increment/iteration and the whole application is tested at the end.
7
Introduction When Stop to Testing?
The following aspects are to be considered for stopping the testing process: Testing Deadlines Completion of test case execution Completion of functional and code coverage to a certain point Bug rate falls below a certain level and no high-priority bugs are identified Management decision
8
Introduction Who does Testing?
In most cases, the following professionals are involved in testing a system within their respective capacities: Software Tester Software Developer Project Lead/Manager End User
9
Introduction Software Validation:
Validation is process of examining whether or not the software satisfies the user requirements. It is carried out at the end of the SDLC. If the software matches requirements for which it was made, it is validated. Software Verification: Verification is the process of confirming if the software is meeting the business requirements, and is developed adhering to the proper specifications and methodologies.
10
Introduction
11
Testing Objectives Following are Seven objectives of Software Testing:
1. Testing shows the presence of bugs 2. Exhaustive testing in impossible-it is not possible to test all possible combinations of data and scenarios. 3. Early testing-By starting testing early, we can prepare testing for each level of the development lifecycle. 4. Defect clustering 5. The pesticide paradox- If you keep running the same set of tests over and over again, chances are no more new defects will be discovered by those test cases. 6. Testing is context dependent- Different methodologies, techniques and types of testing is related to the type and nature of the application. 7. Absence of errors fallacy [myth]
12
Test Information Flow In software testing, information will be flow in below manner. In testing these two inputs are include and on the basis of this test evaluation is done. After test evaluation, it results in no of errors and error rate data. Errors will be debugged and corrections are done. Error rate data analyzed by reliability model and reliability of software test is predicted by tester.
13
[Figure of Test Information Flow]
14
Software Testing Life Cycle [STLC]
Software Testing Life Cycle refers to a testing process which has specific steps to be executed in a definite sequence to ensure that the quality goals have been met. In STLC process, each activity is carried out in a planned and systematic way. Each phase has different goals and deliverables. Different phases of STLC: 1) Requirement Analysis 2) Testing Planning 3) Test case development 4) Environment setup 5) Test execution 6) Test cycle closure
15
Software Testing Life Cycle [STLC]
[Figure of Software Testing Life Cycle]
16
Software Testing Life Cycle [STLC]
1) Requirement Analysis Activities Identify types of tests to be performed. Gather details about testing priorities and focus. Prepare Requirement Traceability Matrix (RTM). Identify test environment details where testing is supposed to be carried out. Automation feasibility analysis (if required). Deliverables RTM Automation feasibility report. (if applicable)
17
Software Testing Life Cycle [STLC]
2) Test planning Activities Preparation of test plan/strategy document for various types of testing Test tool selection Test effort estimation Resource planning and determining roles and responsibilities. Training requirement Deliverables Test plan /strategy document. Effort estimation document.
18
Software Testing Life Cycle [STLC]
3) Test case development Activities Create test cases, automation scripts (if applicable) Review and baseline test cases and scripts Create test data (If Test Environment is available) Deliverables Test cases/scripts ,Test data 4) Test environment setup Activities Understand the required architecture, environment set-up and prepare hardware and software requirement list for the Test Environment. Setup test Environment and test data Perform smoke test on the build
19
Software Testing Life Cycle [STLC]
Deliverables Environment ready with test data set up Smoke Test Results. 5) Test Execution Activities Execute tests as per plan Document test results, and log defects for failed cases Map defects to test cases in RTM Retest the defect fixes Track the defects to closure Completed RTM with execution status Test cases updated with results Defect reports
20
Software Testing Life Cycle [STLC]
6) Test Cycle Closure Activities Evaluate cycle completion criteria based on Time, Test coverage, Cost, Software, Critical Business Objectives, Quality Prepare test metrics based on the above parameters. Document the learning out of the project Prepare Test closure report Qualitative and quantitative reporting of quality of the work product to the customer. Test result analysis to find out the defect distribution by type and severity. Deliverables Test Closure report Test metrics
21
Test Cases and Design Test Cases
A test case is a set of conditions or variables under which a tester will determine whether a system under test satisfies requirements or works correctly. In other words Test Case is: A set of input values E.g. Debit transaction $ from Account for Jane Smith With Preconditions E.g. Account for customer Jane Smith with zero balance Expected results and post conditions E.g. Message to user “Insufficient funds”, Account for Jane Smith is not debited. For a particular objective or test condition E.g. Test condition “Can’t debit a zero balance account”
22
Test Cases and Design Test Cases
To verify compliance with a specific requirement or exercise a particular program path E.g. Requirement “When a customer attempts to debit an account with insufficient funds an error message is displayed and the account is not debited. The process of developing test cases can also help find problems in the requirements or design of an application. TEST CASE TEMPLATE: A test case can have the following elements. Note, however, that normally a test management tool is used by companies and the format is determined by the tool used.
23
Test Cases and Design Test Cases
24
Test Cases and Design Test Cases
25
Test Cases and Design Test Cases
26
Test Cases and Design Test Cases
Test Case Management Tools: Test management tools are the automation tools that help to manage and maintain the Test Cases. Main Features of a test case management tool are: For documenting Test Cases Execute the Test Case and Record the results Automate the Defect Tracking Traceability Protecting Test Cases Popular Test Management tools are : Quality Center and JIRA
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.