software testing importance Gain wide, but flat/shallow knowledge Improve communication Gives an opportunity for further career development Recognizable around the ‘world’ Foundation Level
must ! Practicing with questions that are on the Internet is highly recommended, but be self-aware Multiple choice exam, but all choices are in one. Duration: 60 minutes in polish and 75 minutes in English Result: just after the exam Pass criteria: 65% = 26 out of 40 points (all questions have the same weight) Lack of negative points Different Learning Objectives: K1 remember, K2 understand, K3 apply, K4 analyze Words like: always, only, never etc. are susceptible !
Take part in classes; Be on time at classes; Do not distract yourself with other devices; Read syllabus and books; Be aware that we are not going to cover all the material; Do not sleep during classes; Bring in positive vibe;
examples, the way in which a defect in software can cause harm to a person, to the environment or to a company. LO-1.1.2 (K2) Distinguish between the root cause of a defect and its effects. LO-1.1.3 (K2) Give reasons why testing is necessary by giving examples. LO-1.1.4 (K2) Describe why testing is a part of quality assurance and give examples of how testing contributes to higher quality. LO-1.1.5 (K2) Explain and compare the terms error, defect, fault, failure, and the corresponding terms mistake and bug, using examples. 1.1 Why is Testing Necessary ? Foundation Level
…so are defects, that cause failures, too Hackers took over all the company`s data incl. clients, employees, plans etc. The failure caused: loss of invaluable data, loss of previous and future clients, lowering the value of the brand, total lack of trust. All in all company was really close to announce bankruptcy.
…so are defects, that cause failures, too 8000 cafeterias had to offer café for free, because of software failure which blocked selling process. The failure decreased company`s income. The failure influenced somebody`s feelings negatively. The failure caused bad public reputation, disappointed users, loss of time and money
Mistake/Error A human action that produces an incorrect result It is something that we cannot imagine, notice or observe Each action is exposed to be taken inconsistently Inconsistent execution is always taken without conscience Mistake is always made by a maker “A person who never made a mistake never tried anything new.” Albert Einstein
Bug/Defect/Fault A flaw in a component or system that can cause the component or system to fail to perform its required function, e.g. an incorrect statement or data definition. A defect, if encountered during execution, may cause a failure of the component or system. Defect is an effect or a consequence of a mistake. We can observe or notice a defect, but we won`t always be aware of that. Presence of a defect means that an error was made. Defect is a characteristic of a product or a process. Defect not always causes a failure.
Failure Deviation of the component or system from its expected delivery, service or result. Execution of a defect can cause a failure. Not each execution of a defect will cause a failure. A failure can be caused not only by a defect, e.g. environmental conditions.
Causes of software defects Time pressure Working under stress Human errors (e.g. communication) Fast-paced environment Complexity of technologies Complexity of systems of a systems Ambiguity
Examples of mistakes/errors: Typo in the name of a variable; Wrong interpretation of requirements, documentation etc. Usage of wrong version of code, requirements etc. Lack of action; Examples of bugs/faults/defects: Wrong type of a variable; Incorrect usage of boundary values; Incorrect range, name of a variable; Loss of reference, handle etc.; Incorrect memory management; Infinite loop; Examples of failures: Irresponsive application GUI; Unexpected restarts; Blue screen; system crash/hang; Wrong message; cannot log with correct password;
Necessity of testing 1. We all make mistakes, thus we should check everything we produce. 2. Software testing points out defects in a product and processes. 3. Software testing delivers information, which can increase product quality. 4. When software is properly tested it requires lower maintenance and customer support costs, what influences customers confidence and lower production costs. 5. Software testing is required to measure software reliability and availability. 6. Software testing helps senior management in making better decisions. 7. Software testing is usually expected by business partners. 8. Software testing helps in defects prevention. 9. Software testing reduces risks.
Testing in Quality Assurance Set proper processes, methodologies, increase maturity level of Project management to e.g. decrease injection rate is QA example. Evaluate the difference between expected quality level and actual. Example of QC. Deliver information about number of found Defects. Example of Testing as a part of QA. We want higher quality let`s invest in testing !
How much testing is enough ? We can stop testing when we will achieve acceptable level of risk for the system being tested Testing is an infinite activity
Below is the list of problems that were noticed during testing. Which one is MOST likely a failure? a) Build consisted of one source code file which had wrong version. b) One of the requirements was misinterpreted. c) Performance tool shows that one of algorithms is having problems with handles. d) When tester pressed ‘x’ button the application crushed.
Below is the list of problems that were noticed during testing. Which one is MOST likely a failure? a) Build consisted of one source code file which had wrong version. b) One of the requirements was misinterpreted. c) Performance tool shows that one of algorithms is having problems with handles. d) When tester pressed ‘x’ button the application crushed.
Which of the following statements are FALSE: a) Only software testing is necessary to improve quality of a product. b) Testing is used to prove that all defects have been found. c) Rigorous testing and defects fixes reduce the risk of problems occurring in an operational environment; d) Software testing is usually required to meet legal or contractual requirements.
Which of the following statements are FALSE: a) Only software testing is necessary to improve quality of a product. b) Testing is used to prove that all defects have been found. c) Rigorous testing and defects fixes reduce the risk of problems occurring in an operational environment; d) Software testing is usually required to meet legal or contractual requirements.
A bug/defect/fault is: a) Deviation from expected behavior; b) Human action that produces incorrect result; c) Materialization of a human error in a code; d) Always a cause of a failure;
A bug/defect/fault is: a) Deviation from expected behavior; b) Human action that produces incorrect result; c) Materialization of a human error in a code; d) Always a cause of a failure;
User chose a video and saw the following: as he does not understand English he switched to Polish and saw: This misleading information is: a) Mistake; b) Defect; c) Failure; d) Fault;
User chose a video and saw the following: as he does not understand English he switched to Polish and saw: This misleading information is: a) Mistake; b) Defect; c) Failure; d) Fault;
common objectives of testing. LO-1.2.2 (K2) Provide examples for the objectives of testing in different phases of the software life cycle. LO-1.2.3 (K2) Differentiate testing from debugging. 1.2 What is Testing ? Foundation Level
to our senses we know e.g.: how to organize our life, when to take action, where to go; what to eat; Our senses test surroundings, thus we can judge what is correct and incorrect. Can we live without senses (our testing) ? We use testing and create new complex test cases to make our life easier. Testing itself will not do anything, but without it we can`t do meaningful things.
software engineering testing is usually perceived as running of test cases i.e. execution of a software. TESTING Planning and Control Reviewing tests basis Choosing test conditions Design & Analysis of Test Cases Execution of test cases Evaluating exit criteria Closure activities Static analysis Reviewing documents incl. source code Reporting on the testing process and system under test Environment preparation Results checking
software engineering testing is usually perceived as running of test cases i.e. execution of a software. TESTING Reviewing tests basis Design & Analysis of Test Cases Reviewing documents incl. source code These activities help to prevent defects from being introduced into code.
of testing in particular testing phases Component, integration, system testing Cause as many failures as possible, to identify and fix defects, thus increase software quality. Acceptance testing Meet contractual requirements, gain confidence, confirm that system works as expected. Maintenance testing Usage of regression testing to make sure that no new defects have been introduced during development of fixes, changes etc. Operational testing Assessment of system characteristics e.g. reliability, availability etc.
vs. Debugging Tester during (dynamic) testing finds a failure The failure is caused by a defect. Developer is trying to fix it, but he needs to find, analyze and remove a root cause of the failure i.e. a defect, so uses debugging.
vs. Debugging Tester during (dynamic) testing finds a failure The failure is caused by a defect. Developer is trying to fix it, but he needs to find, analyze and remove a root cause of the failure i.e. a defect, so uses debugging. Tester re-tests the fix to make sure that the failure is resolved.
of the main goals of acceptance testing is: a) Making sure that software behaves correctly after an upgrade. b) Trying to find non-functional defects. c) Verify application by independent team. d) Ensure that software works properly from business point of view.
of the main goals of acceptance testing is: a) Making sure that software behaves correctly after an upgrade. b) Trying to find non-functional defects. c) Verify application by independent team. d) Ensure that software works properly from business point of view.
(internal) testing team should be driven by which goal: a) Ensure that all defects were found. b) Cause as many failures as possible, so defects will be fixed. c) Find failures then debug software and leave fixing to a developer. d) Increase quality to the highest possible level.
(internal) testing team should be driven by which goal: a) Ensure that all defects were found. b) Cause as many failures as possible, so defects will be fixed. c) Find failures then debug software and leave fixing to a developer. d) Increase quality to the highest possible level.
of the following statements BEST describes the difference between testing and debugging? a) Dynamic testing shows failures caused by faults, while debugging finds, analyzes and removes the causes of failures in a software. b) Dynamic testing shows defects, while debugging finds, analyzes and removes the causes of failures in a software. c) Dynamic testing prevents defects, while debugging finds, analyzes and removes the causes of failures in a software. d) Dynamic testing shows failures caused by faults, while debugging analyzes the problem and proposes preventive actions.
of the following statements BEST describes the difference between testing and debugging? a) Dynamic testing shows failures caused by faults, while debugging finds, analyzes and removes the causes of failures in a software. b) Dynamic testing shows defects, while debugging finds, analyzes and removes the causes of failures in a software. c) Dynamic testing prevents defects, while debugging finds, analyzes and removes the causes of failures in a software. d) Dynamic testing shows failures caused by faults, while debugging analyzes the problem and proposes preventive actions.
of the following is related to testing objectives: a) Reporting test execution progress. b) Defects fixing. c) Defects prevention. d) Making sure that error which caused a defect will not be repeated.
of the following is related to testing objectives: a) Reporting test execution progress. b) Defects fixing. c) Defects prevention. d) Making sure that error which caused a defect will not be repeated.
GUI of the application works correctly, but is different than described in documentation then: a) Technical writer made an error. b) A wrong version of a document was taken. c) We are having a failure. d) We should ignore the difference and move to another test case.
GUI of the application works correctly, but is different than described in documentation then: a) Technical writer made an error. b) A wrong version of a document was taken. c) We are having a failure. d) We should ignore the difference and move to another test case.
manager informs Project Manager that there aren`t any defects. What should be concluded by a Project Manager: a) We don`t need to run any more tests. b) Product is ready to be launched. c) Testing is finished. d) Software works perfectly. e) Developers didn`t introduce any defects. f) None of the above.
manager informs Project Manager that there aren`t any defects. What should be concluded by a Project Manager: a) We don`t need to run any more tests. b) Product is ready to be launched. c) Testing is finished. d) Software works perfectly. e) Developers didn`t introduce any defects. f) None of the above.
ones are testing objectives: i. Gaining confidence. ii. Finding defects. iii. Defects prevention. iv. Finding a root cause of a failure. a) i, ii, iii. b) i, iii, iv. c) ii, iii, iv. d) All of them.
ones are testing objectives: i. Gaining confidence. ii. Finding defects. iii. Defects prevention. iv. Finding a root cause of a failure. a) i, ii, iii. b) i, iii, iv. c) ii, iii, iv. d) All of them.
of the following is correct measurement of a test progress: a) Testing effort spent vs. planned. b) Total number of defects. c) Number of tests which were not executed. d) Pass rate of already executed test cases.
of the following is correct measurement of a test progress: a) Testing effort spent vs. planned. b) Total number of defects. c) Number of tests which were not executed. d) Pass rate of already executed test cases.
at finding a failure is: a) The best testing practice. b) What testers do every day. c) A testing approach. d) A cause of a conflict between testers and programmers.
at finding a failure is: a) The best testing practice. b) What testers do every day. c) A testing approach. d) A cause of a conflict between testers and programmers.
shows presence of defects. Testing can reveal defects, but cannot prove that there are no defects. When testing doesn`t find defects it doesn`t mean there are not anymore in the software. The more testing is done the less probability of undiscovered defects.
testing is impossible. Testing all combinations of inputs and preconditions is impossible. (apart from trivial cases) We cannot testing everything, but we can test the most important and the most risky scenarios. Use risk analysis and prioritization to focus testing.
testing is impossible. Exhaustive testing if possible will prove absence of defects only if: application will be executed in every possible scenario with every possible data; a test consists of all possible combinations of inputs and possible conditions, which influence software; all interaction will be covered; each configuration of software and hardware is covered; each sequence/state was tested; each statement, path, condition, loop, case, data flow should be executed;
is impossible. 4 IFs, n - loops 5 different paths 51 - number of cases when n=0 5 * 5 = 52 - number of cases when n=1 For n = 20: 51 + 52 + … + 520 = 119 209 289 550 780, Assuming 1ms for automated tests ~3 800 years For manual tests
testing. Start testing activities as early as possible. E.g. when project life cycle begins. As a tester you do not have to wait until application is functional, you can test requirements, high-level design, low-level design, prepare ATDD etc. Finding defects before they propagate to the next phase will save a lot of effort and influence quality positively. Focus early testing on defined objectives. Do it right the first time ! Early testing can prevent defects.
clustering. Defects are not equally distributed within a product. Probability of finding a bug differs among product units, due to different defects density (e.g. # defects/KLOC) of modules. Hit where it hurts ! If you find lot of defects in one place, then it`s likely to detect more in the same area. Pareto rule: most of the problems (80%) Are produced by minority of root causes (20%) Focus most of your testing effort to the areas with the highest defects density.
paradox. 1st run: - 14 passed - 10 failed - pass rate: 58% 2nd run: - 18 passed - 6 failed - pass rate: 75% 3rd run: - 21 passed - 3 failed - pass rate: 88% 4th run: - 23 passed - 1 failed - pass rate: 96% The same tests cases are repeated in each run and they find less and less defects, eventually they will no longer find any new defects.
paradox. Regular reviews and modifications of tests are needed to avoid the problem. New tests and different approaches should be used to detected undiscovered defects. When we use the same sets of tests, application becomes ‘robust’.
is context dependent. Testing should be adjusted to a type of product, which is being tested, e.g. we will differently safety- critical system than computer games, e-commerce sites, banking applications etc. Risk (esp. impact of a potential failure) should be taken into account while determining type of testing.
fallacy. It is possible that software is verified properly, but still won`t fulfill users` needs and expectations, thus is failing validation. Fixing defects doesn`t always mean that the quality increased, a fix can inject more defects or reveal defects that were hidden beneath (defects masking), thereby make the system unstable. Non-functional requirements are usually not completely specified (e.g. security, usability etc.) But they can have huge impact on customer satisfaction Customer requirements and satisfaction are the most important.
the statements below best describes defects density: a) It is the same as defects clustering; b) Defects density is related to probability of detecting a defect in e.g. component. Expressed by e.g. # of defects/size of a component; c) Defects density is high for big areas and low for small areas; d) Defects density is low for big areas and high for small areas;
the statements below best describes defects density: a) It is the same as defects clustering; b) Defects density is related to probability of detecting a defect in e.g. component. Expressed by e.g. # of defects/size of a component; c) Defects density is high for big areas and low for small areas; d) Defects density is low for big areas and high for small areas;
the statements below is one of the testing principles described by ISTQB: a) Testing during production is the most effective. b) Each module in a product has the same defects density. c) The more we test the better for the product. d) It is not possible to test the whole product thoroughly.
the statements below is one of the testing principles described by ISTQB: a) Testing during production is the most effective. b) Each module in a product has the same defects density. c) The more we test the better for the product. d) It is not possible to test the whole product thoroughly.
the statements describes one of the testing principles described by ISTQB: a) The objective of testing is to prove absence-of-defects. b) Exhaustive testing is what is expected from test expert. c) Automation of test cases will avoid exhaustive testing problem. d) It is impossible to test all combinations of inputs and configurations for a software system.
the statements describes one of the testing principles described by ISTQB: a) The objective of testing is to prove absence-of-defects. b) Exhaustive testing is what is expected from test expert. c) Automation of test cases will avoid exhaustive testing problem. d) It is impossible to test all combinations of inputs and configurations for a software system.
of fixing a defect: a) Is low at the end of software life cycle and high at the beginning. b) Depends only on developers salary. c) Grows exponentially with time. d) Is lower during system integration tests than during unit tests.
of fixing a defect: a) Is low at the end of software life cycle and high at the beginning. b) Depends only on developers salary. c) Grows exponentially with time. d) Is lower during system integration tests than during unit tests.
a) Should be equal for each module of a system. b) Should be present in a project when application is functional. c) Should be proportional to the size of a product. d) Results from testing scope.
a) Should be equal for each module of a system. b) Should be present in a project when application is functional. c) Should be proportional to the size of a product. d) Results from testing scope.
of finding new defects is low when: a) Huge number of defects was found during one of the test cycles. b) Test cases and approach were changed. c) A lot of effective testing effort was used and only a few defects were found. d) Key developer delivers a module for testing.
of finding new defects is low when: a) Huge number of defects was found during one of the test cycles. b) Test cases and approach were changed. c) A lot of effective testing effort was used and only a few defects were found. d) Key developer delivers a module for testing.
a few number of defects: a) Means that the application fulfills customer satisfaction. b) Proves high quality of the software. c) Is only a measurement shown by testing process and requires further research to draw a conclusion. d) Means that testing effort and testing scope were chosen improperly.
a few number of defects: a) Means that the application fulfills customer satisfaction. b) Proves high quality of the software. c) Is only a measurement shown by testing process and requires further research to draw a conclusion. d) Means that testing effort and testing scope were chosen improperly.
happen when developer fixes a defect: i. Retest passes. ii. Retest fails. iii. New defect or defects are introduced. iv. New defect or defects are revealed due to masking problem. v. Retest passes but fix doesn`t meet customer expectation. a) i, ii, iii, iv are TRUE, but v is FALSE b) i, ii, iii, iv and v are TRUE c) i, ii, iv, v are TRUE, but iii is FALSE d) i, iii, iv, v are TRUE, but ii is FALSE
happen when developer fixes a defect: i. Retest passes. ii. Retest fails. iii. New defect or defects are introduced. iv. New defect or defects are revealed due to masking problem. v. Retest passes but fix doesn`t meet customer expectation. a) i, ii, iii, iv are TRUE, but v is FALSE b) i, ii, iii, iv and v are TRUE c) i, ii, iv, v are TRUE, but iii is FALSE d) i, iii, iv, v are TRUE, but ii is FALSE