What is the ISTQB?
The International Software Testing Qualifications Board (ISTQB) is a software testing qualification certification organization that operates internationally. Founded in Edinburgh in November 2002, ISTQB is a non-profit association legally registered in Belgium.
Fundamentals Testing
What is testing?
Systematic exploration of a component or system with the main aim of looking for and reporting defects. It's software exercising process to verify that it satisfies specified requirements and detect faults.
What should have a tester?
Curiosity, professional pessimism, critical eye, attention to details, good communication with developers and error guessing.
What should have a tester?
Curiosity, professional pessimism, critical eye, attention to details, good communication with developers and error guessing.
Why important the testing is?
The bugs can cause loss of: money, reputation, time and loss of life. Testing system and documentation can help to reduce the risk of problems occurring during operation and contribute to the quality of the software system.
Because the software is likely to have faults, and these can be very expensive.
What is the difference between error, defect and failure?
The error is a mistake caused by the software developer, the defect is a bug found by the tester and the failure occurs in production when the system or application is running.
Which is the difference between Static and Dynamic Testing?
The Static Testing is where the code is not exercised, involves techniques such as documents review, remove ambiguities or errors. The Dynamic Testing it the executing of the program or system under testing with some test data.
Which are the seven testing principles?
- Testing shows presence of defects.
- Exhaustive testing is impossible.
- Early testing.
- Defect clustering.
- Pesticide paradox.
- Testing is context dependent.
- Absence-of-errors fallacy.
What is the fundamental test process?
- Planning and Control: test planning (defining the objectives of testing) and test control (comparing actual progress against the plan, and reporting the status).
- Analysis and Design: it's the activity during which general testing objectives are transformed into tangible test conditions and test cases.
- Implementation and Execution: It's the activity where test procedures or scripts are specified by combining the test cases in a particular order (prioritizing) and including any other information needed for test execution, the environment is set up and the tests are run. The actual results need to be logged and compared to the expected results, after fixing the bug retest and doing regressions.
- Evaluating Exit Criteria and Reporting: it's the activity where test execution is assessed against the defined objectives, determining if more tests are needed or if the specified exit criteria need amending. Writing a Test Summary to the stakeholders would say what was planned, what was achieve, highlight any differences and particularly, things that were not tested.
- Test Closure: It occurs at project milestones such as when a software system is released, a test project is completed (or cancelled), or a maintenance release has been completed. Making sure that everything is finalized, checking which planned deliverable have been delivered, make sure we delete any confidential data.
Testing throughout the Software Life Cycle
What is the difference between verification and validation?
What are the testing levels?
The Verification determines whether the work product satisfy the conditions imposed in the beginning of the phase. The Validation determines the correctness of the work product, respect to the user needs and requirements.
What are the testing levels?
- Unit (Component) Testing: Usually done by programmers, the unit testing is intended to ensure that the code written for the unit meets its specification, prior to its integration with other units.
- Integration Testing: Done by designers, analysts, or specialist integration testers. Testing interface and communication between components.
- System Testing: Done by independent test group. It is concerned with the behavior of a whole system/product, the test environment should correspond to the final target or production environment as much as possible to minimize the risk of environment-specific failures not being found in testing.
- Acceptance Testing: Acceptance testing is often the responsibility of the customers or users of a system, the goal is to establish confidence with the system, finding defects is not the main focus and may occur at various times in the life cycle.
Functional testing
- The functions are “what” the system does.
- May be described in work products such as a requirements specification, use cases, or a functional specification.
- Types of functional testing include:
- Security testing: investigates the functions relating to detection of threats, such as viruses, from malicious outsiders.
- Interoperability testing: evaluates the capability of the software product to interact with one or more specified components or systems.
Non-functional testing
- It's the testing of “how” the system works.
- Includes, but is not limited to: performance testing (how many users connect), load testing (single transaction so many times), stress testing, usability testing, maintainability testing, reliability testing and portability testing.
Structural testing
- Also known as white box testing.
- Coverage is the extent that a structure has been exercised by a testing, expressed as a percentage of the items being covered.
- If coverage is not 100%, then more tests may be designed to test those items that were missed to increase coverage.
Testing related to changes / Confirmation testing
- After a defect is detected and fixed, the software should be re-tested to confirm that the original defect has been successfully removed. This is called confirmation testing or re-testing.
- Regression testing is the repeated testing of an already tested program, after modification, to discover any defects introduced or uncovered as a result of the changes.
*We can perform all the Test Types at any Test Level
How to do maintenance testing?
- Extensive regression testing.
- What could this change have an impact on?.
- How important is a fault in the impacted area?.
- Test what has been affected: most important affected areas and areas most likely to be affected.