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 | 3. 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.
- A small number of components or parts of the system usually contain the highest concentration 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 when repeated because they become less effective at finding new defects over time.
- Diminishing returns: When the same tests are executed repeatedly, especially in stable areas of the software, they are likely to uncover fewer new defects. This is because 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.
- Example: If you’re running the same regression tests without updating them for new features or risks, the chances of finding new issues decrease.
Testing approach, methods, and activities vary based on the specific circumstances of the project.
why?
- Different projects have different needs: The type of software (e.g., critical systems like healthcare vs. a mobile app) greatly influences the level of testing required. For example, safety-critical systems require more rigorous and formal testing than less critical applications.
- Business domain and risks: 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.
- Development approach: The choice of software development lifecycle (SDLC) — whether it’s Agile, Waterfall, or DevOps — will also impact how and when testing is conducted.
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:
- Involves defining the test objectives and selecting the best approach to meet those objectives within the constraints of time, resources, and project scope. Test planning includes identifying test levels, types, and techniques, and creating the test schedule.
- Test Monitoring and Control:
- Monitoring involves tracking the progress of test activities against the plan. It includes checking if the planned activities are being completed on time and within budget.
- Control involves taking corrective actions if testing goes off track. It ensures that testing stays aligned with the objectives and constraints.
- Test Analysis:
- what to test?
- analyze the test basis to identify testable features
- test conditions, risks
- assess the testability
- Test Design:
- how to test?
- a guide to specify test case input
- test data requirements, design test environment, identify required infrastructure and tools
- Test Implementation:
- Test procedures are arranged.
- This is the stage where everything is organized and ready for execution.
- Test Execution:
- During this phase, 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:
- Once testing is complete, activities include ensuring all test documentation is finalized, defects are resolved, test environments are cleaned up, and lessons learned are documented. A test completion report is often produced to summarize the outcomes.
- 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
- mainly focused on the activities of test planning, test monitoring and control and test completion
- tester
- technical aspect
- mainly focused on the activities of test analysis, test design, test implementation and test execution
- independent testers are likely to recognize different kinds of failures and defects compared to developers because of their different backgrounds, technical perspectives, and biases
- an independent tester can 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
因为整理笔记很费时间,会导致我的严重拖延以及积极性,加上查到其他人备考时间大概是3天到2周,所以决定放弃备考一个月的计划,在两周内快速解决掉这个考试,直接看视频做题。