1: Fundamentals of testing Flashcards

1
Q

What is a test object?

A

a software artifact

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is testing?

A

A set of activities to discover defects and evaluate the quality of test objects

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Why is testing necessary?

A

Testing, as a form of quality control, helps in achieving the agreed upon goals within the set scope, time, quality, and budget constraints. Testing’s contribution to success should not be restricted to the test team activities. Any stakeholder can use their testing skills to bring the project closer to success. Testing components, systems, and associated documentation helps to identify defects in software,

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are testing’s contributions to success?

A
  • provides a cost-effective means of detecting defects. These defects can then be removed (by debugging – a non-testing activity), so testing indirectly contributes to higher quality test objects.
  • provides a means of directly evaluating the quality of a test object at various stages in the SDLC. These measures are used as part of a larger project management activity, contributing to decisions to move to the next stage of the SDLC, such as the release decision.
    -provides users with indirect representation on the development project. Testers ensure that their understanding of users’ needs are considered throughout the development lifecycle. .
  • meet contractual or legal requirements, or to comply with regulatory standards.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Explain testing vs QA.

A

Testing is a form of quality control (QC).
QC is a product-oriented, corrective approach.
QA is a process-oriented.
QA applies to both the development and testing processes, and is the responsibility of everyone on a project.
Test results are used by QA and QC. In QC they are used to fix defects, while in QA they provide feedback on how well the development and test processes are performing.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Errors

A

Human beings make errors (mistakes), which produce defects (faults, bugs), which in turn may result in failures. Humans make errors for various reasons, such as time pressure, complexity of work products, processes, infrastructure or interactions, or simply because they are tired or lack adequate training.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Defects

A

can be found in documentation, such as a requirements specification or a test script, in source code, or in a supporting artifact such as a build file. Defects in artifacts produced earlier in the SDLC, if undetected, often lead to defective artifacts later in the lifecycle. If a defect in code is executed, the system may fail to do what it should do, or do something it shouldn’t, causing a failure. Some defects will always result in a failure if executed, while others will only result in a failure in specific circumstances, and some may never result in a failure.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Failures

A

Errors and defects are not the only cause of failures. Failures can also be caused by environmental conditions, such as when radiation or electromagnetic field cause defects in firmware.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

A root cause

A

is 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. It is believed that further similar failures or defects can be prevented or their frequency reduced by addressing the root cause, such as by removing it.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Testing principles

A
  1. Testing shows the presence, not the absence of defects
  2. Exhaustive testing is impossible
  3. Early testing saves time and money
  4. Defects cluster together
  5. Tests wear out
  6. Testing is context dependent
  7. Absence-of-defects fallacy
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Test Activities and tasks

A

Test planning
Test monitoring and control
Test analysis
Test design
Test implementation
Test execution
Test completion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Testware is created as output work products from the test activities. There is a significant variation in how different organizations produce, shape, name, organize and manage their work product
Give example of work products

A

.Test planning work products include: test plan, test schedule, risk register, and entry and exit criteria. Risk register is a list of risks together with risk likelihood, risk impact and information about risk mitigation. Test schedule, risk register and entry and exit criteria are often a part of the test plan.
• Test monitoring and control work products include: test progress reports , documentation of control directives and risk information.
• Test analysis work products include: (prioritized) test conditions (e.g., acceptance criteria), and defect reports regarding defects in the test basis (if not fixed directly).
• Test design work products include: (prioritized) test cases, test charters, coverage items, test data requirements and test environment requirements.
• Test implementation work products include: test procedures, automated test scripts, test suites, test data, test execution schedule, and test environment elements. Examples of test environment elements include: stubs, drivers, simulators, and service virtualizations.
• Test execution work products include: test logs, and defect reports.
• Test completion work products include: test completion report, action items for improvement of subsequent projects or iterations, documented lessons learned, and change requests (e.g., as product backlog items).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Test process in context
Testing is not performed in isolation. Test activities are an integral part of the development processes carried out within an organization. Testing is also funded by stakeholders and its final goal is to help fulfill the stakeholders’ business needs. Therefore, the way the testing is carried out will depend on a number of contextual factors.
These factors will have an impact on many test-related issues, including: test strategy, test techniques used, degree of test automation, required level of coverage, level of detail of test documentation, reporting, etc.

A
  • 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.)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is a test basis?

A

The body of knowledge used as the basis for test analysis and design.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is the goal of traceability between test basis and testware?

A

Accurate traceability supports coverage evaluation, so it is very useful if measurable coverage criteria are defined in the test basis. The coverage criteria can function as key performance indicators to drive the activities that show to what extent the test objectives have been achieved. For example:

  • Traceability of test cases to requirements can verify that the requirements are covered by test cases.
  • Traceability of test results to risks can be used to evaluate the level of residual risk in a test object.
  • good traceability makes it possible to determine the impact of changes, facilitates test audits, and helps meet IT governance criteria.

-good traceability makes test progress and completion reports more easily understandable by including the status of test basis elements. This can also assist in communicating the technical aspects of testing to stakeholders in an understandable manner.

-traceability provides information to assess product quality, process capability, and project progress against business goals.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Test manager vs tester

A

The test management role takes overall responsibility for the test process, test team and leadership of the test activities. The test management role is mainly focused on the activities of test planning, test monitoring and control and test completion. The way in which the test management role is carried out varies depending on the context. For example, in Agile software development, some of the test management tasks may be handled by the Agile team. Tasks that span multiple teams or the entire organization may be performed by test managers outside of the development team.

The testing role takes overall responsibility for the engineering (technical) aspect of testing. The testing role is mainly focused on the activities of test analysis, test design, test implementation and test execution.

17
Q

What is whole team approche?

A

One of the important skills for a tester is the ability to work effectively in a team context and to contribute positively to the team goals. The whole team approach – a practice coming from Extreme Programming builds upon this skill.

In the whole-team approach any team member with the necessary knowledge and skills can perform any task, and everyone is responsible for quality. The team members share the same workspace (physical or virtual), as co-location facilitates communication and interaction. The whole team approach improves team dynamics, enhances communication and collaboration within the team, and creates synergy by allowing the various skill sets within the team to be leveraged for the benefit of the project.
Testers work closely with other team members to ensure that the desired quality levels are achieved. This includes collaborating with business representatives to help them create suitable acceptance tests and working with developers to agree on the test strategy and decide on test automation approaches. Testers can thus transfer testing knowledge to other team members and influence the development of the product.
Depending on the context, the whole team approach may not always be appropriate. For instance, in some situations, such as safety-critical, a high level of test independence may be needed.

18
Q

What is independence of testing?

A

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 (cf. Salman 1995). Independence is not, however, a replacement for familiarity, e.g., developers can efficiently find many defects in their own code.
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). For most projects, it is usually best to carry out testing with multiple levels of independence (e.g., developers performing component and component integration testing, test team performing system and system integration testing, and business representatives performing acceptance testing).
The main benefit of independence of testing is that independent testers are likely to recognize different kinds of failures and defects compared to developers because of their different backgrounds, technical perspectives, and biases. Moreover, an independent tester can verify, challenge, or disprove assumptions made by stakeholders during specification and implementation of the system.
However, there are also some drawbacks. 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.

19
Q

When to stop testing?

A

when time allocated to testing expires
budget
%rate of pass
deadlines
minimum acceptance bug rate