Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Software engineering - 2 Section 8 QUIZ • Show how it is possible to determine the height of a tall building with the aid of a barometer. Niles Bohr مش دايما الحل المعقد هو الحل الوحيد اللى صح 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. Why software testing is important • Testing is important because software bugs could be expensive or even dangerous. 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 Exhaustive testing • Test the entire possible combinations • EXHAUSTIVE testing is not possible. 80-20 rule • “80 percent from the possible defects will come from 20 percent from the overall code” • Defect Clustering 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. 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. 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 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 V Model Software testing lifecycle 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 Black-box VS White-box testing 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. 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 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. Demo • • • • • Regression testing Code coverage TESTNG Selenium Search for Appium(Android frontend)