# 0-3 Recap ###### tags: `ISTQB` `Software Testing` `SQA` ## Introduction - *Software Testing: An ISTQB-BCS Certified Test Foundation guide 3rd edition* - Relates to the 2010 version of the **ISTQB Certified Tester Foundation Level** syllabus. - References to ISO/IEC/IEEE 29119 Software Testing: - ISO/IEC 29119-1: Concepts & definitions - ISO/IEC 29119-2: Test processes - ISO/IEC 29119-3: Test documentation - ISO/IEC 29119-4: Test techniques - ISO/IEC 29119-5: Keyword driven testing ## 1 THE FUNDAMENTALS OF TESTING ### Why testing is needed? - **An error** (or mistake) leads to **a defect**, which can cause **an observed failure**. Cause consequences: - Harm people, companies, the envirnment - Cost money, time, business reputation, life - Keep software under control. ![Effect of an error](https://i.imgur.com/SdZdjQO.png) ### What testing is? - Debugging and Testing - Static testing and dynamic testing ### What testing does? - Ensure - Examined - Reported ### General testing principles - Testing shows the presence of bugs - Exhaustive testing is impossible - Consider both ‘risk’ and ‘priorities’ :::info :star: **Definition of Exhaustive testing** A test approach in which all possible data combinations are used. This includes implicit data combinations present in the state of the software/data at the start of testing. ::: - Resources triangle ![Resources triangle](https://i.imgur.com/BqoU4a5.png) - Early testing ![Effect of identification time on cost of errors](https://i.imgur.com/hFHz8Xb.png) - Defect clustering - The application of the Pareto principle to software testing: approximately 80% of the problems are found in about 20% of the modules. - The pesticide paradox - Running the same set of tests continually will not continue to find new defects. - Any regression test set needs to change to reflect business needs, and what are now seen as the most important risks. - Testing is context dependent - Absence of errors fallacy - The fact that no defects are outstanding is not a good reason to ship the software ### Fundemental Test Process ```graphviz digraph fundemental_test_process{ splines=ortho node[ shape=box, fixedsize=true, width=2, fontsize=12 ]; "Test planning and control" ->"Test analysis and design" ->"Test implementation \nand execution" ->"Evaluating exit criteria \nand reporting" ->"Test closure activities"; } ``` ### The psychology of testing ## 2 LIFE CYCLES ### V-model ![V-model for software development](https://i.imgur.com/xCZf75e.png) - Test level ### Iterative ![Iterative development](https://i.imgur.com/kLo1C8D.png) ### Test Type - Functional testing. - Non-functional testing. (Security 比較common的是不是有機會屬於此類,例如要符合某一種等級的入侵) - Structural testing. - Testing after code has been changed. :::danger :question: security是functional or non-functional? ::: ### Maintenance testing ## 3 STATIC TESTING - Review: document - a requirement specification, a piece of code, a test plan/test case - carried out by reading - Static analysis: - code - best carried out using tools ### Review - Stages of a formal review ![Stages of a formal review](https://i.imgur.com/YAmhNqQ.png) - Formality of reviews ![Formality of reviews](https://i.imgur.com/8n1h7kP.png) ## Functional Vs Non-Functional Testing: 以下是搜尋到關於Functional testing 跟 non-Functional testing的差別,放在這裡參考 reference to https://www.guru99.com/functional-testing.html ![](https://i.imgur.com/qn2Lps9.png) ![](https://i.imgur.com/JRHe2Iu.png)