Foundation Level 1 Flashcards
(39 cards)
Software testing
a set of activities to discover defects and evaluate the quality of software artifacts.
Test Objectives
- Evaluating work products such as requirements, user stories, designs, and code
- Ensuring required coverage of a test object
- Reducing the level of risk of inadequate software quality
- Verifying whether specified requirements have been fulfilled
- Verifying that a test object complies with contractual, legal, and regulatory requirements
- Providing information to stakeholders to allow them to make informed decisions
- Building confidence in the quality of the test object
- Validating whether the test object is complete and works as expected by the stakeholders
Debugging
concerned with finding causes of the failure (defects), analyzing these causes, and eliminating them
Typical debugging process
- Reproduction of a failure
- Diagnosis (finding the root cause)
- Fixing the cause
Quality control (QC)
a product-oriented, corrective approach that focuses on those activities supporting the achievement of appropriate levels of quality (Testing)
Quality assurance (QA)
a process-oriented, preventive approach that focuses on the implementation and improvement of processes
Test results in QA and QC
- In QC they are used to fix defects
- In QA they provide feedback on how well the development and test processes are performing
A root cause
a fundamental reason for the occurrence of a problem (e.g., a situation that leads to an error). Root causes are identified through root cause analysis, which is typically performed when a failure occurs or a defect is identified.
Errors, Defects, Failures
Human beings make errors (mistakes), which produce defects (faults, bugs), which in turn may result in failures
Testing principles
- Testing shows the presence, not the absence of defects
- Exhaustive testing is impossible
- Early testing saves time and money
- Defects cluster together
- Tests wear out
- Testing is context dependent.
- Absence-of-defects fallacy (In addition to verification, validation should also be carried out)
Test Activities and Tasks
often implemented iteratively or in parallel, need to be tailored to the system and the project
- Test planning
- Test monitoring and control
- Test analysis
- Test design
- Test implementation
- Test execution
- Test completion
The way the testing is carried out will depend on
- Stakeholders (needs, expectations, requirements, willingness to cooperate, etc.)
- Team members (skills, knowledge, level of experience, availability, training needs, etc.)
- Business domain (criticality of the test object, identified risks, market needs, specific legal regulations, etc.)
- Technical factors (type of software, product architecture, technology used, etc.)
- Project constraints (scope, time, budget, resources, etc.)
- Organizational factors (organizational structure, existing policies, practices used, etc.)
- Software development lifecycle (engineering practices, development methods, etc.)
- Tools (availability, usability, compliance, etc.)
Traceability
- provides information to assess product quality, process capability, and project progress against business goals.
- between the test basis elements, testware associated with these elements (e.g., test conditions, risks, test cases), test results, and detected defects.
- The coverage criteria can function as key performance indicators to drive the activities that show to what extent the test objectives have been achieved
The test management role
- 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.
NB varies depending on the context, the test management role can be performed by a team leader, by a test manager, by a development manager,
The testing role
mainly focused on the activities of test analysis, test design, test implementation and test execution.
Generic Skills Required for Testing
- Testing knowledge (techniques)
- Thoroughness, carefulness, curiosity, attention to details, being methodical
- Good communication skills, active listening, being a team player
- Analytical thinking, critical thinking, creativity
- Technical knowledge
- Domain knowledge (to be able to understand and to communicate with end users/business representatives)
Independence of Testing
- A certain degree of independence makes the tester more effective at finding defects due to differences between the author’s and the tester’s cognitive biases
- Work products can be tested by their author (no independence), by the author’s peers from the same team (some independence), by testers from outside the author’s team but within the organization (high independence), or by testers from outside the organization (very high independence)
The main benefit of independence of testing
- 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.
Drawbacks of independent testers
- Independent testers may be isolated from the development team, which may lead to a lack of collaboration, communication problems, or an adversarial relationship with the development team.
- Developers may lose a sense of responsibility for quality.
- Independent testers may be seen as a bottleneck or be blamed for delays in release.
Test planning work products
- test plan
- test schedule
- risk register
- entry and exit criteria
Risk register
a list of risks together with risk likelihood, risk impact and information about risk mitigation
Test monitoring and control work products
- test progress reports
- documentation of control directives
- risk information
Test analysis work products
- (prioritized) test conditions
- defect reports regarding defects in the test basis
Test design work products
- (prioritized) test cases
- test charters
- coverage items
- test data requirements
- test environment requirements