Fundamentals of Testing Flashcards
Software testing evaluates functionality, distinguishes it from debugging, ensures quality, and clarifies roles and principles, emphasizing the importance of thorough testing practices and the necessary skills for effective implementation.
Which of the following statements describe a valid test objective?
a) To prove that there are no unfixed defects in the system under test
b) To prove that there will be no failures after the implementation of the system into production
c) To reduce the risk level of the test object and to build confidence in the quality level
d) To verify that there are no untested combinations of inputs
Select ONE option.
**a) Is not correct. **It is impossible to prove that there are no defects anymore in the system under test. See testing principle 1
b) Is not correct. See testing principle 7
c) Is correct. Testing finds defects and failures which reduces the
level of risk and at the same time gives more confidence in the quality level of the test object
d) Is not correct. It is impossible to test all combinations of inputs (see testing principle 2)
Which of the following options shows an example of test activities that contribute to success?
a) Having testers involved during various software development lifecycle (SDLC) activities will help to detect defects in work products
b) Testers try not to disturb the developers while coding, so that the developers write better code
c) Testers collaborating with end users help to improve the quality of defect reports during component integration and system testing
d) Certified testers will design much better test cases than non-certified testers
Select ONE option.
a) Is correct. It is important that testers are involved from the beginning of the software development lifecycle (SDLC). It will increase understanding of design decisions and will detect defects early.
**b) Is not correct. **Both developers and testers will have more understanding of each other’s work products and how to test the code
c) Is not correct. End users will not help the testers in increasing the quality of defect reports; also, users usually do not participate in low-level testing levels like integration testing
d) Is not correct. Being certified does not automatically mean that the tester will be better in test design
You have been assigned as a tester to a team producing a new system incrementally. You have noticed that no changes have been made to the existing regression test cases for several iterations and no new regression defects were identified. Your manager is happy, but you are not. Which testing principle explains your skepticism?
a) Tests wear out
b) Absence-of-errors fallacy
c) Defects cluster together
d) Exhaustive testing is impossible
Select ONE option.
a) Is correct. This principle means that if the same tests are repeated over and over again, eventually these tests no longer find any new defects. This is probably why the tests all passed in this release as well
b) Is not correct. This principle says about the mistaken belief that just finding and fixing a large number of defects will ensure the success of a system
c) Is not correct. This principle says that a small number of components usually contain most of the defects
d) Is not correct. This principle states that testing all combinations
of inputs and preconditions is not feasible
You work in a team that develops a mobile application for food ordering. In the current iteration the team decided to implement the payment functionality.
Which of the following activities is a part of test analysis?
a) Estimating that testing the integration with the payment service will take 8 person-days
b) Deciding that the team should test if it is possible to properly share payment between many users
c) Using boundary value analysis (BVA) to derive the test data for the test cases that check the correct payment processing for the minimum allowed amount to be paid
d) Analyzing the discrepancy between the actual result and expected result after executing a test case that checks the process of payment with a credit card, and reporting a defect
Select ONE option.
a) Is not correct. Estimating the test effort is part of test planning
b) Is correct. This is an example of defining test conditions which is a part of test analysis
c) Is not correct. Using test techniques to derive coverage items is a part of test design
d) Is not correct. Reporting defects found during dynamic testing is a part of test execution
Which of the following factors (i-v) have SIGNIFICANT influence on the test process?
i. The SDLC
ii. The number of defects detected in previous projects
iii. The identified product risks
iv. New regulatory requirements forcing formal white-box testing
v. The test environment setup
a) i, ii have significant influence
b) i, iii, iv have significant influence
c) ii, iv, v have significant influence
d) iii, v have significant influence
Select ONE option.
i. Is true. The SDLC has an influence on the test process
ii. Is false. The number of defects detected in previous projects may have some influence, but this is not as significant as i, iii and iv
iii. Is true. The identified product risks are one of the most important factors influencing the test process
iv. Is true. Regulatory requirements are important factors influencing the test process
v. Is false. The test environment has no significant influence on the test process
Thus:
a) Is not correct
b) Is correct
c) Is not correct
d) Is not correct
Which TWO of the following tasks belong MAINLY to a testing role?
a) Configure test environments
b) Maintain the product backlog
c) Design solutions to new requirements
d) Create the test plan
e) Report on achieved coverage
Select TWO options.
a) Is correct. This is done by the testers
b) Is not correct. The product backlog is built and maintained by the product owner
**c) Is not correct. **This is done by the development team
d) Is not correct. This is a managerial role
e) Is correct. This is done by the testers
Which of the following skills (i-v) are the MOST important skills of a tester?
i. Having domain knowledge
ii. Creating a product vision
iii. Being a good team player
iv. Planning and organizing the work of the team
v. Critical thinking
a) ii and iv are important
b) i, iii and v are important
c) i, ii and v are important
d) iii and iv are important
Select ONE option.
i. Is true. Having domain knowledge is an important tester skill
ii. Is false. This is a task of the business analyst together with the business representative
iii. Is true. Being a good team player is an important skill
iv. Is false. Planning and organizing the work of the team is a task
of the test manager or, mostly in an Agile software development project, the whole team and not just the tester
v. Is true. Critical thinking is one of the most important skills of testers
Thus:
a) Is not correct
b) Is correct
c) Is not correct
d) Is not correct
How is the whole team approach present in the interactions between testers and business representatives?
a) Business representatives decide on test automation approaches
b) Testers help business representatives to define test strategy
c) Business representatives are not part of the whole team approach
d) Testers help business representatives to create suitable acceptance tests
Select ONE option.
a) Is not correct. The test automation approach is defined by testers with the help of developers and business representatives
b) Is not correct. The test strategy is decided in collaboration with the developers
c) Is not correct. Testers, developers, and business representatives are part of the whole team approach
d) Is correct. Testers will work closely with business representatives to ensure that the desired quality levels are achieved. This includes supporting and collaborating with them to help them create suitable acceptance tests
Which of the following is an example of why testing is necessary?
a) Dynamic testing increases quality by causing test objects to fail in ways that could never be achieved by the users
b) Static testing is used by developers to identify failures in their program code earlier than can be achieved through dynamic testing
c) Static analysis provides evidence to customers that the elements of the system that provide no outputs are fit for release
d) Reviews increase the quality of requirements specifications and lead to fewer changes being needed in derived work products
Select ONE option.
a) Is not correct. It is often possible to use dynamic testing to cause a test object to fail in ways that could never be achieved by the users, such as by using fault injection. However, if the failure can never occur with real end users, then identifying it is not especially valuable as testing is ultimately aimed at improving the work product for the end users. Spending time testing for failures that cannot occur with real users is not an efficient use of a tester’s time
b) Is not correct. Static testing in the form of static analysis is used by developers to identify defects in their program code earlier than can be achieved through dynamic testing. Note, however, that static testing (and static analysis) is used to detect defects, not failures, which are found by dynamic testing. Thus it is the use of the term ‘failures’ that makes this an incorrect option
**c) Is not correct. **Static analysis directly detects anomalies in code, which may be defects, and this is normally for the developer, not the customer. The provision of evidence for release by the use of static analysis of elements that provide no output is nonsense
d) Is correct. Reviews are a form of static testing that can be
applied from the very start of the software development lifecycle and are used to find defects that can be removed before subsequent development activities waste effort on faulty requirements. If the defects are not detected and removed early on, then when the defect is found derived work products, such as the design and code, will need to be changed as they were based on faulty requirements
Which of the following statements about quality assurance (QA) and/or quality control (QC) is correct?
a) QA is performed as part of testing
b) Testing is performed as part of QC
c) Testing is another term for QC
d) Testing is performed as part of QA
Select ONE option.
a) Is not correct. QA concentrates on process improvement and implementation, using a preventive approach to avoid errors and defects, while testing is a form of QC that is used to detect defects
**b) Is correct. ** QC aims to achieve appropriate levels of quality by focusing on identifying and correcting product defects. Testing is a significant part of QC and helps to uncover these defects
c) Is not correct. Although testing is a significant part of QC and helps to uncover defects, other (non-testing) techniques utilized in QC include formal methods like model checking and proof of correctness, as well as simulation and prototyping
d) Is not correct. QA concentrates on process improvement and implementation, using a preventive approach to avoid errors and defects, while testing is a form of QC that is used to detect defects
One of the ‘principles of testing’ states that exhaustive testing is impossible. Which of the following is an example of addressing this principle in practice?
a) Creating test cases that cover every possible specified output
b) Documenting all possible test input variations and prioritizing
these based on importance
c) Starting testing as early as possible with reviews and other static testing approaches
d) Using equivalence partitioning and boundary value analysis to generate test cases
Select ONE option.
The ‘exhaustive testing is impossible’ principle is concerned with the fact that it is not feasible to test every possible variation of test inputs in all different circumstances, except in trivial cases. Instead, testing utilizes test techniques, test case prioritization, and risk-based testing to sample from the set of possibilities and focus testing efforts.
a) Is not correct. The principle states that it is not feasible to test everything except in trivial cases. Testing everything would require testing every possible variation of test inputs in all different circumstances, which is generally infeasible as there will be a practically infinite number. Testing every possible specified output will not address this problem as the relationship between inputs and specified outputs can be different for each test object. Sometimes there may be a practically infinite number of possible specified outputs (e.g., when there are several variables representing real numbers), whereas at other times there may be just two specified outputs, such as with a single variable that can be either true or false
b) Is not correct. The principle states that it is not feasible to test every possible variation of test inputs in all different circumstances. This is because for non-trivial systems there is a practically infinite number. Therefore, in practice, documenting all possible test input variations would be impractical as it would take an infinite length of time
c) Is not correct. Starting testing as early as possible with reviews and other static testing approaches will not address the problem of there being too many possible test cases. The ‘early testing saves time and money’ principle is concerned with fixing defects early on to prevent the occurrence of subsequent defects in derived work products, thereby reducing costs and the likelihood of failures
d) Is correct. The use of equivalence partitioning and boundary value analysis to generate test cases is one way to address the principle as these test techniques provide a systematic way to derive a finite subset of all possible test cases
Which of the following is MOST likely to impact how testing is performed for a given test object?
a) The average level of experience of the organization’s marketing team
b) The knowledge of users that a new system is being developed for them
c) The number of years’ experience of the members of the test team
d) The end user’s organizational structure for a commercial music streaming application
Select ONE option.
**a) Is not correct. **The organization’s marketing team is unlikely to perform much testing (although in some organizations they may be involved with acceptance testing), so their average level of experience (most of which would be in marketing) is not likely to impact how testing is performed for a given test object
b) Is not correct. The level of knowledge of users that a new system is being built for them is unlikely to affect how testing is performed. Any user involvement that could affect how testing is performed is more likely to be as a result of decisions made by the testers, customer and project manager
c) Is correct. The number of years’ experience of the members of the performance testing team will help to determine the capabilities and knowledge (e.g., of different tools and defect types) that the team members will apply when they are testing
d) Is not correct. The organizational structure of the different end users (who may be varied) will change between users. So, it may not even be known when the application is being tested, and the end user’s organizational structure can thus have little effect on how the testing is performed
Which test activity involves working with test data requirements, test conditions, test environment requirements and test cases?
a) Test design
b) Test execution
c) Test analysis
d) Test implementation
Select ONE option.
a) Is correct. Test design involves using test conditions to create test cases and other necessary testware, such as test data requirements and test charters for exploratory testing. Test environment requirements are also specified, including the necessary infrastructure and tools
**b) Is not correct. **Test execution involves executing test cases (as part of test procedures), however it does not directly cover the other testware mentioned in the question, such as test data requirements, test environment requirements and test conditions
c) Is not correct. Test analysis is used to identify the features that require testing. The test basis is analyzed and defined as test conditions, which are then prioritized along with related risks. While this activity involves working with test conditions, it does not cover the other testware mentioned in the question, such as test data requirements, test environment requirements and test cases
d) Is not correct. Test implementation includes the generation of test procedures, such as manual and automated test scripts, which are created from test cases and may be assembled into test suites. Test procedures are prioritized and arranged in a test execution schedule. Test data is created, and the test environment built, and its set up verified. While this activity involves explicitly working with test cases, and may use test data requirements and test environment requirements to create test data and the test environment, it does not cover test conditions
Which of the following statements is a CORRECT example of the value of traceability?
a) Traceability between the mitigated risks and passing test cases provides a means of determining the level of residual risk
b) Traceability between user requirements and test execution results provides a means of measuring project progress against business goals
c) Traceability between testers and failing test cases provides a means of determining the skill level of the testers
d) Traceability between the identified risks and written test conditions provides a means of determining which risks are worth testing
Select ONE option.
a) Is not correct. Traceability between the mitigated risks and passing test cases provides little information, because to be mitigated (by testing) the risks would need to have a corresponding passing test case. To be able to assess residual risk, traceability between all risks and test results needs to be available, so that the risks that do not have a corresponding passing test can be identified as the residual risks
b) Is correct. Traceability between user requirements and test execution results provides an indication of which user requirements have been tested and so provides a means of measuring project progress (in the context of testing) against business goals
c) Is not correct. It is not clear that failing test cases provide an indication of tester skills any more than passing test cases. It would partly depend on the test objective (e.g., building confidence or causing failures). Also, such measurement of testers based on passing and failing test cases can be counter-productive as it could cause the testers to optimize their testing based on that metric rather than the test objective
d) Is not correct. Traceability between the identified risks and written test conditions provides a means of determining which further test conditions need to be written. Determining which risks are worth testing is part of risk management, and risk mitigation in particular
Which of the following is MOST likely to be an example of a tester using a generic skill when testing?
a) The tester’s deep knowledge of a variety of computer games meant that they got on well with one of the developers who was also into gaming
b) The tester was a former pilot and was better able to understand the acceptance criteria for the helicopter control system
c) The tester previously worked as a programmer and used their skills in this area to better communicate with the business analysts
d) The tester was very careful not to make mistakes when they methodically generated test cases prior to starting their exploratory testing session
Select ONE option.
a) Is not correct. Strong communication skills, active listening, and teamwork abilities enable a tester to interact effectively with all stakeholders, however a deep knowledge of a variety of computer games that allowed them to get on well with one developer is not an example of a generic skill useful to testers
b) Is correct. Domain knowledge that can be used to understand and communicate with end-users and business representatives is one of the generic skills required by testers. A tester with experience as a pilot would make them better able to appreciate the acceptance criteria for the helicopter control system
c) Is not correct. Although programming skills could be considered as technical knowledge which can increase efficiency when utilizing some test tools, it is unlikely that these skills would improve their communication with business analysts
d) Is not correct. Although thoroughness, attention to detail, curiosity, and a methodical approach to identifying hard-to-find defects are all useful generic skills for testers, it is doubtful they would be generating test cases prior to starting exploratory testing. This is because one of the main tenets of exploratory testing is that the test cases are generated during the testing, not scripted in advance