Nothing Special   »   [go: up one dir, main page]

4 Se

Download as pdf or txt
Download as pdf or txt
You are on page 1of 17

EXCEL ENGINEERING COLLEGE

(Autonomous)
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
20CS402- Software Engineering
Regulations 2020
Question Bank
UNIT – IV ((TESTING STRATEGIES)
S.No Questions
1 Define Software Testing.
Software testing is a critical element of software quality assurance and represents the ultimate review of specification, design,
and coding.
2 List two principles of good design
● Providing means to handle the complexity of the design process effectively.
● Effectively managing the complexity will not only reduce the effort needed for design but can also reduce
the
● scope of introducing errors during design.
3 Differentiate verification and validation.
Verification refers to the set of activities that ensure that software correctly implements a 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.
4 Which type of testing address verification? Which type of testing address validation?
● Verification involves all the static testing techniques. Examples includes reviews, inspection and walkthrough
● Validation includes all the dynamic testing techniques. Example includes all types of testing like smoke, regression,
functional, systems and UAT
5 Point out the purpose of stud and driver used for testing.
Drivers and stub software need to be developed to test incompatible software.
● The “driver” is a program that accepts the test data and prints the relevant results.
● The “stub” is a subprogram that uses the module interfaces and performs the minimal data manipulation if required.
6 What are the generic characteristics of software testing?
● All tests should be traceable to customer requirements.
● Tests should be planned long before testing begins.
● The Pareto principle applies to software testing.
7 Summarize various testing strategies for conventional software.
The various testing strategies are: (i) Unit testing
(ii) Integration testing
(iii) Validation testing
(iv) System testing.
8 What are the advantages and disadvantages of big bang?
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.
9 What do you mean by test case management?
Test Management is a process where testing activities are managed to ensures high quality and high end testing of software
application. This method consists of tracking, organization, controlling process, checks visibility of the testing process in order to
deliver the high quality software application.
10 List out the errors identified during unit testing.
● Local data structure
● Boundary conditions
● Independent path
● Error handling path
11 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 penetration or data alteration.
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
12 Does automation Testing Require Coding?
● For automation testing, testers need to have programming skills so they can write code to automate test cases and
testing steps.
● Automated tests require preparation and coding, but they can be run repeatedly without requiring human effort when
tests are complete.
13 What is difference between functional and regression testing?
● The purpose of functional testing is to determine how closely the developed application matches the desired
requirements.
● 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.
14 When should we run regression tests?
● Regression testing should be performed after any change is made to the code base.
● Additionally, regression tests should also be executed anytime a previously discovered issue has been marked as fixed
and must be verified.
15 List the Various Testing Activities.
i. Test planning
ii. ii. Test case design
iii. iii. Test execution
iv. iv. Data collection
v. v. Effective evaluation
16 Mention the objective of Component Testing.
● 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.
17 Write the reason behind Integration Testing.
1. Incompatibility between modules of software could create errors.
2. To test hardware's compatibility with software.
3. If exception handling is inadequate between modules, it can create bugs.
18
Define Usability Testing.
● Usability Testing is a significant type of software testing technique, which is comes under the non-functional testing.
● It is primarily used in user-centered interaction design on order to check the usability or ease of using a software
product.
19 Write the various types of test document.
o Test scenarios
o Test case
o Test plan
o Requirement traceability matrix(RTM)
o Test strategy
o Test data
o Bug report
o Test execution report
20 Why do we need to perform Usability Testing?
We need usability testing because usability testing is to build a system with great user experience. Usability is not only used
for software development or website development, but it is also used for product designing.
PART-B

Q. Questions
NO
1
Define Integration testing. Distinguish top-down and bottom-up integration. How is testing different from
debugging? Justify

Incremental Integration Testing Approach


Incremental testing is the most vital part of integration testing. The
modules are added in ascending order one by one as per the customer's need. And the
selected modules need to be related logically to each other.

Usually, two or more modules are added and tested to fix the precision of functions.
And, the process will continue until all the modules or components are tested s
successfully.

In simple words, we can say that when there is a strong relationship between the
dependent modules, we will perform the incremental integration testing.
Now, let look into the definition and basic working of top-down and bottom-up
incremental integration testing.

What is Top-down Integration Testing?


In top-down incremental integration testing, we will add the modules incrementally or one by
one and test the data flow in similar order as we can
This testing technique deals with how higher-level modules are tested with lower-level modules
until all the modules have been tested successfully.
In the top-down method, we will also make sure that the module we are adding is the child of
the previous one, like Child C, is a child of Child B

The purpose of executing top-down integration testing is to detect the significant design flaws
and fix them early because required modules are tested first

What is Bottom Up Integration Testing?


The next testing approach we are talking about is bottom-up integration testing.
o This type of testing method deals with how lower-level modules are tested with
higher-level modules until all the modules have been tested successfully.

o In bottom-up testing, the top-level critical modules are tested, at last. Hence it
may cause a defect.

o In simple words, we can say that we will be adding the modules from

the bottom to the top and test the data flow in similar order as we can see in

In the bottom-up method, we will ensure that the modules we are adding are the parent of
the previous one as we observe in the following image
Key difference between top-down and bottom-up
incremental integration testing
The below facts explain the critical differences between top-down and bottom-upintegration
testing, which will allow test engineers to create an informed decision
regarding which type of integration testing approach they want to select for thedifferent
testing processes

1. The top-down integration testing approach is simple and not data- intensive; on
the other hand, the bottom-up integration testing approach is complex and data-
intensive.

2. The process of top-down integration testing is much simpler as compared to bottom-


up integration testing.

3. Top-down approaches are backward-looking; on the other hand, the bottom-up


approaches are forward-looking.

4. The top-down integration testing works through significant to minor components,


whereas the bottom-up approach works through small to essential components or
modules.

5. Top-down approach analyses the risk by collecting the impact of internal operational
failures, whereas the bottom-up approach analyses the risks in individual processes with
models' help.
In the top-down approach, the stubs are used to simulate the sub module, which implies that
the Stub works as a momentary replacement. On the other hand, in the bottom-up testing
approach, the drivers simulate themain module, which means that the Driver works as a
momentary replacement.

2 Discuss in detail about Component Testing and its process with neat sketch

Component Testing is a type of software testing in which usability of eachindividual


component is tested. Along with the usability test, behavioral
evaluation is also done for each individual component. To perform this type oftesting,
each component needs to be in independent state and also should bein controllable
state. Each component of the software should be user comprehensible.
Assume in a software application consists of five components. 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
supportof IDE. Defects detected during component testing are fixed as soon as possible
when they are found without maintaining the records.
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 correctlyand 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 whichtest case
should be skipped.
• Test Execution:
Once the test cases are specified according to the user requirements, testcases 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 meetspecification.
• Completion:
This is the last phase of the testing process in which the result is analyze
Define unit testing. Why is it important? Explain Unit Testing with example and write its pros andcons.
Prerequisite – Types of Software Testing Unit Testing is a software testing technique
3 by means of which individual units of software i.e. group of computer program modules,
usage procedures, and operating procedures aretested to determine whether they are
suitable for use or not. It is a testing method using which every independent module is
tested to determine if there is an issue by the developer himself. It is correlated with the
functional correctness of the independent modules. Unit Testing is defined as a type of
software testing where individual components of a software are tested. Unit

Testing of the software product is carried out during the development of an application.
An individual component may be either an individual function or aprocedure. Unit
Testing is typically performed by the developer. In SDLC or VModel, Unit testing is the
first level of testing done before integration testing. Unit testing is such a type of testing
technique that is usually performed by developers. Although due to the reluctance of
developers to test, quality assurance engineers also do unit testing.

Objective of Unit Testing:


The objective of Unit Testing is: 1.To isolate
a section of code.
2. To verify the correctness of the code.

3. To test every function and procedure.

4. To fix bugs early in the development cycle and to save costs.

5. To help the developers to understand the code base and enable them tomake

changes quickly.
To help with code reuse
Types of Unit Testing:

There are 2 types of Unit Testing: Manual, and Automated.

behavior of the system by giving the input and checking the functionality output
including the internal design structure and code of the modules. 3.Gray Box Testing:
This technique is used in executing the relevant test cases, test methods, test
functions, and analyzing the code performancefor the modules.

Unit Testing Tools:

Here are some commonly used Unit Testing tools:1.Jtest


2. Junit

3. NUnit 4.EMMA
5.PHPUnit
Advantages of Unit Testing:

1. Unit Testing allows developers to learn what functionality is provided by aunit and

how to use it to gain a basic understanding of the unit API.


2. Unit testing allows the programmer to refine code and make sure themodule

works properly.
3. Unit testing enables testing parts of the project without waiting for othersto be
completed.

Disadvantages of Unit Testing:

1. The process is time-consuming for writing the unit test cases.

2. Unit Testing will not cover all the errors in the module because there is achance of

having errors in the modules while doing integration testing.


3. Unit Testing is not efficient for checking the errors in the UI(UserInterface)

part of the module.


4. It requires more time for maintenance when the source code is changed
frequently.
5.It cannot cover the non-functional testing parameters such as scalability,the
performance of the system, etc.

4 Explain about How to perform Regression Testing?

Regression Testing is the process of testing the modified parts of the code and the parts
that might get affected due to the modifications to ensure that nonew errors have been
introduced in the software after the modifications have been made. Regression means
return of something and in the software field, itrefers to the return of a bug.
When to do regression testing?
• When a new functionality is added to the system and the code has beenmodified
to absorb and integrate that functionality with the existing code.
• When some defect has been identified in the software and the code isdebugged
to fix it.
Process of Regression testing:
Firstly, whenever we make some changes to the source code for any reasons like adding
new functionality, optimization, etc. then our program when executed fails in the
previously designed test suite for obvious reasons. After the failure, the source code is
debugged in order to identify the bugs in the program. After identification of the bugs in
the source code, appropriate modifications are made. Then appropriate test cases are
selected from the already existing test suite which covers all the modified and affected
parts of the source code. We can add new test cases if required. In the end regression
testing is performed using the selected test cases.
Techniques for the selection of Test cases for Regression Testing:
Select all test cases: In this technique, all the test cases are selected from
5 Define documentation Testing and explain its types. Write its benefit and
Drawback
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.
Types of test document
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
 Bug report
 Test execution report

Test Scenarios
It is a document that defines the multiple ways or combinations of testing the application. Generally, it is
prepared to understand the flow of an application. It does not consist of any inputs and navigation steps.
Test case
It is an in-details document that describes step by step procedure to test an application. It consists of the
complete navigation steps and inputs and all the scenarios that need to be tested for the application. We will
write the test case to maintain the consistency, or every

tester will follow the same approach for organizing the test document.

Test plan
It is a document that is prepared by the managers or test lead. It consists of all information about the testing activities.
The test plan consists of multiple components such as Objectives, Scope, Approach, Test Environments, Test
methodology, Responsibility, Effort estimation, Entry and Exit criteria, Schedule, Tools, Defect tracking, Test
Deliverable, Assumption,
Risk,
and Mitigation Plan or Contingency Plan.
Requirement Traceability Matrix (RTM)
The Requirement traceability matrix [RTM] is a document which ensures that all the test case has been
covered. This document is created before the test execution process to verify that we did not miss writing any
test case for the particular requirement.
Test strategy
The test strategy is a high-level document, which is used to verify the test types (levels) to be executed for the
product and also describe that what kind of technique has to be used and which module is going to be tested.
The Project Manager can approve
it. It includes the multiple components such as documentation formats, objective, test processes, scope, and customer
communication strategy, etc. we cannot modify the test strategy.
Test data
It is data that occurs before the test is executed. It is mainly used when we are implementing the test case.
Mostly, we will have the test data in the Excel sheet format and entered manually while performing the test
case.
The test data can be used to check the expected result, which means that when the test data is entered, the
expected outcome will meet the actual result and also check the application performance by entering the in-
correct input data.
Bug report
The bug report is a document where we maintain a summary of all the bugs which occurred during the testing
process. This is a crucial document for both the developers and test engineers because, with the help of bug
reports, they can easily track the defects, report the bug, change the status of bugs which are fixed
successfully, and also avoid their repetition in further process.
Test execution report
It is the document prepared by test leads after the entire testing execution process is completed. The test
summary report defines the constancy of the product, and it contains information like the modules, the number
of written test cases, executed, pass, fail, and their percentage. And each module has a separate spreadsheet
of their respective module.
o

Benefits of using Documentation


o Documentation clarifies the quality of methods and objectives.
o It ensures internal coordination when a customer uses software application.
o It ensures clarity about the stability of tasks and performance.
o It provides feedback on preventive tasks.
o It provides feedback for your planning cycle.
o It creates objective evidence for the performance of the quality management system.
o If we write the test document, we can't forget the values which we put in the first phase.
o It is also a time-saving process because we can easily refer to the text document.
o It is also consistent because we will test on the same value.
The drawback of the test document
o It is a bit tedious because we have to maintain the modification provided by the customer and parallel
change in the document.
o If the test documentation is not proper, it will replicate the quality of the application.
o Sometimes it is written by that person who does not have the product knowledge.
o Sometimes the cost of the document will be exceeding its value.
Why system testing is Important. Explain different types of system testing.
Why is System Testing Important?
o System Testing gives hundred percent assurance of system performance as it covers end to end function of the
system.
o It includes testing of System software architecture and business requirements.
o It helps in mitigating live issues and bugs even after production.
System testing uses both existing system and a new system to feed same data in both and then compare the differences in
functionalities of added and existing functions so, the user can understand benefits of new added functions of the system
Types of System Testing
System testing is divided into more than 50 types, but software testing companies typically uses some of them. These are listed
below

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.
o 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.
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.
We will introduce the bug and crash the application, which means that someone will lead us to how and when the

Usability testing :
Usability testing is instead focused on the end-user, on how easily he was
able to use the interface and if the design of the interface was friendly
enough
Hardware AND SOFTWARE TESTING :
testing is one of the final phases in the product development process that
validates the complete integration of the product. The purpose of the test is
to evaluate the end-to-end system specifications and provide information
about the quality of a product..

(Note:*Blooms Level (R – Remember, U – Understand, AP – Apply, AZ – Analyze, E –


Evaluate, C – Create)
PART A- Blooms Level : Remember, Understand, Apply
PART B- Blooms Level: Understand, Apply, Analyze, Evaluate(if possible)
Marks: 16 Marks, 8+8 Marks, 10+6 Marks)

Subject In charge Course Coordinator HOD


IQAC
(Name & Signature) (Name & Signature)

You might also like