ISTQB-Fundamentals
报名
我在官网exam provider名单里面找考试平台。有个国内的平台但是只有中文考试+线下考。我想选英文的为之后工作做准备,现在上班也不好专门请假,所以得找能线上考试的平台。
atsqa是面向美国的考试,考完了还可以加入一个名单,应该对找工作有用。如果是在https://atsqa.org/ 上面报名线上考试,ID名字必须按照first name last name的顺序,也就是李四要写成 四 李
。但是因为考试软件登入的时候我的网络总是卡在那里,使用考试软件的时候也不能有后台网络的软件,所以只好换平台报名了。
最后我用的gasq,主要面向欧洲,语言还可选德语法语。我邮件问了客服国内考试会不会有网络问题,也试了sample可以不用网络代理软件就登陆用,加上我之后又去欧洲工作的打算,这个平台很合适🎉。
最近看到的费曼学习法的分享,所以想用回答问题的方式记一下笔记。
Introduction
CTFL
- 60 minutes, 40 questions
- 15 plus minutes
- passing score - 26+
Syllabus
- Fundamentals of Testing
- Testing Throughout the Software Development Life Cycle
- Static Testing
- Test Analysis & Design
- Managing The Test Activities
- Test Tool
K Levels
- K1 - Remember
- K2 - Understand
- K3 - Apply
- K4 - Analyze (not in fundamental level)
What is testing?
- evaluate products: requirement, user story, design, code
- trigger failures, find defects
- requirement
- contractual, legal, regulatory requirements
- test object is complete, work as expected
- provide information for stakeholders
- reduce risk, build confidence
testing | behavior | debugging | subsequent test |
---|---|---|---|
dynamic | trigger/cause failures | 1. reproduction of a failure 2. find the root cause 3. fix | confirmation - whether resolved regression - whether cause failures in other parts |
static | find defects | removing the defects |
- Simply put, verification - static testing, validation - dynamic testing
- verification answers the question: are we doing in the right way? i.e. review the design doc
- validation: use/execute the product like a user to check whether it acts like we expected
Why is testing necessary?
- cost-effective way to detect defects
- identify defects early in development process
- reduce the cost of fixing them
- evaluate the quality at various stage
- understanding of users’ needs
- compliance with contractual, legal, regulatory standards
- test is a form of QC
- QC: aim to find defects
- i.e. checking if a cake tastes good
- QA: improve process and standards to prevent defects
- i.e. is the recipe and cooking process right ?
- if you follow the right steps then the cake should turn out great
- Errors are human mistakes, i.e. a developer misunderstands a requirement and writes incorrect code
- Defects (also called bug, faults): errors introduce a defect in the product. A defect might lead to a failure. Some defects may never cause failures during normal operation.
- Failures: doesn’t behave as expected, caused by a defect or bad internet
- a root cause is the fundamental reason
- if we identify the underlying issue that caused the defect and fix it, we can prevent similar failures happening again or we can reduce the frequency
What are the seven testing principles?
- Testing can demonstrate that defects are present: When you run tests, you may find defects or issues with the software, proving that something isn’t working as expected.
- Testing cannot prove the software is defect-free: Even if a test passes or no defects are found, this doesn’t guarantee that the software is perfect. There might still be undiscovered defects lurking in other parts of the system or in scenarios not covered by the tests. Essentially, you can never fully prove that there are no defects — you can only reduce the likelihood of their existence.
Testing every possible input, condition, or path through the software would require an unrealistic amount of time, effort, and resources. It’s not feasible to test all combinations, especially in complex systems.
Instead, we can focus on the most critical parts of the software based on potential risks.
Early testing: start the testing activities as early as possible in the software development lifecycle, even during the requirements and design phases.
Why?
- Reduces the cost of fixing defects: The earlier a defect is identified, the cheaper it is to fix. If defects are found later in the development process or after deployment, they are typically much more costly to correct.
- Prevents subsequent defects: Early defects can lead to other issues down the line. By catching them early, you prevent cascading defects in later stages of development.
Pareto Principle, where a small number of components are responsible for the majority of defects.
- These components might be more complex, less understood, or more frequently changed, making them prone to errors.
- By recognizing these defect clusters, testing efforts can be prioritized and focused on these high-risk areas to catch the most critical issues.
This principle is important for risk-based testing because it helps testers allocate resources more effectively.
Tests wear out: If you’re running the same regression tests without updating them for new features or risks, the chances of finding new issues decrease.
- Diminishing returns: the tests are targeting the same functionality that has already been validated.
- Need for modification: To continue finding defects, tests need to be modified or new tests must be created. This ensures that previously untested parts of the software or newly introduced changes are covered.
Testing approach, methods, and activities vary based on the specific circumstances of the project.
why?
- Different needs: Testing strategies will vary depending on the business domain, the criticality of the system, market needs, or legal regulations. For instance, software with higher risks (like financial software) may need more thorough testing.
- Done within an organization: we have limited time, budget and resources; company has policies and practices; SDLC has different development methods, which will decide when and how to test;
- Done by people: the tools we use, the skills and experience we have differ…
Just because no defects were found during verification, it does not mean the system will be successful or meet the users’ needs.
- Verification ensures the system is built according to the specifications, but it doesn’t guarantee that the software will meet the users’ actual needs or perform well in real-world conditions.
- Even if all specified requirements are met and no defects are found during testing, the product might still fail to satisfy user expectations or business objectives. This is where validation becomes critical.
What are the key test activities and testware?
- Test Planning:
- defining the test objectives
- selecting the best approach to meet those objectives within the constraints
- identifying test levels, types, and techniques, and creating the test schedule
- Test Monitoring and Control:
- checking and taking actions to ensure the planned activities are being completed on time and within budget.
- Test Analysis:
- what to test?
- AC: acceptance criteria
- Test Design:
- how to test?
- test data/environment requirements
- identify required infrastructure and tools
- test cases
- Test Implementation:
- create test scripts
- everything is organized and ready for execution: test environment set up
- Test Execution:
- Tests are actually run, either manually or automatically.
- Test results are logged, and the actual results are compared to expected outcomes.
- Any anomalies or defects are reported for further investigation.
- Test Completion:
- released
- test completion report
- backlog
- Ensures Coverage:
- Traceability helps confirm that all requirements or design elements are covered by corresponding test cases. This ensures that every aspect of the system has been tested and nothing is missed.
- Evaluates Residual Risk:
- By linking test cases to risks and defects, traceability helps assess the level of residual risk in the system after testing. You can see which areas are still potentially problematic.
- Impact Analysis:
- When changes are made to the system (like new features or bug fixes), traceability helps quickly identify which test cases need to be updated or re-executed. This ensures that the impact of changes is fully understood and tested.
- Supports Audits and Governance:
- Good traceability allows you to show that all required testing activities were performed, which is often needed for audits or compliance with regulatory standards.
- Improves Communication:
- Traceability makes it easier to communicate the status of testing to stakeholders by linking test results directly to requirements or business goals. It provides a clear view of what has been tested and what hasn’t.
What are the key roles in testing?
- test manager
- takes overall responsibility for the test process, test team and leadership of the test activities
- test planning, test monitoring and control and test completion
- tester
- technical aspect
- test analysis, test design, test implementation and test execution
Everyone is responsible for quality. Collaborate and communicate with team members: business representatives / developers, create acceptance test, test strategy, test approach …
- to recognize different kinds of failures and defects compared to developers because of their different backgrounds, technical perspectives, and biases
- to verify, challenge, or disprove assumptions made by stakeholders during specification and implementation of the system
- Testing knowledge (to increase effectiveness of testing, e.g., by using test techniques)
- Thoroughness, carefulness, curiosity, attention to details, being methodical (to identify defects, especially the ones that are difficult to find)
- Good communication skills, active listening, being a team player (to interact effectively with all stakeholders, to convey information to others, to be understood, and to report and discuss defects)
- Analytical thinking, critical thinking, creativity (to increase effectiveness of testing)
- Technical knowledge (to increase efficiency of testing, e.g., by using appropriate test tools)
- Domain knowledge (to be able to understand and to communicate with end users/business representatives)
Reference
油管参考课程: https://www.youtube.com/watch?v=wp-JZWLPuWE&list=PLj5VKaW115t0LT-7DICjHkGuxdTEqFI91&index=4
gasq报名网站: https://www.gasq.org/en/certification/online-at-home-exams.html#article-4909
官网syllable、sample下载: https://www.istqb.org/certifications/certified-tester-foundation-level