Presentation is loading. Please wait.

Presentation is loading. Please wait.

UNIT-1 SOFTWARE TESTING FUNDAMENTALS

Similar presentations


Presentation on theme: "UNIT-1 SOFTWARE TESTING FUNDAMENTALS"— Presentation transcript:

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


Download ppt "UNIT-1 SOFTWARE TESTING FUNDAMENTALS"

Similar presentations


Ads by Google