Software Testing Theory Flashcards

1
Q

Validation vs. verification

A

Validation — confirmation by examination and through the provision of objective evidence that the requirements for a specific intended use or application have been fulfilled.

Verification — confirmation by examination and through the provision of objective evidence that specified requirements have been fulfilled.

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

Seven testing principles

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

Error vs. defect vs. failure

A

Failure - deviation of the module or system from the expected behavior or result of the action.

Defect — any state that deviates from expectations based on requirements specification, project documentation, user documentation, standards, and others; or from someone’s perception or experience. Anomalies can be found during reviews, testing, analysis, compilation, or when using the software or browsing documentation.

Error — human action causing an incorrect result.

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

Low-level test case vs. high-level test case

A

Low-level test cases are those with specific (at the implementation level) input data and expected results. Logical operators from high-level test cases are converted into specific values that correspond to the objectives of logical operators.

High-level test cases are those without specific (implementation level) input data and expected results. Logical operators are used; actual values are not yet defined or available. Also known as abstract test cases.

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

Essential parts of a test case

A

unique id — a special number usually assigned by the test case management software.

name — a short name identifying the test case and describing what it concerns.

description — a short description of the test case, tested functionality, defect, user story, and requirement.

preconditions — the required state of the software and environment before testing.

steps to execute — a verbal description of the activities to be performed in the test case.

expected result — the expected result of the step/test case.

exit condition — the required state of the software, and environment at the end of tests.

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

What are the most common test case tools?

A

TestRail, Jira

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

Common parts of a bug report

A

title — it should be short and informative. Describe exactly what does not work and indicate the place of error. It is not advisable to use the general terms “the form does not display”, “the system does not respond”, or “the button does not work”. A valid example is: “The registration form is not displayed after logging in to the site”.

environment — it should contain information about the environment - operating system, browser, and version number of the failure.

priority — determines how quickly the defect should be repaired, from the highest (critical), which blocks the application to the lowest, where it has no effect on the application.

reproducibility — whether the error is easy to reproduce, e.g. occurs in 100% of cases, or e.g. very rarely 1 in 10 calls.

preconditions — conditions that must be met in order to reproduce a bug.

test data — a set of test data that was used when the bug appeared.

steps to reproduce — steps to follow to reproduce the error.

actual result — the current result that appeared during the test case.

expected result — expected result based on documentation/requirements.

screenshot/video/log — an additional attachment, which documents the bug. Can be not only a screenshot or video but also a .log file, which is an event log in the application.

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

Test activities/tasks

A
  1. Test planning (a goal is defined, a testing technique is selected, and a test schedule is formulated)
  2. Test analysis (defining test conditions, specifying various requirements, user stories, and use cases)
  3. Test design (designing test cases, identifying necessary test data, designing the test environment)
  4. Test implementation (creating test sets and automated test scripts, building the test environment, preparation of test data)
  5. Test execution (performing tests, comparing actual and expected results, analyzing failures, reporting defects, documenting test results)
  6. Test completion (checking if all defects have been handled, creating a summary test report and forwarding it to the stakeholders, archiving the test environment and test data)
  7. Test monitoring and control (a continuous process of comparing actual results to the plan, an extension of the test scope where needed, and informing the stakeholders about the process)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Software development models

A
  1. Waterfall aka cascade (sequential model)
  2. V model (sequential model)
  3. Rational Unified Process aka RUP (iterative model)
  4. Scrum/Agile (incremental model)
  5. Kanban (incremental model)
  6. Spiral model (incremental model)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Test levels

A
  1. Unit aka component tests
  2. Unit aka component integration tests
  3. System tests
  4. System integration tests
  5. Acceptance tests
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is smoke testing?

A

Smoke testing is the practice of testing fundamental and core elements of a software program in the early phases of development to identify minor issues that might delay the product’s release.

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

Alpha and beta testing

A

Alpha testing is performed at the headquarters of the software development organization, but instead of the development team, the tests are performed by potential or existing customers or independent testers.

Beta testing is performed by current or potential customers in their own locations. Beta testing may or may not be preceded by alpha testing.

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

CI/CD meaning

A

Continuous Integration/Continuous Delivery - software development practice involving frequent and regular code delivery to the repository and verification of changes by building a project and performing unit and/or integration tests.

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

What are the types of tests?

A
  1. Functional tests
  2. Non-functional tests (reliability, performance, load, stress, security, compatibility, and usability tests)
  3. White-box tests
  4. Black-box tests
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are the main testing techniques?

A
  1. Black-box (aka specification-based) test techniques include use case, equivalence partitioning, boundary value analysis, decision table, and state transition
  2. White-box (aka structure-based) test techniques include statement coverage aka executing every executable statement and decision/branch coverage aka testing every decision/branch in the program both ways
  3. Experience-based (exploratory, checklist, error guessing, defect injection/fault attack)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is stress testing?

A

Stress testing is a type of performance test that checks how the system/module behaves during the expected number of users and with limited or lacking resources such as processor, memory, or disk space.

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

What is usability testing?

A

Tests during which the ease of use of the software is checked, or how easily users learn to use it, and the convenience of end-users.

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

What is load testing?

A

Load testing checks how our software performs when the load increases. We are increasing the number of users and their transactions. Thus, they check how much our system/application or module is able to handle.

19
Q

What is reliability testing?

A

Checking the software by performing the required functions under specific conditions.

20
Q

What parts does a test plan consist of?

A

-test items
-tested features
-test tasks
-roles in the testing/development team
-level of testers’ independence
-testing environment
-test design technique
-entry and exit criteria
-design and product risks

21
Q

What are the main test strategies/approaches?

A
  1. Analytical (e.g., requirement or risk-based)
  2. Model-based (e.g., reliability)
  3. Methodical (making systematic use of some predefined set of tests or test conditions)
  4. Process-compliant (based on external rules and standards)
  5. Directed (e.g., driven by the advice of stakeholders)
  6. Regression-averse (motivated by a desire to avoid regression of existing capabilities so it includes reuse of existing testware and automation of regression tests)
  7. Reactive (e.g., exploratory)
22
Q

Agile vs. waterfall

A

AGILE
*can be used in small or large products
*relatively new
*high readiness for changes
*product release often, in small fragments

WATERFALL
*usually used for rather large products
*has existed for several dozen years
*reluctant to change
*product release after a long time

23
Q

Name the 4 principles of the agile manifesto

A
  1. Individuals and interactions over processes and tools (processes and tools serve us, not the other way around)
  2. Working software over comprehensive documentation (a working product is what brings in the funds, not documentation)
  3. Customer collaboration over contract negotiation (formal agreements are important but we should always strive for cooperation)
  4. Responding to change over following a plan (reacting quickly and effectively to change instead of blindly following a plan)
24
Q

What are the three pillars of the House of Scrum?

A

1) Transparency (visibility and understanding)
2) Inspection (periodic checking of our work progress)
3) Adaption (to possible changes)

25
Q

Who does the scrum team consist of?

A

Scrum master, product owner, and developers (including testers)

26
Q

What are the main responsibilities of a product owner in scrum?

A

-responsible for creating and maintaining the product backlog
-creating and communicating a clear, understandable product goal
-maximizing the value of the product
-contacting stakeholders
-answering questions about the product

27
Q

What are the main responsibilities of a scrum master in scrum?

A

-facilitating carrying out scrum events
-helping with the identification and removal of impediments limiting the team’s progress
-increasing the team’s work efficiency

28
Q

What are the main responsibilities of developers in scrum?

A

-developing a usable increment of a working product each sprint
-responsible for creating and maintaining the sprint backlog
-responsible for deciding HOW to achieve the sprint goal (the goal itself is set by the entire team and cannot be changed)
-responsible for estimating the work that needs to be done

29
Q

What are the events in scrum?

A

1) Sprint (consists of the rest of the 4 events, never longer than a month, usually 2 weeks)
2) Sprint planning (~4h for a 2-week sprint; planning the work for the upcoming sprint, attended by the entire scrum team)
3) Daily scrum (usually a 15-minute meeting only for developers where they describe what they worked on the previous day, what they plan to work on on the current day, and any impediments to their work)
4) Sprint review (no longer than 2h for a 2w sprint; presenting the work that was done during the sprint to stakeholders, gathering feedback from them, and presenting a plan for the next sprint)
5) Sprint retrospective (no longer than 1.5h for a 2w sprint; a meeting for the scrum team analyzing the work done, performance and efficiency, finding ways to improve in the future)

30
Q

What are the artifacts in scrum?

A

1) Product backlog (consists of an evolving list of items, usually epics and user stories, that we want to produce for the product and a product goal; one product = one product backlog; e.g., “As a website visitor, I want to be able to create an account”)
2) Sprint backlog (the result of the sprint planning event, updated regularly, usually during daily scrum; consists of work to be done during the sprint in a kanban-style board with states like to-do, etc., a plan of how the work will be done, and a sprint goal; )
3) Increment (work that’s been completed during the sprint and that complies with the Definition of Done; more than one increment can be produced during a sprint and the delivery of an increment can take place at any time during the sprint)

31
Q

Product goal in scrum

A

There can only be one product goal at the same time. A new goal may be set when the previous one has been fulfilled or a decision has been made to cancel the previous goal. A product goal enables us to focus on what the product aims to achieve in the long run. Typically, achieving a product goal takes several sprints.

32
Q

What does the Definition of Done mean in scrum?

A

The Definition of Done is the requirements that the work must meet in order to be considered completed. When the DoD requirements are met and the work has been released, it becomes an increment.

33
Q

Describe Kanban in your own words

A

It’s the 2nd most common agile framework (after scrum), literally meaning a visual board. Essentially, it’s a visual method for managing workflow. All work items are visually represented on the Kanban board, allowing anyone to see what state a piece of work is currently in and who is working on it. The main states are to-do, in progress, and done.

34
Q

What are the most common performance testing tools?

A

-JMeter
-Gatling
-LoadRunner

35
Q

What are the most common project management tools in testing?

A

Jira, Mantis, YouTrack

36
Q

Scrum vs. Kanban

A

SCRUM
-work in regular fixed-length sprints
-work is released at the end of each sprint
-specific roles in the team (product owner, scrum master, development team)
-changes should only be made upon completion of a sprint
-best used in projects with more stable priorities

KANBAN
-work in a continuous flow
-work is released continously or at the team’s discretion
-fluid roles in the team
-changes can easily be made whenever
-best used in projects with changing priorities

37
Q

Name the most popular test automation tool and IDE tools

A

-Test automation tool: Selenium IDE
-IDE tools: IntelliJ Idea, Microsoft Visual Studio, Eclipse Java IDE

38
Q

What are some popular API testing tools (network service testing tools)?

A

-Postman
-JMeter
-SoapUI

39
Q

What are the two types of network services?

A

REST (Representational State Transfer) is based on specific URLs, which somehow act as identifiers. A query is sent to the server’s URL, then the server processes our query and we get a response. There are 7 basic methods for communication.

SOAP (Simple Object Access Control) is a protocol based on XML files, where the way of communication between the client and server is defined. In SOAP, it is assumed that each website should provide a file that contains a detailed specification of operations to be performed.

40
Q

What is the most common version control tool?

A

Git (with the most popular hosting services being GitHub, GitLab, and Bitbucket)

41
Q

What are the most common security testing tools?

A

-Kali Linux
-Wireshark
-OWASP Zap

42
Q

What are the most common CI/CD tools?

A

-Jenkins
-Bamboo
-Gitlab
-TravisCI

43
Q

What are the main estimation techniques in test planning?

A
  1. Estimation based on ratios
  2. Extrapolation
  3. Wideband Delphi
  4. Three-point estimation
44
Q

What are the main test case prioritization strategies?

A
  1. Risk-based prioritization
  2. Coverage-based prioritization
  3. Requirements-based prioritization