Software Testing Flashcards

1
Q

Why do we test software?

A

to ensure we’re building the right product and building it right

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

What are the two general categories of testing?

A

Validation Testing

Defect Testing

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

Why is Testing important?

A

Testing identifies deficiencies in requirements, design & implementation

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

What is the purposes of Validation Testing?

A

Demonstrate that software meets requirements

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

What does Validation Testing test?

A
  • The main success scenario of each use-case

- The main use-case extensions

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

What is the purpose of defect testing?

A

Finding defects by finding inputs where the software behaviour is incorrect

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

What does Defect Testing test?

A
  • Use-case extensions that define error handling
  • How the system operates under stress
  • The boundaries of functional & non-functional requirements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What did Edsger Dijkstra say about Testing?

A

Testing can only show the presence of errors, not their absence

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

True or False: Validation Testing is performed as an end-of-cycle activity

A

False, Validation Testing is performed throughout the entire development process

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

What are some of the questions that Validation Testing attempts to answer?

A
  • Are we building the right product?
  • Does the product do what the customer expects it to?
  • Does the customer validate that the software solves the problem it’s intended to solve?
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are the three purposes of Verification Testing?

A
  • Find defects by finding inputs where the software behaviour is incorrect
  • Find defects by modifying & stressing the environment in which the software operates
  • Have the software for completeness (does it deliver on all its functional & non-functional requirements?)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

How do we verify & validate software?

A
  • Inspection & Reviews

- Testing

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

What are the properties of Software Inspection?

A
  • In-depth (errors don’t cover/mask other errors)
  • Does not need running or complete code
  • Economical (no additional Unit Tests)
  • Everything can be inspected, not just code
  • Can consider qualities (non-functional requirements) that are hard to test otherwise
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

How effective if Software Inspection?

A

60-90% of errors can be found via inspection

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

What are the three types of Testing?

A
  • Development Testing
  • Release Testing
  • User Testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is Development Testing?

A

Conducted by developers as part of the development process

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

What is Release Testing?

A

conducted by independent testing teams that verifies & validates that the integrate software is correct

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

What is User Testing?

A

Conducted by users or pseudo-users to validate that software is suitable

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

What is the main purpose of debugging code?

A

to validate your assumptions

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

True or False: Debugging is not integral to software development and is a separate testing activity

A

False, Debugging is integral to software development and is not a separate testing activity

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

What are the limitations of Software Inspection?

A
  • Typically a manual process which prevents regression verification
  • Hard to inspect complex runtime conditions
  • Considered an expensive process
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Why is regression verification a limitation of Software Inspection?

A

Static code analysis can be performed automatically using tools to discover anomalies, compliance with standards, testability, code contracts

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

Why are runtime conditions a limitation for software inspection?

A
  • Unexpected interactions between components
  • Timing problems
  • Performance issues
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What is Unit Testing?

A

Development testing that verifies the functionality of objects & their methods

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
What is Component Testing?
Development testing tht verifies several units (e.g. objects) that are integrated to create a component
26
What is System Testing?
Development testing that verifies components that are integrated to create a component
27
What is Release Testing?
Validation Testing of a release to demonstrate system meets requirements & is performed by an independent QA team
28
What are the types of Development Testing?
- Unit Testing - Component (Interface) Testing - System Testing
29
Development Testing is primarily what?
A defect testing activity with the goal of finding as many bugs as possible
30
What is the purpose of Unit Testing?
Verifies the functionality implemented in objects & their methods by testing all possible states, inputs & outputs
31
True or False: Unit Testing is conducted in the system with highly coupled units
False, Units are tested in isolation with a loosely coupled relationship
32
How is Unit Testing automated?
Using Unit Test Frameworks
33
List some Unit Testing Frameworks
- JUnit (Java) - XCTest (Swift) - Nunit/MSTest/VSTest/xUnit (C#) - Mocha/Unit.js (NodeJS)
34
Unit tests are typically implemented as what?
A Test Class with Test Methods
35
How are Test Methods organized?
- Setup/Arrange - Call/Act - Assertion
36
How can you write effective Unit Tests?
- Determining inputs to be used in Unit Tests - Partition Testing - Guideline-based Testing
37
What criteria can inputs be selected by for unit testing?
- choose inputs to reflect normal operation | - Choose abnormal inputs to reflect error conditions
38
What is Partition Testing?
- Identify groups of inputs with similar behaviour - Test input in the middle of the partition - Test inputs at the boundaries of the partition
39
What are the basic Unit Testing Guidelines?
- Test sequences with a single element or no element - Use different sizes of collections for different tasks - Tests the first, middle & last element of a sequence - choose inputs that force all error messages - Load testing to attempt to overflow buffers & test the limits of the application - Force computation results that are too large or too small - Repeat the same inputs multiple times
40
What are the types of Interfaces that are tested in Component Testing?
- Methods/Precedure based interfaces - Message Passing Interfaces (Async) - Shared Memory interfaces
41
What are they two types of Interface Errors in Component Testing?
- Interface Misuse | - Timing Errors
42
What are the Component Testing Guidelines?
- Test the boundaries of interaction with external components - Test arguments just like in a unit-test - Testing calling methods in different order & in different states - Stress testing for speed, memory, & number of messages
43
Why is System Testing important?
Some errors only occur when the entire system is integrated & this is what System Testing aims to verify
44
What is the purpose of Use-Case based testing?
Verifying the main success scenario, extensions & error handling extensions
45
What are the System Testing Guidelines?
- Exhaustive testing is not possible/practical - All system functions accessible through menus & UI elements must be tested - Combinations of functions must be determined & tested - Never wait until the end to system test a product
46
What is Test Driven Development?
the mot enduring & generalizable practice in XP (Extreme Programming)
47
True or False: Test Driven Development is practiced in either Agile or Plan-Based Processes, not both
False, TDD can be practices in both Agile & Plan-Based Processes
48
What does Test Driven Development emphasize?
The testability of the system
49
What are the Benefits of Test Driven Development?
- Code Coverage - Regression Testing - Support effective & constant refactoring - Supports effective debugging - Provides elements of requirements analysis & design that leverage only coding/programming knowledge
50
What are the Limitations of Test Driven Development?
- Not an alternative to requirements analysis - Not an alternative to software architecture & software design modelling - Hard to use for component & system testing for large enough systems - Hard to use when system uses legacy code or large components
51
True or False: Release testing is done by the development team
False, Release testing is done by a QA team not the development team
52
What are the goals of Release Testing?
Ensure the system is ready to be delivered to customers &/or users
53
What are the two ways to conduct Release Testing?
- Requirements-Based Testing | - Scenario-Based Testing
54
What are the properties of Requirements-Based Release Testing?
- Requirements should be testable - Consider each requirement & derive a set of tests for it - Demonstrates the system has properly implemented its requirements - Traceability records demonstrates that all requirements have been tested
55
What are the properties of Scenario-Based Testing?
- Uses real-world usage scenarios when neither use-cases nor stories were used in requirements definition - Release testers run through the scenario using the system to validate the system responds accordingly - A scenario encapsulates many requirements so this test integration of related functionality
56
What is Performance Testing?
Validating that the system can process the intended load (e.g. number of users, requests, size of data)
57
How is Performance Testing conducted?
By increasing the load on the system until the system performance is unacceptable
58
What is Stress Testing?
Test how the system behaves when it is subjected to demands outside of the design limits; also a type of Performance Testing
59
What are the requirements of Performance Testing?
Define the operational profile of the system; the typical load of a system needed to get accurate test of the operational performance of the system
60
What is User Testing?
Performed by users/customer of the system in the user's environment
61
Why is User Testing Important?
Because it's impossible to replicate the complexity of all user environments
62
What are the types of User Testing?
Alpha Testing Beta Testing Acceptance Testing
63
What is Alpha Testing?
Select set of users work with developers to test early releases of the software
64
What is Beta Testing?
Larger group of users work with the software aiming to discover defects (defect testing)