Skip to main content

ISTQB Foundation Level Summary



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.

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.

Why the testing is necessary?
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?
  1. Testing shows presence of defects.
  2. Exhaustive testing is impossible.
  3. Early testing.
  4. Defect clustering.
  5. Pesticide paradox.
  6. Testing is context dependent.
  7. Absence-of-errors fallacy.
What is the fundamental test process?
  1. Planning and Control: test planning (defining the objectives of testing) and test control (comparing actual progress against the plan, and reporting the status). 
  2. Analysis and Design: it's the activity during which general testing objectives are transformed into tangible test conditions and test cases.
  3. 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.
  4. 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.
  5. 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?
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? 
  1. 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.
  2. Integration Testing: Done by designers, analysts, or specialist integration testers. Testing interface and communication between components.
  3. 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.
  4. 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.
Test Types
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:
    1. Security testing: investigates the functions relating to detection of threats, such as viruses, from malicious outsiders.
    2. 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.

Popular posts from this blog

ISTQB - Foundation Level Agile Tester Recap

ISTQB - Foundation Level Agile Tester Recap This is a summary that will help you to approve the Agile Tester certification test. 1 - Agile Software Development 1.1 - The fundamentals of Agile Software Development  The Agile Manifesto has 4 values : - Individuals and interactions over processes and tools (people-centered) - Working software over big documentations (time to market advantage) - Customer collaboration over contract negotiation (customer requirements) - Responding to change over following plan (change is more important)   The Agile Manifesto has 12 principles : - Satisfy the customer with continuous delivery - Changing requirements - Deliver software frequently (few weeks or months) - Business people and developer must work together - Build projects around motivated individuals - Face to face conversation - Working software is the primary measure of progress - The team should maintain a constant pace indefinitely - Technical excellence and good design - Simplic

RasPI Assistant: Google Assistant + Dialogflow + Raspberry Pi

Would you like to control the TV using your voice without spend a lot of money? ... Amazing right?. So, in this post, I will teach you how to do that and more. Some of my dreams always have been control things without touch them, for example: the television, due to tired to raise the hand to change the channel. So ... let's create a device that can do this action automatically. What things will we need? First, I should understand the problem and be aware about it. For example: if we want to control a TV that is not smart, how will we do that? ... a possibility is to send infrared signals (IR) to transmit the events that the person's desire. Also, if I want that the device can hear me, I may need a microphone. Additionally, it should have a speaker to talk with the people. Further, I will need a database to save all the information, APIs that can help me with the smart logic and cheap electronic components like a Raspberry Pi , resistors, leds, wires an

How to create a simple Chatbot?

Developing an amazing Chatbot ... What is a Chatbot? First to understand how it works, you need to know how it was originated and some algorithms  like  the Natural Language Processing (NLP). It is another AI area, but it is around the language (usually written), it is the component that bridges the gap between human conversation and understanding programmed by a computer. NLP allows the computer to interpret the vast and complicated human language, understand it, process it, and effectively "speak", just like humans. Through the process, the machine has to understand all the jargon that is being using and developing or adapting with the ability to respond, as a human computer. NLP has to do with the creation of systems that process or "understand" the language to perform certain tasks, such as answering questions, analyzing the sentiment in a sentence, making translations between different languages, and another. In the past, the NLP involved a lot