Semaine 3 : Test Flashcards

1
Q

What is testing?

A

Testing is the process of executing a program with intention of finding errors. Testing is static and dynamic analysis.

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

What is the definition of testing?

A

● Quality assurance activities performed by running code.
● All techniques that execute the software system and compare the observed behaviour with the expected behaviour.
● Testing is always dynamic quality assurance technique.
● Testers define test cases consisting of inputs and the expected outputs to systematically analyse all requirements.

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

What are software testing objectives?

A

● To identify and reveal as many errors as possible in the tested software.
● To bring the tested software, after correction of the identified errors and retesting, to an acceptable level of quality.
● To perform the required tests efficiently and effectively, within budgetary and scheduling limitations.
● To compile a record of software errors for use in error prevention (by corrective and preventive actions).
● Reduce the risk of failure
● Reduce the cost of testing
● Dijkstra: “Testing can only reveal the presence of errors, never their absence”
● Bug-free software is still a utopian aspiration!

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

What are testing activities?

A
● Identify an objective to be tested
○ A clear purpose must be associated with every test case
● Select inputs
● Compute the expected outcome
● Set up the execution environment of the program
● Execute the program
● Analyze the test result
○ pass, fail , and inconclusive
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is system integration testing?

A

● A software module, or component, is a self-contained element of a system.
● Modules have well-defined interfaces with other modules.
● Constructing a working system from the pieces is not a straightforward task, because of numerous interface errors.
● Integration testing is to assemble a reasonably stable system in a laboratory environment such that the integrated modules and components in the actual environment of the system.
● System integration testing is a systematic technique for assembling a software system while conducting tests to uncover errors associated with
interfacing.

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

What are the different types of system testes?

A

Basic, Functionnality, Robustness, Interoperability, Performance, Scalability, Stress, Load and Stability, Reliability, Regression, Documentation, Regulatory.

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

What are Reliability tests for?

A

Reliability tests are designed to measure the ability of the system to remain operational for long periods of time

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

What are Robustness tests for?

A

Robustness tests determine how well the system recovers from various input errors and other failure situations.

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

What are Interoperability tests?

A

Interoperability tests determine whether the system can interoperate with other third-party products.

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

What are performance tests?

A

Performance tests: measure the performance characteristics of the system, for example, throughput and response time, under various conditions.

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

What are Scalability tests?

A

Scalability tests: determine the scaling limits of the system in terms of user scaling, geographic scaling, and resource scaling.

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

What are Stress tests?

A

Stress tests: put a system under stress in order to determine the limitations of a system and, when it fails, to determine the manner in which the failure occurs.

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

What are load and stability tests?

A

Load and stability tests: provide evidence that the system remains stable for a long period of time under full load.

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

What are regression tests for?

A

They determine that the system remains stable as it cycles through the integration of other subsystems and through maintenance tasks.

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

What is Agile testing?

A

● Adapts to changes very fast
● Not plan-driven, but lives with the project
● Testing is done from the beginning of the project, not just in the end of it
● Emphasizes the team, humanity/human-centeredness and cooperation
● Tests iteratively piece by piece
● Customer is involved even in all testing phases
● Continuous integration
● Automation of testing at least in unit-testing

It is more important to find bugs than to write comprehensive documents.

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

How do we integrate testing into agile development?

A

● There’s not one single prescription
● Agile methodologies promote short release cycles
● Classic testing model does not work on continuous integration context
● A new approach to testing
● Testers have to reinvent themselves and their craft
● Iterate on planning
○ Keep pace with development
● Iterate on testing
○ Manage risk so that the most important features and actions are well-tested
● Iterate on quality
○ Measure your quality
○ Improve it in the next iteration
● Early involvement by testers
○ Testers need to work directly with product owners
○ Must understand the user needs
○ Get deep understanding of the user stories
● Focus testing on features that make a difference to users
○ No requirements to analyze
○ No time for comprehensive test plans
● Learn what the users need
○ Make sure those features work
● Ensure that testers take the lead
○ Take responsibility for application quality
○ Become an interface to the user community
○ Work with developers as equal partners
● Enable testers to work side-by-side with developers and customers
○ Testers need to know about tactical development decisions
○ This is especially important in Agile projects without formal requirements
● Ensure that testers take the lead on the building and execution of functional,
regression, and acceptance test cases
● Independence from development helps ensure objective evaluation
● Enable testers and developers to make coding decisions together
● Helps prioritize testing
● Guide development in decision-making
● Make automation an integral part of testing
○ Agility and automation work hand in hand
○ Accelerate testing to show agility
● Data collection and analysis essential
○ Feature backlog
○ Failure/Issue management
○ Technical Debt management
○ Logging
○ Metrics
○ Commit comments
○ Time trackers, …

17
Q

What is the planning of Agile testing?

A

● Start with a light overall test planning
● Choose the proper tools
● Create a testing environment
● Prioritize things to be tested in each iteration (sprint)
● Create test cases for the first iteration on the agreed (light) accuracy level
● Outline tests for next iterations
● Automate testing

18
Q

What agile testing is NOT?

A

● A separate phase at the end of software development project
● Unsystematic
● Documentation free
● Random
● Uncontrolled
● Straightforward operation without feedback

19
Q

What is the approach crawl, walk, run?

A

● Rarely attempt to ship a large set of features at once
● Build the core of a product and release it the moment it is useful to as large a
crowd as feasible, and then get their feedback and iterate.
● Minimum useful product
● Channel sequence
○ Canary: only engineers (developer and testers) on the product
○ Dev: developers use for their day-to-day work.
○ Test Channel: best build of the month; internal dogfood users represents a candidate Beta
○ Beta Channel or Release Channel: survived internal usage; external exposure