Foundation Level 1 Flashcards
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.