0% found this document useful (0 votes)
0 views

STModule_1__Question_Answers

The document provides a comprehensive overview of software testing, including definitions, types, and methodologies. It covers various testing techniques such as functional, non-functional, unit, integration, regression, acceptance, usability, alpha, and beta testing, along with their importance and benefits. Additionally, it discusses software bugs classifications by nature, priority, and severity, as well as concepts like cyclomatic complexity and testing blindness.

Uploaded by

Achu Mini
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
0 views

STModule_1__Question_Answers

The document provides a comprehensive overview of software testing, including definitions, types, and methodologies. It covers various testing techniques such as functional, non-functional, unit, integration, regression, acceptance, usability, alpha, and beta testing, along with their importance and benefits. Additionally, it discusses software bugs classifications by nature, priority, and severity, as well as concepts like cyclomatic complexity and testing blindness.

Uploaded by

Achu Mini
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

Question Answers

Module 1
1 mark

1. What is software testing?


Software Testing is a method to check whether the actual software product matches
expected requirements and to ensure that software product is Defect free.
2. Importance of software testing?
Software Testing is Important because if there are any bugs or errors in the software,
it can be identified early and can be solved before delivery of the software product.
3. What is Functional Testing?
Functional testing involves the testing of the functional aspects of a software
application. When you’re performing functional tests, you have to test each and every
functionality. You need to see whether you’re getting the desired results or not.
4. What is Non-functional Testing?
Non-functional testing is the testing of non-functional aspects of an application, such
as performance, reliability, usability, security, and so on. Non-functional tests are
performed after the functional tests.
5. What is Unit Testing?
Testing each component or module of your software project is known as unit testing.
To perform this kind of testing, knowledge of programming is necessary. So only
programmers do this kind of tests, not testers.
6. What is Integration testing?
After integrating the modules, you need to see if the combined modules work together
or not. This type of testing is known as integration testing. You need to perform fewer
integration tests than unit tests.
7. What is Regression testing?
If you need to make changes in any component, module, or function, you have to see
if the whole system functions properly after those modifications. Testing of the whole
system after such modifications is known as regression testing.
8. What is Acceptance testing?
The client who will purchase your software will perform acceptance testing (also
known as User Acceptance Testing) to see if the software can be accepted or not by
checking whether your software meets all the client’s requirements and preferences.
9. What is Usability testing?
Testing the user-friendliness of an app is known as usability testing. It involves the
checking of how much usable or user-friendly the app is. It is tested whether any user
can easily use your software without getting stuck.
10. What is Recovery testing?
Recovery testing involves the checking of whether the application can recover from
crashes and how well it recovers.
11. What is Alpha testing?
Alpha testing is a kind of testing to look for all the errors and issues in the entire
software. This kind of test is done at the last phase of app development and is
performed at the place of the developers, before launching the product or before
delivering it to the client to ensure that the user/client gets an error-free software
application.
12. What is Beta testing?
As said earlier, beta testing takes place after alpha testing. Beta testing is done before
the launch of the product. It is carried out in a real user environment by a limited
number of actual customers or users, in order to be certain that the software is
completely error-free and it functions smoothly.
13. What is Basis Path Testing?
it is a white-box testing technique based on the control structure of a
program or a module.
14. What Cyclomatic Complexity?
Cyclomatic Complexity may be defined as-
1. It is software metric that measures the logical complexity of the program code.
2. It counts the number of decisions in the given program code.
3. It measures the number of linearly independent paths through the program
code.

15. What is PREDICATE?


The logical function evaluated at a decision is called Predicate.

16. What is PATH PREDICATE?


A predicate associated with a path is called a Path Predicate.
17. What is process dependent and process independent?

A predicate whose truth value can change as a result of the processing is said
to be process dependent and one whose truth value does not change as a
result of the processing is process independent.

18. What is Path Sensitization?


It’s the act of finding a set of solutions to the path predicate expression.
19. What is PATH INSTRUMENTATION?

Path instrumentation is what we have to do to confirm that the outcome was


achieved by the intended path.
2 marks

1. What are the benefits of Software Testing


a. Cost effective
b. Security
c. Product quality
d. Customer satisfaction
2. What are the different testing models?
The different Software Testing Models are

a. Waterfall Model
b. V Model
c. Agile Model
d. Spiral Model
e. Iterative Model
3. What is Control Flow Graph?

A control flow graph (or simply, flow graph) is a directed graph which represents the
control structure of a program or module. A control flow graph (V, E) has V number
of nodes/vertices and E number of edges in it. A control graph can also have

a. Junction Node – a node with more than one arrow entering it.
b. Decision Node – a node with more then one arrow leaving it.
c. Region – area bounded by edges and nodes (area outside the graph is also
counted as a region.).
4. What is Traversal Marker or Link Marker?

A simple and effective form of instrumentation is called a traversal marker or link


marker. Name every link by a lower case letter. Instrument the links so that the
link's name is recorded when the link is executed. The succession of letters
produced in going from the routine's entry to its exit should, if there are no bugs,
exactly correspond to the path name.
4 marks

1. Difference between testing and debugging?

Testing Debugging

Testing is the process to find bugs Debugging is the process to correct


and errors. the bugs found during testing.

Testing is the display of errors. Debugging is a deductive process.

Debugging is done by either


Testing is done by the tester. programmer or developer.

There is no need of design Debugging can’t be done without


knowledge in the testing process. proper design knowledge.

Testing can be done by insider as Debugging is done only by insider.


well as outsider. Outsider can’t do debugging.

Testing can be manual or Debugging is always manual.


automated. Debugging can’t be automated.

It is based on different testing


levels i.e. unit testing, integration Debugging is based on different types
testing, system testing etc. of bugs.
Debugging is not an aspect of
Testing is a stage of software software development life cycle, it
development life cycle (SDLC). occurs as a consequence of testing.

While debugging process seeks to


Testing is composed of validation match symptom with cause, by that it
and verification of software. leads to the error correction.

Testing is initiated after the code is Debugging commences with the


written. execution of a test case.

2. What is Waterfall Model?

This is the most basic software development life cycle process which is followed broadly
in the industry. In this model, the developers follow a sequence of processes downwards
towards the ultimate goal. It is like a waterfall where there are various phases involved.

The different phases in the waterfall model are:

1. Requirement Analysis
2. Analysis
3. Design
4. Coding
5. Testing
6. Maintenance

Advantages

1. It is easy to implement and maintain.


2. The initial phase of rigorous scrutiny of requirements and systems helps in
saving time later in the developmental phase.

Disadvantages

1. It is not possible to alter or update requirements.


2. Once you move into the next phase you cannot make changes.
3. You cannot start the next phase until the previous phase is completed.

3. How to Calculating Cyclomatic Complexity

Cyclomatic complexity is calculated using the control flow representation of the


program code.

The cyclomatic complexity V(G) is said to be a measure of the logical complexity of


a program. It can be calculated using three different formulae
Method-01
Cyclomatic Complexity = Total number of closed regions in the control flow graph +
1
Method-02
Cyclomatic Complexity = E – N + 2
Here-
1. E = Total number of edges in the control flow graph
2. N = Total number of nodes in the control flow graph

Method-03
Cyclomatic Complexity = P + 1

Here,

P = Total number of predicate nodes contained in the control flow graph

Note
1. Predicate nodes are the conditional nodes.
2. They give rise to two branches in the control flow graph.

4. Calculate the cyclomatic complexity of below problem


Using the above control flow graph, the cyclomatic complexity may be
calculated as-

Method-01

Cyclomatic Complexity
= Total number of closed regions in the control flow graph + 1
=2+1
=3

Method-02

Cyclomatic Complexity
=E–N+2
=8–7+2
=3

Method-03

Cyclomatic Complexity
=P+1
=2+1
=3
5. What is TESTING BLINDNESS?

Testing Blindness is a pathological (harmful) situation in which the desired path is


achieved for the wrong reason.

There are three types of Testing Blindness:

1. Assignment Blindness

Assignment blindness occurs when the buggy predicate appears to work correctly
because the specific value chosen for an assignment statement works with both the
correct and incorrect predicate.

For Example:

Correct Buggy
X=7 X=7
........ ........
if Y > 0 then ... if X+Y > 0 then ...
(Check for Y=1) the desired path is taken in either case, but there is still a bug.

2. Equality Blindness

Equality blindness occurs when the path selected by a prior predicate results in a
value that works both for the correct and buggy predicate.

For Example:

Correct Buggy
if Y = 2 then if Y = 2 then
........ ........
if X+Y > 3 then ... if X > 1 then ...
(Check for any X>1) , the path taken at the second predicate will be the same for
the correct and buggy version.

3. Self Blindness

Self blindness occurs when the buggy predicate is a multiple of the correct
predicate and as a result is indistinguishable along that path.

For Example:
Correct Buggy
X=A X=A
........ ........
if X-1 > 0 then ... if X+A-2 > 0 then ...
(Check for any X,A) The assignment (X=A) makes the predicates multiples of
each other, so the direction taken is the same for the correct and buggy version.

15 marks

1. Classifications of software bugs?


1. By nature
2. By priority
3. By severity

Software defects by nature

1. Functional defects

Functional defects are the errors identified in case the behavior of software is not
compliant with the functional requirements. Such types of defects are discovered via
functional testing.

For example, a functional defect was found in an ecommerce website’s search engine. It
didn’t return any results when a user typed in a product ID, while it was stated in the
requirements that the search could be conducted by both a product’s name and ID.

2. Performance defects

Performance defects are those bound to software’s speed, stability, response time, and
resource consumption, and are discovered during performance testing.

An example of a performance defect is a system’s response time being X times longer


than that stated in the requirements.

3. Usability defects

Usability defects make an application inconvenient to use and, thus, hamper a user’s
experience with software. A content layout that is difficult to scan or navigate and an
overly complex signup procedure are the examples of usability defects. To identify such
defects, test engineers and business analysts validate software against usability
requirements and Web Content Accessibility Guidelines (WCAG) during usability
testing.
4. Compatibility defects

An application with compatibility errors doesn’t show consistent performance on


particular types of hardware, operating systems, browsers, and devices or when integrated
with certain software or operating under certain network configurations. Compatibility
testing is carried out in order to discover such issues. For instance, testing a mobile app
for car insurance claim estimation, we uncovered that it failed to behave according to the
requirements on Android 8.0 and 8.1. The defects were related to the changes in font size,
content alignment, and scroll bar.

5. Security defects

Security defects are the weaknesses allowing for a potential security attack. The most
frequent security defects in projects we perform security testing for are encryption errors,
susceptibility to SQL injections, XSS vulnerabilities, buffer overflows, weak
authentication, and logical errors in role-based access.

Software defects by priority

A project manager, a product owner, or any business stakeholder identifies defect priority.
The priority levels are

1. Urgent defects need to be fixed within 24 hours after being reported. For
instance, a typo in a company’s name on an application’s home page doesn’t have
technical impact on software, but has a major business impact, hence, is classified
as urgent.

2. High-priority defects are the errors that must be fixed in an upcoming release in
order to meet the exit criteria. An example of a high-priority defect is an
application’s failing to navigate a user from the login page to the home page even
though a user has entered valid login data.

3. Medium-priority defects are the errors that may be fixed after an upcoming
release or in the subsequent release. An application returning the expected result,
which, however, formats incorrectly in a particular browser, is an example of a
medium-priority defect.

4. Low-priority defects are the errors that do not need to be fixed in order to meet
the exit criteria but require fixing before an application becomes generally
available. Typos, alignment and element size are usually included in this group.

Software defects by severity


We classify defects according to severity based on the technical impact a defect has on a
system and single out the following severity levels:

1. Critical defects usually block an entire system’s or module’s functionality, and


testing cannot proceed further without such a defect being fixed. An example of a
critical defect is an application’s returning a server error message after a login
attempt.

2. High-severity defects affect key functionality of an application, and the app


behaves in a way that is strongly different from the one stated in the requirements,
for instance, an email service provider does not allow adding more than one email
address to the recipient field.

3. Medium-severity defects are identified in case a minor function does not behave
in a way stated in the requirements. An example of such a defect is a broken link
in an application’s Terms and Requirements section.

4. Low-severity defects are primarily related to an application’s UI and may include


such an example as a slightly different size or color of a button.

You might also like