Question Bank QB Unit 4 - Key
Question Bank QB Unit 4 - Key
Question Bank QB Unit 4 - Key
(Autonomous)
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
Semester
20CS402- Software Engineering
Regulations 2020
Question Bank
UNIT – IV (TESTING STRATEGIES)
PART- A
Q. Questions Marks CO BL
No
Define Software Testing.
1 Software testing is a critical element of software quality assurance and represents the 2 CO4 R
ultimate review of specification, design, and coding.
List two principles of good design
Providing means to handle the complexity of the design process effectively.
2 2 CO4 R
Effectively managing the complexity will not only reduce the effort needed for
design but can also reduce the scope of introducing errors during design.
Differentiate verification and validation. 2
Verification refers to the set of activities that ensure that software correctly implements a
3 CO4 R
specific function. Validation refers to a different set of activities that ensure that the
software that has been built is traceable to the customer requirements.
Which type of testing address verification? Which type of testing address validation? 2
Verification involves all the static testing techniques. Examples includes reviews,
4 inspection and walkthrough CO4 U
Validation includes all the dynamic testing techniques. Example includes all types
of testing like smoke, regression, functional, systems and UAT
Point out the purpose of stud and driver used for testing. 2
Drivers and stub software need to be developed to test incompatible software.
5 The “driver” is a program that accepts the test data and prints the relevant results. CO4 U
The “stub” is a subprogram that uses the module interfaces and performs the
minimal data manipulation if required.
What are the generic characteristics of software testing? 2
All tests should be traceable to customer requirements.
6 CO4 R
Tests should be planned long before testing begins.
The Pareto principle applies to software testing.
Summarize various testing strategies for conventional software. 2
The various testing strategies are: (i) Unit testing
7 (ii) Integration testing CO4 R
(iii) Validation testing
(iv) System testing.
What are the advantages and disadvantages of big bang? 2
Advantages:
o It is convenient for small size software systems.
Disadvantages:
8 CO4 R
o Identification of defects is difficult because finding the error where it came from is
a problem, and we don't know the source of the bug.
o Small modules missed easily.
o Time provided for testing is very less.
What do you mean by test case management? 2
Test Management is a process where testing activities are managed to ensures high quality
9 and high end testing of software application. This method consists of tracking, organization, CO4 U
controlling process, checks visibility of the testing process in order to deliver the high
quality software application.
List out the errors identified during unit testing. 2
Local data structure
10 Boundry conditions CO4 R
Independent path
Error handling path
Mention the various types of system testing.
1. Recovery testing – is intended to check the system‟ s ability to recover from failures.
2. Security testing – verifies that system protection mechanism prevent improper
11 penetration or data alteration. 2 CO4 R
3. Stress testing – Determines breakpoint of a system to establish maximum service level.
4. Performance testing – evaluates the run time performance of the software, especially
real-time software
Does automation Testing Require Coding?
For automation testing, testers need to have programming skills so they can write
12 code to automate test cases and testing steps. 2 CO4 U
Automated tests require preparation and coding, but they can be run repeatedly
without requiring human effort when tests are complete.
What is difference between functional and regression testing?
The purpose of functional testing is to determine how closely the developed
13 application matches the desired requirements. 2 CO4 U
Whereas, the purpose of regression testing is to check that any change in the
application or systems have not led to code break and the system works fine.
When should we run regression tests? 2
Regression testing should be performed after any change is made to the code base.
14 CO4 U
Additionally, regression tests should also be executed anytime a previously
discovered issue has been marked as fixed and must be verified.
List the Various Testing Activities.
i. Test planning
ii. ii. Test case design
15 2 CO4 R
iii. iii. Test execution
iv. iv. Data collection
v. v. Effective evaluation
Mention the objective of Component Testing.
To verify the input and output behavior of the system.
16 To check the usability of each component. 2 CO4 R
To test the user comprehensibility of the software.
To test the state of the each components of the system.
Write the reason behind Integration Testing.
1. Incompatibility between modules of software could create errors.
17 2 CO4 U
2. To test hardware's compatibility with software.
3. If exception handling is inadequate between modules, it can create bugs.
Define Usability Testing.
Usability Testing is a significant type of software testing technique, which is comes
18 under the non-functional testing. 2 CO4 R
It is primarily used in user-centered interaction design on order to check the
usability or ease of using a software product.
Write the various types of test document. 2
o Test scenarios
o Test case
o Test plan
19 o Requirement traceability matrix(RTM) CO4 R
o Test strategy
o Test data
o Bug report
o Test execution report
Why do we need to perform Usability Testing?
We need usability testing because usability testing is to build a system with great user
20 2 CO4 U
experience. Usability is not only used for software development or website development,
but it is also used for product designing.
PART- B
Q. Questions Mar C BL
N ks O
o
1 Elaborate on the following development testing strategies with a detailed 16 C R
explanation. (i) Unit Testing (ii) Integration Testing O
UNIT TESTING 4
Unit testing involves the testing of each unit or an individual component of the software
application. It is the first level of functional testing. The aim behind unit testing is to validate
unit components with its performance.
A unit is a single testable part of a software system and tested during the development phase of
the application software.
The purpose of unit testing is to test the correctness of isolated code. A unit component is an
individual function or code of the application. White box testing approach used for unit testing
and usually done by the developers.
Whenever the application is ready and given to the Test engineer, he/she will start checking
every component of the module or module of the application independently or one by one, and
this process is known as Unit testing or components testing.
Let us see one sample example for a better understanding of the concept of unit testing:
1. Amount transfer
Below are the application access details, which is given by the customer
When we feel that the maximum test coverage is achieved, we will stop the testing.
Now, we will start performing the unit testing on the different components such as
INTEGRATION TESTING
Integration testing is the second level of the software testing process comes after unit testing. In
this testing, units or individual components of the software are tested in a group. The focus of
the integration testing level is to expose defects at the time of interaction between integrated
components or units.
Once all the components or modules are working independently, then we need to check the data
flow between the dependent modules is known as integration testing.
Let us see one sample example of a banking application, as we can see in the below image of amount
transfer.
First, we will login as a user P to amount transfer and send Rs200 amount, the confirmation
message should be displayed on the screen as amount transfer successfully. Now logout as P
and login as user Q and go to amount balance page and check for a balance in that account =
Present balance + Received Balance. Therefore, the integration test is successful.
Also, we check if the amount of balance has reduced by Rs200 in P user account.
Click on the transaction, in P and Q, the message should be displayed regarding the data and
time of the amount transfer
Guidelines for Integration Testing
We go for the integration testing only after the functional testing is completed on each module
of the application.
We always do integration testing by picking module by module so that a proper sequence is
followed, and also we don't miss out on any integration scenarios.
First, determine the test case strategy through which executable test cases can be prepared
according to test data.
Examine the structure and architecture of the application and identify the crucial modules to test
them first and also identify all possible scenarios.
Design test cases to verify each interface in detail.
Choose input data for test case execution. Input data plays a significant role in testing.
If we find any bugs then communicate the bug reports to developers and fix defects and retest.
Perform positive and negative integration testing.
Here positive testing implies that if the total balance is Rs15, 000 and we are transferring
Rs1500 and checking if the amount transfer works fine. If it does, then the test would be a pass.
And negative testing means, if the total balance is Rs15, 000 and we are transferring Rs20, 000
and check if amount transfer occurs or not, if it does not occur, the test is a pass. If it happens,
then there is a bug in the code, and we will send it to the development team for fixing that bug
2 Explain Managing Testing, Planning Testing, Documenting Testing and Assigning Responsibilities 16 C U
in detail. O
MANAGING TESTING 4
Test management process has two main part of test Management Process:
1. Planning:
Risk analysis
Test Estimation
Test planning
2. Execution:
Testing Activity
Issue Management
Test report and evolution
PLANNING TESTING
Test Plan
A test plan is a detailed document which describes software testing areas and activities. It
outlines the test strategy, objectives, test schedule, required resources (human resources,
software, and hardware), test estimation and test deliverables.
The test plan is a base of every software's testing. It is the most crucial activity which ensures
availability of all the lists of planned activities in an appropriate sequence.
The test plan is a template for conducting software testing activities as a defined process that is
fully monitored and controlled by the testing manager. The test plan is prepared by the Test
Lead (60%), Test Manager(20%), and by the test engineer(20%).
DOCUMENTATION TESTING
Testing documentation is the documentation of artifacts that are created during or before the
testing of a software application. Documentation reflects the importance of processes for the
customer, individual and organization.
Projects which contain all documents have a high level of maturity. Careful documentation can
save the time, efforts and wealth of the organization
There is the necessary reference document, which is prepared by every test engineer before
stating the test execution process. Generally, we write the test document whenever the developers
are busy in writing the code.
Once the test document is ready, the entire test execution process depends on the test document.
The primary objective for writing a test document is to decrease or eliminate the doubts related to
the testing activities.
In software testing, we have various types of test document, which are as follows:
Test scenarios
Test case
Test plan
Requirement traceability matrix(RTM)
Test strategy
Test data
ASSIGNING RESPONSIBILITIES:
The software testing team comprises of test manager, test leader and tester.
3 Discuss in detail about Component Testing and its process with neat sketch 16 C U
Component Testing is a type of software testing in which usability of each individual O
component is tested. 4
To perform this type of testing, each component needs to be in independent state and also should
be in controllable state.
The testing of each component is done independently by the tester as part of the development
cycle before integration testing is performed on it.
It helps in saving time by finding the bugs at a very early stage in the cycle.
Test structure tools or debugging tools are used for this type of testing as this is performed by
programmers on the code written by them and with the support of IDE.
Component testing has an important role in finding the issue.
Before processing with the integration testing, component testing is performed in order to ensure
that each component of the application is working correctly and as per requirement.
Objective of Component Testing:
The objective of Component Testing is:
To verify the input and output behavior of the system.
To check the usability of each component.
To test the user comprehensibility of the software.
To test the state of the each components of the system
Component Testing Process:
Requirement Analysis:
User requirement related to each component is observed.
Test Planning:
Test is planned according to the analysis of the requirements of the user.
Test Specification:
In this section it is specified that which test case must be run and which test case should be
skipped.
Test Execution:
Once the test cases are specified according to the user requirements, test cases are executed.
Test Recording:
Test recording is the having record of the defects that are detected.
Test Verification:
Test verification is the process to determine whether the product meet specification.
Completion:
This is the last phase of the testing process in which the result is analyzed.
Regression Testing
Regression testing is performed under system testing to confirm and identify that if there's any defect in
the system due to modification in any other part of the system. It makes sure, any changes done during
the development process have not introduced a new defect and also gives assurance; old defects will not
exist on the addition of new software over the time.
Load Testing
Load testing is performed under system testing to clarify whether the system can work under real-time
loads or not.
Functional Testing
Functional testing of a system is performed to find if there's any missing function in the system. Tester
makes a list of vital functions that should be in the system and can be added during functional testing and
should improve quality of the system.
Recovery Testing
Recovery testing of a system is performed under system testing to confirm reliability, trustworthiness,
accountability of the system and all are lying on recouping skills of the system. It should be able to
recover from all the possible system crashes successfully.
In this testing, we will test the application to check how well it recovers from the crashes or disasters.
Recovery testing contains the following steps:
o Whenever the software crashes, it should not vanish but should write the crash log message or
the error log message where the reason for crash should be mentioned. For
example: C://Program Files/QTP/Cresh.log
o It should kill its own procedure before it vanishes. Like, in Windows, we have the Task Manager
to show which process is running.
o We will introduce the bug and crash the application, which means that someone will lead us to
how and when the application crash will. Or By experiences, after few months of involvement
on working the product, we can get to know how and when the application will crash.
o Re-open the application; the application must be reopened with earlier settings.
For example: Suppose, we are using the Google Chrome browser, if the power goes off, then we switch
on the system and re-open the Google chrome, we get a message asking whether we want to start a new
session or restore the previous session. For any developed product, the developer writes a recovery
program that describes, why the software or the application is crashing, whether the crash log messages
are written or not, etc.
Migration Testing
Migration testing is performed to ensure that if the system needs to be modified in new infrastructure so
it should be modified without any issue.
Usability Testing
The purpose of this testing to make sure that the system is well familiar with the user and it meets its
objective for what it supposed to do.
1. Re-test All:
Re-Test is one of the approaches to do regression testing. In this approach, all the test case suits should be
re-executed. Here we can define re-test as when a test fails, and we determine the cause of the failure is a
software fault. The fault is reported, we can expect a new version of the software in which defect fixed.
In this case, we will need to execute the test again to confirm that the fault fixed. This is known as re-
testing. Some will refer to this as confirmation testing.
The re-test is very expensive, as it requires enormous time and resources.
2. Regression test Selection:
o In this technique, a selected test-case suit will execute rather than an entire test-case suit.
o The selected test case suits divided in two cases
1. Reusable Test cases.
2. Obsolete Test cases.
o Reusable test cases can use in succeeding regression cycle.
o Obsolete test cases can't use in succeeding regression cycle.
3. Prioritization of test cases:
Prioritize the test case depending on business impact, critical and frequently functionality used. Selection
of test cases will reduce the regression test suite.
What are the Regression Testing tools?
Regression Testing is a vital part of the QA process; while performing the regression we may face the
below challenges:
o Time Consuming
Regression Testing consumes a lot of time to complete. Regression testing involves existing tests
again, so testers are not excited to re-run the test.
o Complex
Regression Testing is complex as well when there is a need to update any product; lists of the test
are also increasing.
o Communicating business rule
Regression Testing ensures the existing product features are still in working order.
Communication about regression testing with a non-technical leader can be a difficult task. The
executive wants to see the product move forward and making a considerable time investment in
regression testing to ensure existing functionality working can be hard.
o Identify Impact Area
o Test Cases Increases Release by Release
o Less Resources
o No Accuracy
o Repetitive Task
o Monotonous Job
6 (i)When we are using Non- incremental integration testing and explain one of its method.(6) 16 C U
When the data flow is very complex and when it is difficult to find who is a parent and who is a O
child. And in such case, we will create the data in any module bang on all other existing modules 4
and check if the data is present.
Hence, it is also known as the Big bang method.
Big Bang Method
In this approach, testing is done via integration of all modules at once.
It is convenient for small software systems, if used for large software systems identification of
defects is difficult.
Since this testing can be done after completion of all modules due to that testing team has less
time for execution of this process so that internally linked interfaces and high-risk critical
modules can be missed easily.
Advantages:
o It is convenient for small size software systems.
Disadvantages:
o Identification of defects is difficult because finding the error where it came from is a problem,
and we don't know the source of the bug.
o Small modules missed easily.
o Time provided for testing is very less.
o We may miss to test some of the interfaces.
(ii)Explain two different methods of Incremental integration testing with their pros and Cons.(10)
Incremental integration testing is carried out by Two methods:
o Top-Down approach
o Bottom-Up approach
Top-Down Approach
The top-down testing strategy deals with the process in which higher level modules are tested
with lower level modules until the successful completion of testing of all the modules.
Stubs are used as temporary module if a module is not ready for Integration Testing
Top Module is tested with Stubs.
Stubs are replaced with actual Components in DFS or BFS Manner
In the top-down approach, we will be ensuring that the module we are adding is the child of the previous
one like Child C is a child of Child B and so on as we can see in the below image:
Advantages:
o Identification of defect is difficult.
o An early prototype is possible.
Disadvantages:
o Due to the high number of stubs, it gets quite complicated.
o Lower level modules are tested inadequately.
o Critical Modules are tested first so that fewer chances of defects.
Bottom-Up Method
The bottom to up testing strategy deals with the process in which lower level modules are tested
with higher level modules until the successful completion of testing of all the modules.
Drivers are used as temporary module if a top level module is not ready for Integration Testing
Drivers are replaced with actual Components in DFS Manner
In the bottom-up method, we will ensure that the modules we are adding are the parent of the previous
one as we can see in the below image:
Advantages
o Identification of defect is easy.
o Do not need to wait for the development of all the modules as it saves time.
Disadvantages
o Critical modules are tested last due to which the defects can occur.
o There is no possibility of an early prototype.