Which of the following is a risk that continuous integration introduces?
Teams sometimes over-rely on unit tests and exclude some important system and acceptance tests.
Testers sometimes have too many builds to test, which reduces the quality of testing.
Teams no longer have the ability to run manual tests, as all tests must be automated.
Developer's workload is increased, which can result in a reduction of output.
Continuous integration is a practice of integrating code changes frequently and automatically into a shared repository, and running automated tests to verify the integration. Continuous integration can introduce some risks to the testing process, such as:
During a retrospective, which of the following items would be the LEAST effective to generate discussions on process improvement?
The build process was slow and this often caused delays waiting for the build to complete.
For the last sprint the estimated and actual effort were much higher than the team capacity.
The automation tests failed frequently without any logs to help in debugging the failure reason.
One of the testers was regarded as being both disruptive and lazy and did not contribute to team success.
According to the ISTQB Tester Foundation Level Agile Tester syllabus, a retrospective is a meeting held at the end of each iteration or release, where the agile team reflects on what went well and what can be improved in their processes, practices, and interactions. The purpose of a retrospective is to identify and implement actions for continuous improvement, and to foster a culture of learning and collaboration. Therefore, the items that would be the most effective to generate discussions on process improvement are those that are related to the team’s performance, challenges, feedback, and suggestions. Option D is the least effective item to generate discussions on process improvement, as it is a personal attack on one of the team members, and it does not offer any constructive feedback or solution. This kind of item can create a negative and hostile atmosphere in the retrospective, and damage the trust and respect among the team members. Option A is an effective item to generate discussions on processimprovement, as it identifies a problem with the build process that affects the team’s efficiency and quality, and it can lead to finding ways to optimize the build process or to mitigate the delays. Option B is also an effective item to generate discussions on process improvement, as it reveals a discrepancy between the team’s estimation and actual effort, and it can lead to analyzing the root causes of the deviation and to improving the estimation techniques or the team’s capacity. Option C is also an effective item to generate discussions on process improvement, as it highlights a weakness in the automation tests that hinders the team’s ability to debug and fix the failures, and it can lead to enhancing the automation tests with better logging mechanisms or to reviewing the automation strategy. References: ISTQB Tester Foundation Level Agile Tester syllabus, section 2.1.1, page 14; ISTQB Tester Foundation Level Agile Tester syllabus, section 2.1.2, page 15; ISTQB Tester Foundation Level Agile Tester syllabus, section 2.2.1, page 16; ISTQB Tester Foundation Level Agile Tester syllabus, section 2.2.2, page 17.
You are working in a software development company which, for many years, used a sequential development model and was organized into separate departments for each functional group (e.g. business analysts, developers, testers) located within their own office space. Your organization has recently changed to a SCRUM agile framework. Which of the following is an important organizational and behavioral best practice for a tester in the SCRUM team that should have also been practiced when using the sequential model?
Resilient testing means that the testing process is capable of dealing with rapid changes throughout the development process with test plans being updated during each iteration.
Credibility means that the tester must share information with the stakeholders about the test process so that they find the selected test strategy and testing activities trustworthy.
Cross-functional teamwork means that all team members contribute to testing in various ways. For example, involving people with the test strategy, test planning and execution as well as test reporting.
Co-located teamwork means that all team members, including developers and testers, must sit together in the same office, so they can quickly communicate face-to-face.
Cross-functional teamwork is an important organizational and behavioral best practice for a tester in the SCRUM team that should have also been practiced when using the sequential model. Cross-functional teamwork means that all team members, regardless of their functional roles, collaborate and share their skills and knowledge to achieve a common goal. In the context of testing, this means that testing is not seen as a separate activity or phase, but as an integral part of the development process. All team members contribute to testing in various ways, such as:
Which of the following is the BEST way for a test team to keep its independence when working in an Agile development environment?
Share the Test Strategy with the Agile development team, but not the details of the Test Cases.
Locate the team that develops the test automation framework in a different location to the Agile development team.
Assign testers to be members of the Agile team, but ensure the testers report to a different manager than the developers.
Co-locate only some of the testers with the Agile development team, while the rest of the testers are in a different location.
 According to the ISTQB Tester Foundation Level Agile Tester syllabus, one of the key principles of agile testing is that testers are integrated into the agile team and work closely with developers and other stakeholders. However, this does not mean that testers lose their independence or objectivity. Testers should still be able to provide an unbiased view of the quality of the software and challenge the assumptions and decisions made by the team. Therefore, option C is the best way for a test team to keep its independence when working in an agile development environment, as it allows testers to be part of the agile team, but also report to a different manager than the developers, who can support their professional development and ensure their independence. Option A is not a good way to keep independence, as it limits the transparency and collaboration between testers and developers, which are essential for agile testing. Option B is also not a good way to keep independence, as it creates a physical and organizational barrier between the test automation team and the agile development team, which can hinder communication and feedback. Option D is also not a good way to keep independence, as it creates an inconsistency and imbalance between the testers who are co-located with the agile development team and those who are not, which can affect the quality and efficiency of the testing process. References: ISTQB Tester Foundation Level Agile Tester syllabus, section 1.2.1, page 91; ISTQB Tester Foundation Level Agile Tester syllabus, section 1.2.2, page 101; ISTQB Tester Foundation Level Agile Tester syllabus, section 2.1.1, page 141; ISTQB Tester Foundation Level Agile Tester syllabus, section 2.2.1, page 161; ISTQB Tester Foundation Level Agile Tester syllabus, section 2.2.2, page 171.
Consider an online application that allows registered users to pay the annual car tax based on the vehicle’s engine power in kW. Given the following user story:
"As a customer I need the online application to calculate the annual car tax amount that I need to pay for my car:
* If the power of the vehicle is less than 20 kW, then the annual car tax is free
* If the power of the vehicle is more or equal than 20 kW but less or equal than 150 kW, then the annual car tax is 250 Euros
* If the power of the vehicle is more than 150 kW, then the annual car tax is 750 Euros"
What is the MOST suitable use of a black-box test design technique for this user story?
Decision table testing. Test the following conditions:
Conditions=registered user logged in; inserted power of the vehicle=20kW;
Action=Car tax paid
State transition testing. Test the transitions between the following states:
logging in, inserting the power of the vehicle, making payment, logging out.
Equivalence partitioning. Test the annual car tax value for the following partitions:
[power of the vehicle<20 kW ; 20 kW ≤power of the vehicles≤150 kW; power of the vehicle>150 kW]
Use case testing
Test the following use case (Actor=registered user):
Pre-condition=registered user logged in
Scenario=registered user inserts the power of the vehicle, making payment and logs out
Post-condition=car tax paid and registered user logged out
 Equivalence partitioning is a black-box test design technique that divides the input domain of a system into classes of data from which test cases can be derived. The idea is that if a system works correctly for a representative value from an equivalence class, it will work correctly for all values from that class, and vice versa. Equivalence partitioning reduces the number of test cases by eliminating redundant ones. For the given user story, equivalence partitioning is the most suitable technique because it can test the different outcomes of the annual car tax calculation based on the power of the vehicle, which is the main input for the system. By testing one value from each partition, the tester can verify the functionality of the system and detect any errors in the calculation logic. The other techniques are not as suitable because they do not focus on the inputdomain of the system, but rather on the conditions, transitions, or scenarios that are not directly related to the user story. References:
Why is regression of software a high risk in agile projects?
Test-driven development means that existing functionality is not considered.
Test automation can cause regression of software in the test environment.
Regression is built into software as a safeguard against unexpected failures.
There is code churn due to change in business needs over several sprints.
Regression of software is the risk that a change in one part of the software causes a defect in another part of the software that was previously working correctly. Regression of software is a high risk in agile projects because there is code churn due to change in business needs over several sprints. Code churn is the amount of code that is added, modified, or deleted in a software project over time. Code churn can indicate the volatility and complexity of the software, and the frequency and magnitude of the changes. In agile projects, code churn can be high because the business needs and the user requirements can change rapidly and frequently over several sprints, which are short iterations of development and testing. This means that the software is constantly evolving and adapting to the changing needs, and that the existing functionality and quality may be affected by the new or modified code. Therefore, regression of software is a high risk in agile projects, and it requires effective testing strategies and techniques to prevent, detect, and fix the regression defects. References: ISTQB® Foundation Level Agile Tester Syllabus1, Section 2.3.2, page 17; ISTQB® Glossary of Testing Terms2, version 4.0, pages 36 and 55
Which one of the following is a testable acceptance criterion?
The solution shall support business processes.
The system shall be easy to use.
The response time to confirm a customer submission must not exceed 5 seconds.
The tools for testing are tested before use and are meeting the requirements.
A testable acceptance criterion is a condition that can be verified or measured objectively by the tester, customer, or stakeholder. It should be specific, measurable, achievable, relevant, and time-bound (SMART). A testable acceptance criterion should also be written from the user’s perspective, achievable within the sprint, and written before development begins1.
Among the four options, only option C meets these criteria. It is specific (the response time to confirm a customer submission), measurable (must not exceed 5 seconds), achievable (within the technical and business constraints), relevant (to the user’s needs and expectations), and time-bound (must be met in every sprint). It is also written from the user’s perspective, testable (by measuring the response time), and written before development (as part of the user story definition).
Option A is not testable because it is vague and subjective. What does it mean to support business processes? How can this be verified or measured? Option B is also not testable because it is subjective and ambiguous. What does it mean to be easy to use? How can this be verified or measured? Option D is not testable because it is not written from the user’s perspective. It is an internal quality criterion for the testing team, not an acceptance criterion for the product or feature.
References:Â ISTQB Foundation Level Agile Tester Syllabus, Section 2.3.2, page 182; ISTQB Foundation Level Agile Tester Sample Exam Questions, Question 2.3.2-2, page 93
You are working on an Agile project and have been asked to implement exploratory testing for the current sprint. Which one of the following is a correct approach to adopt?
Allocate independent testers to design exploratory tests using test charters in time boxed sessions. Plan to run all sessions in parallel with each session lasting more than 5hours.
Ask experienced testers to try and find new defects by using the system without the constraint of documentation and tools.
Use testers who have not been involved in the sprint to write new test cases from the user stories. These test cases are then executed in a time boxed session for the sprint.
Ask experienced testers to prepare test charters for time boxed sessions lasting no more than 2hours. Tests should be designed and executed within each session using heuristics, creativity and intuition.
Exploratory testing is a testing approach that emphasizes learning, creativity, and adaptability. It involves simultaneous test design and test execution, where the tester uses heuristics, intuition, and experience to explore the system under test and discover new information12. Exploratory testing can be performed in an Agile project to complement other testing activities, such as test-driven development, behavior-driven development, and acceptance test-driven development12.
The correct approach to adopt for exploratory testing in an Agile project is D, as it follows the best practices for exploratory testing1234:
The incorrect approaches to adopt for exploratory testing in an Agile project are A, B, and C, as they violate the principles and practices of exploratory testing1234:
References: ISTQB Foundation Level Agile Tester Extension Syllabus1, page 23; ISTQB Agile Tester Sample Exam2, question 19; Exploratory Testing; ISTQB Agile Tester #56 – What is Exploratory testing?
What is the definition of agile software development?
Testing carried out informally where no formal test preparation or execution takes place, no recognized test design technique is used and there are no expectations for results.
A group of software development methodologies based on iterative incremental development with self-organizing cross-functional teams who cooperate to define requirements and to implement the solution.
A framework to describe the software development lifecycle activities from requirements specification to maintenance where test planning of the various test levels is done as soon as the test basis is ready
A way of developing software where the test cases are developed, and often automated, before the software under test is developed.
 Agile software development is a term that encompasses a group of software development methodologies that are based on iterative incremental development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. Agile methods promote adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourage rapid and flexible response to change. Some examples of agile methods are Scrum, Extreme Programming (XP), Kanban, and Lean Software Development. References:
TESTED 21 Nov 2024