Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software engineering – 1

Similar presentations


Presentation on theme: "Software engineering – 1"— Presentation transcript:

1 Software engineering – 1
Section 8

2 Agenda What’s testing and why testing is important Testing ways
Practice

3 What’s software testing
software testing is an activity to check whether the actual results match the expected results and to ensure that the software system is defect free.

4 Why software testing is important
Testing is important because software bugs could be expensive or even dangerous.

5 How to do testing ?? Imagine that we want to test moving a file from folder A to folder B. How should we test this operation to ensure that this operations works correctly ? Trying to move the file when it is open You do not have the security rights to paste the file in Folder B Folder B is on a shared drive and storage capacity is full. Folder B already has a file with the same name

6 Exhaustive testing Test the entire possible combinations
EXHAUSTIVE testing is not possible.

7 80-20 rule “80 percent from the possible defects will come from 20 percent from the overall code” Defect Clustering

8 Pesticide Paradox If the same tests are repeated over and over again, eventually the same test cases will no longer find new bugs To overcome this, the test cases need to be regularly reviewed & revised, adding new & different test cases to help find more defects.

9 Important note Software Testing reduces the probability of undiscovered defects remaining in the software but even if no defects are found, it is not a proof of correctness.

10 Early testing Finding and fixing defects does not help if the system build is unusable and does not fulfill the users needs & requirements. Early Testing - Testing should start as early as possible in the Software Development Life Cycle

11 Early testing Also, the costs of fixing a defect increases across the development life cycle. The earlier in life cycle a defect is detected, the cheaper it is to fix it

12 V Model

13 Software testing lifecycle

14 Manual testing In Manual Testing , Testers manually execute test cases without using any automation tools.  Any new application must be manually tested before its testing can be automated. Manual testing requires more effort, but is necessary to check  automation feasibility. Automated testing may be done using some testing tools to generate test cases

15 Black-box VS White-box testing

16 System testing System testing is actually a series of different tests whose sole purpose is to exercise the full computer based system. System testing falls under the black box testing category of software testing.

17 Integration testing A typical software project consists of multiple software modules, coded by different programmers.  Integration testing focuses on checking data communication amongst these modules. A Module in general is designed by an individual software developer whose understanding and programming logic may differ from other programmers. Integration testing becomes necessary to verify the software modules work in unity

18 Unit testing The objective of unit testing is to isolate a section of code and verify its correctness. In procedural programming a unit may be an individual function or procedure The goal of unit testing is to isolate each part of the program and show that the individual parts are correct. Unit testing is usually performed by the developer.

19 Practice Develop a function that takes an array of integers and return an array of integers similar to the input array but each number is divided by 2 Example input Example output Think about the possible test cases for this function


Download ppt "Software engineering – 1"

Similar presentations


Ads by Google