Quality Assurance Flashcards

1
Q

QA of software can be achieved by

A

testing its reliability (functionality), recoverability, resiliency (security), interoperability, and privacy.

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

The categorization of the different types of software quality assurance testing are:

A

Functional (Unit, Logic, Integration, Regression), Non-Functional (Performance, Scalability, Environment, Simulation), and Other (Privacy, User Acceptance).

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

Reliability software

A

Reliability implies that the software is functioning as it is expected by the business or customer

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

Resiliency software

A

Resiliency is the measure of how strong the software is to be able to withstand attacks when an attacker is attempting to compromise it.

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

Recoverability software

A

Recoverability is the ability for the software to restore itself to an operational state after downtime which can be caused accidentally or intentionally.

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

Privacy testing is conducted to check

A

that personally-identifying information (PII), personal health information (PHI), personal financial information (PFI) and any information that is exclusive to the owner of the information, is assured confidentiality and no intrusion.

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

Test Strategy artifact

A

The test strategy outlines the testing approach that will be undertaken. It is the main instrument that is used to inform and communicate testing issue with members of the software development team.

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

Test Plan artifact

A

The test plan is much more granular document that details the testing approach systematically (like a workflow).

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

A test plan is used to ensure and verify that

A

the software is reliable i.e., meeting requirements, both functional and assurance (security) requirements.

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

Test Case artifact

A

A test case takes the test requirements from the test plan and defines measurable conditions to validate that the requirements are indeed being met as expected.

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

Test Script artifact

A

It is essentially the procedures that the tester will undertake to perform the test.

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

Test Suite artifact

A

Groups and a collection of test cases makes up a test suite. It is usually organized logically by section, such as functional tests, performance tests, etc.

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

Test Harness artifact

A

All the components that are necessary to conduct software testing are collectively referred to as a test harness. It includes the testing tools, test data samples,
testing configurations, test cases and test scripts.

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

Functional Testing

A

Software testing is performed to primarily attest the functionality of the software as expected by the business or customer.

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

Unit Testing

A

it is the first process to ensure that the software is functioning properly, according to specifications (Developer conducts it).

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

Unit Testing can reveal

A

Cyclomatic complexities in code; uncover common coding vulnerabilities such as hard coding values and sensitive information such as passwords and cryptographic keys inline code.

17
Q

Unit testing provides many benefits such as

A

validate functional logic; find out inefficiencies, complexities and vulnerabilities in code; automate testing processes by integrating easily with automated
build scripts and tools; extend test coverage; enable collective code ownership in agile development.

18
Q

Logic testing

A

Logic testing validates the accuracy of the software processing logic.

19
Q

Integration Testing

A

Integration testing is the logical next step after unit
testing to validate the software’s functionality, performance and security. It helps to identify problems that occur when units of code are combined.

20
Q

Regression Testing

A

Regression testing is performed to validate that the

software did not break previous functionality or security and regress to a nonfunctional or insecure state.

21
Q

How to determine the need for regression testing

and the tests that need to be run

A

Determining the Relative Attack Surface Quotient (RASQ) for newer versions of software with the RASQ values of the software before it was modified can be used as a measure.

22
Q

Non-Functional Testing covers testing for

A

the recoverability and environmental aspects of the software such as appropriate replication, load balancing, interoperability and disaster recovery mechanisms functioning properly.

23
Q

Examples of common recoverability testing

A

Performance testing (load testing, stress testing) and scalability testing

24
Q

Performance Testing

A

Testing should be conducted to ensure that the software is performing to the SLA and expectations of the business.

25
Q

Performance testing goal

A

Performance testing is not performed with the
intent of finding vulnerabilities (bugs or flaws) but with the goal of determining bottlenecks that are present in the software.

26
Q

Stress Testing

A

It is performed to determine the ability of the software to handle loads beyond its maximum capabilities.

27
Q

Stress Testing primarily performed with two objectives.

A

Find out if the software can recover gracefully upon failure, when the software breaks; To assure that the software operates according to the design principle of failing securely.

28
Q

Scalability Testing main objectives

A

To identify the loads (which can be obtained from load testing) and to mitigate any bottlenecks that will hinder the ability of the software to scale to handle more load or changes in business processes or technology.

29
Q

Important verification exercises that must be performed to attest the security aspects of software

A

Interoperability testing, simulation testing and Disaster Recovery (DR) testing.

30
Q

List of interoperability testing that can be performed to verify that:

A
security standards (such as WS-Security for web services implementation) are used; complete mediation is effectively working to ensure that
authentication cannot be bypassed; tokens used for transfer of credentials cannot be stolen, spoofed
and replayed, and; authorization checks post authentication are working properly.
31
Q

Disaster Recovery (DR) Testing verifies

A

The recoverability of the software. It also uncovers data accuracy, integrity and system availability
issues.

32
Q

Simulation Testing can uncover

A

The effectiveness of least privilege implementation and configuration mismatches.

33
Q

Privacy Testing

A

Verification of organizational policy controls that impact privacy. It should also encompass the monitoring of network traffic and the communication between end-points to assure that personal information is not disclosed.

34
Q

UAT

A

User Acceptance Testing - Prior to software release, during the software acceptance phase, the end user needs to be assured that the software meets their specified requirements.

35
Q

Prerequisites of UAT include the following

A

The software must have exited the development (implementation) phase; Other quality assurance and security tests such as unit testing, integration testing, regression testing, software security testing,
etc. must be completed; Functional and security bugs need to be addressed; Real world usage scenarios of the software are identified and test cases to cover these scenarios are completed.