Chapter 1 Flashcards

1
Q

what is Software testing

A

is a process used to identify the correctness, completeness and quality of developed computer software.

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

Testing is executing a program on a tiny sample of the input domain

A

t

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

what are the Two Important aspect of testing:

A

1 Dynamic technique
2 Optimistic approximation

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

Why is Testing Important ?

A
  • Cost of bugs: 60 B/year US Economy
  • On average: 1-5 bugs/KLOC
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Causes of Software Defects

A
  • Faulty requirements definition
  • Time Pressure
  • Complex Code
  • Many System Interactions
  • Coding errors
  • Complexity of Infrastructure
  • Changing technologies
  • Non compliance with standards
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

what are the Roles of Testing in Software Development?

A
  • Testing helps to reduce the risk of problems occurring during operation
  • Testing contribute to the quality of the software system
  • Testing may be required to meet contractual requirements, legal requirements, or industry specific standards
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

explain Testing and Quality

A
  • Testing ensures that key functional and non functional requirements are met
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Testing measures the quality of software in terms of …

A
  • the number of defects found
  • the tests run
  • the system covered by the tests
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Do you think testing increases the quality of the software ?

A
  • Testing cannot directly enhance quality.
  • Testing can give confidence in the quality of the software if it finds fewer or no defects
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

what is Quality Assurance(QA)

A

is a way of preventing mistakes or defects in manufactured products when delivering solutions or services

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

List tester roles?

A

Functional Tester
Automation Tester
Performance Tester
Mobile Tester
Pen Tester

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

… is responsible for checking if the product works based on business requirements

A

Functional Tester

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

… is responsible for writing script that automate testing rather than manual testing the functionality

A

Automation Tester

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

… is responsible for testing the product on different load and report the finding the developer

A

Performance Tester

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

… is responsible for testing the product on different mobile devices

A

Mobile Tester

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

… is responsible for exposing all security flaws(SQL Injection, Cross scripting, session hijacking …)

A

Pen Tester-

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

List the Testing Levels

A
  • Unit Testing
  • Integration Testing
  • System Testing
  • Acceptance Testing
  • Validation Testing
  • Regression Testing
  • Alpha Testing
  • Beta Testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

explain unit testing

A
  • Testing individual components or units of a software application to ensure they function correctly in isolation.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

what are some key concepts of unit testing

A

Algorithms and logic

Data structures(global and local) Interfaces

Independent paths

Boundary conditions

Error handling

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

explain Integration Testing:

A

Verifying that different units or modules of the software work together as expected when integrated.

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

why is integration testing needed?

A
  • Ensures Modules function together without adverse effects.
  • Ensures Combined sub-functions produce the desired major function.
  • It catches errors that may magnify from acceptable imprecision.
  • Detects interfacing and timing issues not found in unit testing.
  • Identifies resource contention problems not spotted in unit testing.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

explain Validation Testing:

A

Determines if the software meets all of the requirement defined in the SRS

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

explain Regression Testing:

A

Is performed to ensure that recent code changes have not adversely affected existing features or functionality.

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

Regression testing involves selectively repeating existing …

A

validation tests

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

explain differences between Alpha and Beta testing

A

Alpha Testing: Conducted internally by developers or a dedicated QA team before releasing the software to a limited audience.

Beta Testing: conducted by a select group of external users or customers to identify issues and provide feedback before the software is released to the general public.

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

explain Acceptance Testing:

A

Evaluating the system’s compliance with business requirements and determining whether it is ready for deployment.

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

… Similar to validation testing except that customers are present or directly involved.

A

Acceptance Testing

28
Q

List the test types

A

Functional Testing
Non-Functional Testing
Structural Testing
Re-testing related to Changes

29
Q

explain Functional testing

A

Involves evaluating what the system does, often described in documents like requirements specifications or functional specifications.

30
Q

List the Types of functional testing

A

Security Testing
Interoperability Testing

31
Q

what is Security Testing

A

Investigates the functions relating to detection of threats, such as viruses, from malicious outsiders

32
Q

explain Interoperability Testing

A

Evaluates the capability of the software product to interact with one or more specified components or systems.

33
Q

… is the testing of ”how” the system works

A

Non-Functional Testing

34
Q

what tests are included under Non-functional testing?

A

Performance Testing
Load Testing
Stress Testing
Usability Testing
Maintainability Testing
Reliability Testing
Portability Testing

35
Q

explain Stress Testing

A

How will the system perform under very tough circumstances, many users, many transactions, low memory,..etc

36
Q

explain Load Testing

A

How will the system perform if we do a single transaction so many times

37
Q

explain Structural Testing

A

It’s expressed as a percentage and indicates how much of the code has been exercised by the tests.

38
Q

A higher test coverage % is preferred in Structural Testing

A

t

39
Q

retesting is aka …

A

Confirmation testing

40
Q

explain retesting

A

After a defect is detected and fixed, the software should be re-tested to confirm that the original defect has been successfully removed.

41
Q

explain Regression testing

A

is the repeated testing of an already tested program, after modification, to discover defects introduced as a result of the changes

42
Q

What kind of test types will be performed at the Unit Testing level?

A

Functional Testing: Test individual functions or methods of the classes, modules, or components used by your software.

Structural Testing: Also known as white-box testing, it’s used to test the internal structures or workings of an application, as opposed to its functionality (i.e., black-box testing).

Retesting related to changes: If a specific function or module of the application is changed, then retesting is performed to ensure the changes didn’t introduce new bugs.

43
Q

What kind of test types will be performed at the Integration Testing Level:

A

Functional Testing: Test the interaction between different software modules. It’s typically done using stubs and drivers.

Non-functional Testing: Performance and reliability testing can be done at this level if the modules have performance or reliability requirements.

Retesting related to changes: If the interaction between modules is changed, then retesting is performed to ensure the changes didn’t introduce new bugs.

44
Q

What kind of test types will be performed at the System Testing Level:

A

Functional Testing: Test the system as a whole. It’s typically done on a complete integrated system to evaluate the system’s compliance with its specified requirements.

Non-functional Testing: This includes performance testing, load testing, stress testing, usability testing, etc. These are usually done once functional testing is completed.

Structural Testing: At this level, it’s typically limited to coverage analysis.

Retesting related to changes: If there are major changes in the system requirements, then retesting is performed to ensure the changes didn’t introduce new bugs.

45
Q

What kind of test types will be performed at the Validation Testing Level:

A

Functional Testing: Validation testing, also known as user acceptance testing (UAT), primarily focuses on functional testing from the perspective of end-users to ensure that the system meets their needs.

Non-functional Testing: It may involve some non-functional testing to validate user experience aspects such as usability.

Retesting: After changes are made based on user feedback or business requirements, retesting involves rerunning validation tests to ensure that the changes satisfy user needs.

46
Q

What kind of test types will be performed at the Alpha and Beta Testing Level:

A

Functional Testing: Both alpha and beta testing primarily focus on functional testing, evaluating the software’s functionality in controlled or real-world environments.

Non-functional Testing: They may also involve non-functional testing to gather feedback on aspects such as performance and usability from end-users.

Retesting: After collecting feedback from alpha or beta testing, retesting involves addressing reported issues and ensuring that subsequent releases address identified concerns.

47
Q

what are the techniques of testing:

A

1 Black box testing
2 White box testing

48
Q

explain Black Box Testing

A

What it is: Testers check the software without knowing its internal code. They focus on inputs, outputs, and requirements.

How it works: Testers create tests based on what the software should do. They observe if the output matches the expected results.

Advantages: Easy for non-programmers to conduct. It emphasizes user experience and requirement compliance.

49
Q

Give examples of BB Testing

A
  • You input valid credentials (username and password) and check if it logs in successfully.
  • You input invalid credentials and check if it displays an error message.
  • You try logging in without entering any credentials and check if it prompts for required fields.
  • `You verify if after successful login, it redirects to the user’s dashboard page.
50
Q

what is Black Box Testing’s Limitation

A

It doesn’t reveal errors hidden in the implementation details

51
Q

explain white box testing

A

What it is: Testers examine the internal code, design, and paths of the software.

How it works: Testers create tests based on the software’s internal structure, aiming to cover all code paths and conditions.

Advantages: Provides insights into code quality, finds errors not apparent in black box testing, and helps optimize code.

52
Q

Give examples for WB testing

A
  • Test to ensure correct authentication process.
  • Test to verify session management, like session timeout.
  • Test to check if password encryption is implemented properly.
  • Test to ensure error handling for database connection failures.
53
Q

what are the Seven Testing Principles

A

1 Testing shows presence of defects
2 Exhaustive testing is impossible
3 Early testing
4 Defect clustering
5 Pesticide paradox
6 Testing is context dependent
7 Absence of errors fallacy

54
Q

what are the Stages of Testing

A
  • Test Planning
  • Analysis and Design
  • Implementation and Execution
  • Evaluating exit criteria and Reporting
  • Test Closure activities
55
Q

List Test Planning Activities

A

Defining the Scope of Project
Determine Test Approach
Defining Test Strategy
Determine Test Resources
Define Exit Criteria

56
Q

List Activities in the Analysis and Design Stage.

A
  • Analysis of Business requirements
  • Designing Test Scenarios
  • Creating Test Data
  • Designing Testcases based on Scenarios
  • Test Environment Setup
  • Executing the Testcases in givenTimeline
  • Prioritizing the Testcases
  • Writing Automation scripts if necessary
  • Defect Logging and Tracking
  • Test Case Status Reporting
57
Q

What is the Evaluating exit criteria and Reporting Stage used for?

A
  • To check the test Status against the exit criteria specified in test planning.
  • To assess if more test are needed or if the exit criteria specified should be changed.
  • To write a test summary report for stakeholders.
  • To finalize and archive testware such as scripts, test environments, etc. for later reuse.
  • To handover the testware to the maintenance organization. They will give support to the software.
  • To evaluate how the testing went and learn lessons for future releases and projects.
58
Q

List the Testing Methodologies

A

Waterfall model
Iterative Model
Agile

59
Q

What is the used of Verification and validation

A

To check during development if the product:

  • Meets its specifications
  • Delivers the functionality expected by the people paying for this product
60
Q

… asks “Are we building the system right”

A

Verification

61
Q

explain Verification

A

Is the process of evaluating whether a system or component meets the specified requirements and fulfills its intended purpose.

62
Q

… answers “Are we building the right system?”

A

validation

63
Q

explain validation

A

Evaluates a system during or at the end of the development process to determine whether it meets the specified requirements

64
Q

explain the classical V model.

A

drawing in saved messages

65
Q

explain the Defect lifecycle

A