Module 1 Flashcards

1
Q

Whats the definition of testing?

A
  • The process of executing a program with the internt of finding errors
  • The process of exercising a system by manual or automatic means to verify that it satisfies specified requirements or to identify differences between actual and expected results
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Whats Software testing

A

Dynamic verification of the behaviour of a program on a finite set of test cases, comparing the behaviour against the expected

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

7 principles of testing

A
  1. Shows the presence of defects but cannot prove that there are no defects
  2. Testing everything is not possible, except in trivial cases
  3. Testing should occur as early as possible in the SDLC
  4. Defect clustering: Most operational failures exist in a small number of modules. This is true during pre release
  5. Pesticide paradox: if the same test are repeated, eventually these tests will not find new bugs. To overcome this, tests need to be reviewed regurlarly
  6. Testing is done differently in different contexts. Safety-critical software is tested differently than e-commerce
  7. Absence-of-error fallacy: if the system is unusable and not satisfactory for the user, finding defects and fixing them does not help
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Testing vs debugging

A

Testing: Locates and identifies bugs
Debugging: Fixes these identified bugs

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

Fault error and failure

A

Fault, failures defect: Severe condition, even dangerous
Anomaly, incident,variance: unintended behaviour rather than complete failure
Problem, error and bug: Generic terms

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

Why do we test?

A

-Find faults
-Get the confidence of a system
-Measure the quality of a system
-The customer required testing the system
- Assure and prepare for minimising failures
-Economical

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

What’s quality assurance?

A

Systematic activities implemented in a system so that quality requirements for a product or service will be fulfilled

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

What’s Software Quality Assurance?

A

Refers to the process of ensuring the quality of a software product. Subset of QA and is focused specifically on software development

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

When to start testing?

A

As early as possible, becoming more cheap in the SDLC

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

When to stop testing?

A

Can be hard, neverending process. Because no-one can claim a software is 100% tested. Instead, testing deadlines, completion of test case execution and completion of functional code coverage will be considered to end testing

Management decision

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

Software development models (SDLC)

A

Software development life cycle (describes the activities and tasks in a software development process) that’s applied to a project will have significant impact on the testing of that software.

Test activities is highly related to software development activities
The way testing is organised must fit the development life cycle or it will fail to deliver its benifits

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

Verification and validation

A

Verification: Determining whether the products of a given development phase satisfies the requirements set during the previous development phase

Validation: Evaluating the software after the development to ensure it complies with intended usage

Cases exist where IV&V. “I” stands for independent indicating a third, disinterested, party does the V&V

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

Waterfall

A

-Development is split up into a number of independent steps
-starts with the study about the various development tasks and finishes with the implementation into the live environment
-Testing happens at the end, defects are detected close to implementation of the product
- Difficulties arise when we need to iterate a certain part
- Testing adds lead time because it’s implemented at the end of the development phase

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

The V-Model

A

Introduced to solve problems with waterfall model

Provides guidance that testing needs to begin earlier in the development life cycle

Illustrates how V&V can be implemented into each phase of the life cycle
Testing should be done parallel to the development activities
Testers need to work alongside the developers and business analysts to produce test deliverables

One good practice: Have the testers involved as early as the review of the test basis documentation

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

W-model

A

Most recent
Covers activities that’s skipped with the v-model and deals with problems not caught by v-model

The tests start when project starts and test programs should be developed parallel with the code

If any phase is ignored, quality is compromised

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

Iterative life cycles

A

Cycling through small iterative life cycles of the project.

The delivery is split up into smaller deliverables with each iteration adding new functionality
An increment may be tested several times at several levels as part of the development

Subsequent testing:
- Testing new functionalities
- Regression testing of the existing functionality
- Integration testing of both new and existing parts

Regression testing becomes increasingly important in all iterations

17
Q

Rapid Application Development (RAD)

A

Parallel development of functions and subsequent integration
Quickly give the customer something to see and use to provide feedback regarding the delivery
Allows early validation of technology risks and rapid responses to changing customer requirements

Encourages active customer feedback

18
Q

Streamline

A

Streamlining in software testing refers to the process of optimising the testing process by identifying and eliminating unnecessary steps, automating repetitive tasks and focusing on the most critical aspects of the software application.

The goal of streamlining is to increase the efficiency and effectiveness of the testing process while reducing the time and resources to complete it

19
Q

Static analysis

A

Type of software testing that involves examining the code or other software artefacts without actually executing the code.

It helps to identify potential defects or issues in the code such as syntax errors, security vulnerabilities and adherence to coding standards. Typically done early in the development process before the code is actually executed to identify and address issues before the become more difficult and expensive to fix

20
Q

Static analysers

A

Automates the process of static analysis

Work by parsing the code and building a model of the program’s behaviour

They can then apply various analysis techniques to detect problems. E.g. control flow analysis, data flow analysis and taint analysis

Static analysis cannot alone guarantee the absence of defects or vulnerabilities. Best used in conjunction with other testing methods such as dynamic testing and manual testing

21
Q

What’s group examination?

A

Systematic use of human capability to check and evaluate issues through reading and trying to understand the document

22
Q

Peer review

A

If colleagues provide feedback

23
Q

What are the three types of code review techniques?

A

-desk check: informal review performed by the author of the cose
- Code walkthrough: A peer review, author leads the review process and team members ask questions to find possible error against development standards
- Code inspection: most formal type, kind of static testing to avoid defect multiplication in later stages. After a module has been successfully completed (no errors), some team members are given the code to try to find errors. Each team members selects some test cases and simulates the tests by hand. The members note down their findings to discuss in a walkthrough meeting where the coder is present

24
Q

What are some guidelines of code inspection?

A
  • The team performing the code walkthrough should neither be too small nor too big ~3-7 persons
  • Discussion should focus on discovery of errors, not how to fix them
  • Managers should not attend the meetings to avoid the feeling of being evaluated
25
Q

What’s cyclomatic complexity metric?

A

Complexity measurement of software code, calculated by counting the number of independent paths through the code, these paths are made from e.g. an if-statement which can go two ways. All paths together determines the cyclomatic complexity of a program.

The premise is that the more complex, the less maintainable it is

26
Q

What’s Data flow analysis

A

To analyse how data flows through a program.

Identifying how data is defined, used and modified as it flows through the program

27
Q

What do we need to know before testing?

A
  • What we’re trying to test
  • what are the inputs
  • Output results from the inputs
  • How we get ready to run the tests

On top of this, it’s important to know the test conditions, test procedures and test cases

28
Q

Explain the two types of formalities of test documentation

A

Formal testing: Have a well controlled documentation addressing all details of a test

Informal testing: have no documentation or only notes kept by individual testers, they do though have a plan for what to test and what they expect as output

IRL: Combined/between, depends on the context of the work

29
Q

What are 4 things in test analysis?

A

Test analysis: looking at something that can be used to derive test information

Test basis: The base of the test cases, we can look at it to see what could be tested

Test condition: Simply something we could test

Traceability: Linking the test conditions back to their sources on the test basis

30
Q

What are two testing techniques

A

Static testing techniques: Does not execute the code being examined and are generally used before any tests are executed

Dynamic testing techniques: The code is executed to demonstrate the results of running the test cases

31
Q

Whats functional testing?

A

Examining and testing What a program does

32
Q

Whats non-functional testing?

A

Testing how Well the system does works

Performed on all test levels

33
Q

Whats structural testing?

A

White-box

Tests code structure and the inteded system flow

E.g. Testing the statements in the code

34
Q

Whats regression testing?

A

Testing that the new functionality doesnt impact its correctness