0% found this document useful (0 votes)
5 views28 pages

Tybcs Soft Testing 4 Marks

The document discusses various software testing methodologies including the V-Model, Navigation Testing, Performance Testing, Integration Testing, System Testing, Unit Testing, and Alpha & Beta Testing. It outlines the phases and processes involved in each testing type, emphasizing the importance of thorough testing to ensure software quality and functionality. Additionally, it provides insights into specific testing strategies such as Top-Down and Bottom-Up integration, as well as the significance of test cases and performance metrics.

Uploaded by

aniketjagadale59
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views28 pages

Tybcs Soft Testing 4 Marks

The document discusses various software testing methodologies including the V-Model, Navigation Testing, Performance Testing, Integration Testing, System Testing, Unit Testing, and Alpha & Beta Testing. It outlines the phases and processes involved in each testing type, emphasizing the importance of thorough testing to ensure software quality and functionality. Additionally, it provides insights into specific testing strategies such as Top-Down and Bottom-Up integration, as well as the significance of test cases and performance metrics.

Uploaded by

aniketjagadale59
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 28

Q. Attempt any two of the following.

4 MARKS
1. With the help of diagram explain V-model.
V-Model also referred to as the Verification and Validation Model. In this, each phase of
SDLC must complete before the next phase starts. It follows a sequential design process
same as the waterfall model. Testing of the device is planned in parallel with a
corresponding stage of development.

Validation: It involves dynamic analysis method (functional, non-functional), testing is done


by executing code. Validation is the process to classify the software after the completion of
the development process to determine whether the software meets the customer
expectations and requirements.

So V-Model contains Verification phases on one side of the Validation phases on the other
side. Verification and Validation process is joined by coding phase in V-shape. Thus it is known
as V-Model.

There are the various phases of Verification Phase of V-model:

1. Business requirement analysis: This is the first step where product requirements
understood from the customer's side. This phase contains detailed communication to
understand customer's expectations and exact requirements.
2. System Design: In this stage system engineers analyze and interpret the business of
the proposed system by studying the user requirements document.
3. Architecture Design: The baseline in selecting the architecture is that it should
understand all which typically consists of the list of modules, brief functionality of each
module, their interface relationships, dependencies, database tables, architecture
diagrams, technology detail, etc. The integration testing model is carried out in a
particular phase.
4. Module Design: In the module design phase, the system breaks down into small
modules. The detailed design of the modules is specified, which is known as Low-Level
Design
5. Coding Phase: After designing, the coding phase is started. Based on the
requirements, a suitable programming language is decided. There are some guidelines
and standards for coding. Before checking in the repository, the final build is optimized
for better performance, and the code goes through many code reviews to check the
performance.

There are the various phases of Validation Phase of V-model:

1. Unit Testing: In the V-Model, Unit Test Plans (UTPs) are developed during the module
design phase. These UTPs are executed to eliminate errors at code level or unit level.
A unit is the smallest entity which can independently exist, e.g., a program module.
Unit testing verifies that the smallest entity can function correctly when isolated from
the rest of the codes/ units.
2. Integration Testing: Integration Test Plans are developed during the Architectural
Design Phase. These tests verify that groups created and tested independently can
coexist and communicate among themselves.
3. System Testing: System Tests Plans are developed during System Design Phase. Unlike
Unit and Integration Test Plans, System Tests Plans are composed by the client?s
business team. System Test ensures that expectations from an application developer
are met.
4. Acceptance Testing: Acceptance testing is related to the business requirement
analysis part. It includes testing the software product in user atmosphere. Acceptance
tests reveal the compatibility problems with the different systems, which is available
within the user atmosphere. It conjointly discovers the non-functional problems like
load and performance defects within the real user atmosphere.
Q. Explain Navigation testing in detail.

Navigation testing is the process of evaluating a software application’s ability to guide users
through its various features and functionalities. This includes testing the intuitiveness and
responsiveness of menus, buttons, links, and other navigational elements.
Navigation testing also involves identifying and addressing any potential roadblocks
hindering a user’s ability to navigate the software effectively.

Why is Navigation Testing Important?


• User Experience:
Poor navigation can lead to a frustrating user experience, causing users
to get lost, spend too much time trying to find what they need, or
abandon the application altogether.
• Functionality:
Navigation testing ensures that the application's core functionality, such
as accessing different pages, features, and functionalities, works as
expected.
• Usability:
By verifying that navigation elements are easy to find, click, and
understand, navigation testing contributes to the overall usability of the
application.
• Efficiency:
A well-designed and tested navigation system allows users to complete
tasks quickly and efficiently.
Q.What is performance testing? Write steps in performance testing.
→ Performance Testing Performance Testing also knows as ‘Perf Testing', is
a type of testing performed to check how application or software performs
under workload in terms of responsiveness and stability. The Performance
Test goal is to identify and remove performance bottlenecks from an
application. This test is mainly performed to check whether the software
meets the expected requirements for application speed, scalability, and
stability.

Steps in performance testing


1. Identify the Testing Environment.

Identifying the hardware, software, network configurations, and tools available allows the
testing team to design the test and identify performance testing challenges early on.
Performance testing environment options include:

• Subsets of production systems with fewer servers of lower specification


• Subsets of production systems with fewer servers of the same specification
• Replicas of production systems
• Actual production systems

2. Identify Performance Metrics.

In addition to identifying metrics such as response time, throughput, and constraints,


identify what are the success criteria for performance testing.

3. Plan and Design Performance Tests.

Identify performance test scenarios that take into account user variability, test data, and
target metrics. This will create one or two models.

4. Configure the Test Environment.

Prepare the elements of the test environment and instruments needed to monitor
resources.

5. Implement Your Test Design.

Prepare the tests for execution.


6. Execute Tests.

In addition to running the performance tests, monitor and capture the data generated.

7. Analyze, Report, Retest.

Analyze the data and share the findings. Run the performance tests again using the same
parameters and different parameters.

Q.What is integration testing? Explain TOP-DOWN & BOTTOM-UP


integration.
→ 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.

Types of Integration Testing


Integration testing can be classified into two parts:

o Incremental integration testing


o Non-incremental integration testing
Incremental integration testing is carried out by further 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. Major
design flaws can be detected and fixed early because critical modules tested first. In this type
of method, we will add the modules incrementally or one by one and check the data flow in
the same order.

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.
Top level critical modules are tested at last, so it may cause a defect. Or we can say that we
will be adding the modules from bottom to the top and check the data flow in the same order.
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.
Q. Explain test case with example.
The test case is defined as a group of conditions under which a tester determines whether a
software application is working as per the customer's requirements or not. Test case
designing includes preconditions, case name, input conditions, and expected result. A test
case is a first level action and derived from test scenarios.

It is an in-details document that contains all possible inputs (positive as well as negative) and
the navigation steps, which are used for the test execution process. Writing of test cases is a
one-time attempt that can be used in the future at the time of regression testing.

Test case gives detailed information about testing strategy, testing process,
preconditions, and expected output. These are executed during the testing process to
check whether the software application is performing the task for that it was developed
or not.
Test case helps the tester in defect reporting by linking defect with test case ID. Detailed
test case documentation works as a full proof guard for the testing team because if
developer missed something, then it can be caught during execution of these full-proof
test cases.

To write the test case, we must have the requirements to derive the inputs, and the test
scenarios must be written so that we do not miss out on any features for testing.
Test case template
The primary purpose of writing a test case is to achieve the efficiency of the application.
Q.What is web application ? how it works explain with diagram.
→ A web application (or web app) is a software application that runs on a web server
and is accessed through a web browser (like Chrome, Firefox, Safari).
Unlike traditional software that needs to be installed, web apps are accessed over the
internet, making them accessible from any device with a browser and an internet
connection.
Web applications are built using web technologies like HTML, CSS, and JavaScript, which
allow for the creation of dynamic and interactive user interfaces.
Common examples include webmail, online shopping platforms, social media, and online
banking.

1. User Request:
A user initiates a request to a web application by entering a URL into their browser or
clicking a link.
2. Client-Side (Browser):
The browser sends an HTTP request to the web server, containing information about
the requested resource (e.g., a webpage or data).
3. Server-Side (Web Server):
The web server receives the request and processes it.
4. Application Logic:
The web server then interacts with the web application's backend (database,
application logic) to retrieve the required data or perform the requested action.
5. Response:
The web server sends an HTTP response back to the browser, containing the
requested data or the result of the requested action.
6. Display:
The browser receives the response and renders it as a webpage or displays the data to
the user.
Q.Describe path testing with example .

→ The software path testing is an approach taken up for test case preparation. In this
technique, the control flow graph of the program source code is generated to calculate a set
of linearly independent paths. Also the cyclomatic complexity of the code is measured to get
the count of the linearly independent paths, and finally the test cases are created from each
of the paths.

The software path testing is used to obtain the complete branch coverage of the code but it
is done without touching every possible path of the control flow graph. The cyclomatic
complexity of the code guides the software path testing process.

Process of Software Path Testing


The process of the software path testing are listed below −

Step 1 − Create the control flow graph of the program source code where all the executable
paths are to be identified.

Let us consider the below block of code.

IF K = 580
THEN IF L > M
THEN K = L
ELSE K = M
END IF
END IF
PRINT K

The control flow graph for the code is shown below −


Step 2 − Calculate the cyclomatic complexity of the same code by using the below formula −

The cyclomatic complexity represented by V(G) = E - N + 2 * P. Here, E is the total count of


edges, N is the total count of nodes, and P is the total count of connected components in the
graph.

In the control flow graph shown in the step1, there are seven nodes(N) represented by blue
circles. Please note, the total count of lines of the code is equal to the total count of nodes.
There are eight edges(E) represented in red, and since there is only one method, the total count
of connected components(P) in the graph is 1. Thus as per the formula,

V(G) = E - N + 2 * P
= 8 - 7 + 2 * 1 = 3.

Step 3 − Create a set of all the paths as per the control flow graph, the cardinality of the set is
equal to the measured cyclomatic complexity.

Step 4 − Develop a test case for each path of the set calculated in the above step
Q.What is system testing ? how it test the system ? also list different types .
System Testing
Whenever we are done with the unit and integration testing, we can proceed with the system
testing.

In system testing, the test environment is parallel to the production environment. It is also
known as end-to-end testing.

In this type of testing, we will undergo each attribute of the software and test if the end
feature works according to the business requirement. And analysis the software product as a
complete system.

Click on the below link to get the complete information about system testing: system-testing.

System Testing Types


System testing encompasses various testing types that ensure both functional and non-
functional aspects of an application are thoroughly evaluated.
Functional Testing includes:

1. Unit Testing: This initial testing phase checks each individual component or unit of the
system to ensure it operates correctly, allowing developers to fix bugs early in the development
process.
2. Integration Testing: This type validates the interaction between different software units,
ensuring they work together seamlessly to achieve the expected functionality.
3. Regression Testing: Whenever modifications are made to the software, regression testing
verifies that these changes do not introduce new defects or disrupt existing functionality. It is crucial
to conduct this testing collaboratively within the development team rather than in isolation.
4. User Acceptance Testing (UAT): Conducted by end users, UAT assesses whether the system
meets their expectations and requirements, typically performed at the end of the software
development lifecycle.
Non-Functional Testing includes:

1. Performance Testing: This evaluates how the system performs under various workloads,
assessing factors like speed, stability, and responsiveness to ensure it can handle multiple users
accessing it simultaneously.
2. Security Testing: This involves identifying vulnerabilities within the application, simulating
potential attacks to uncover weak points in the code that could be exploited by hackers.
3. Usability Testing: Focused on the user experience, usability testing assesses whether the
application is intuitive and easy to use, ensuring it includes helpful resources like user manuals or
help menus.
4. Compatibility Testing: This type checks how well the system functions across different
browsers, platforms, operating systems, and devices, ensuring consistent performance regardless of
the environment.

Q.What is unit testing ? How it works ? Explain with example.


→ Unit Testing is a software testing technique by means of which individual
units of software i.e. group of computer program modules, usage procedures
and operating procedures are tested to determine whether they are suitable
for use or not. It is a testing method using which every independent modules
are tested to determine if there are any issue by the developer himself. It is
correlated with 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 software product is carried out
during the development of an application. An individual component may be
either an individual function or a procedure. Unit Testing is typically
performed by the developer. In SDLC or V Model, Unit testing is first level of
testing done before integration testing. Unit testing is such type of testing
technique that is usually performed by the developers. Although due to
reluctance of developers to tests, quality assurance engineers also do unit
testing.

Types of Unit Testing:


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

Objective of Unit Testing


To isolate a section of code.
To verify the correctness of code.
To test every function and procedure.
To fix bug early in development cycle and to save costs.
To help the developers to understand the code base and enable them to make
changes quickly.
To help for code reuse.

Q.Write a short note on alpha & beta testing


→ Alpha testing is a type of acceptance testing, which is performed to identify all possible
bugs/issues before releasing the product to the end-user. Alpha test is a preliminary software
field test carried out by a team of users to find out the bugs that were not found previously
by other tests. Alpha testing is to simulate a real user environment by carrying out tasks and
operations that actual user might perform. Alpha testing implies a meeting with a software
vendor and client to ensure that the developers appropriately meet the client's requirements
in terms of the performance, functionality, and durability of the software.

Alpha testing needs lab environment, and usually, the testers are an internal employee of the
organization. This testing is called alpha because it is done early on, near the end of the
software development, but before beta testing.

Beta Testing is a type of acceptance testing; it is the final test before shipping a product to
the customers. Beta testing of a product is implemented by "real users "of the software
application in a "real environment." In this phase of testing, the software is released to a
limited number of end-users of the product to obtain feedback on the product quality. It
allows the real customers an opportunity to provide inputs into the design, functionality, and
usability of the product. These inputs are essential for the success of the product. Beta testing
reduces product failure risks and increases the quality of the product through customer
validation. Direct feedback from customers is a significant advantage of beta testing. This
testing helps to tests the software in a real environment. The experiences of the previous
users are forwarded back to the developers who make final changes before releasing the
software product.
Q.What is cyclomatic complexity and graph matrix ? Explain with example .
Q.Explain process of stress testing with example
→ In software testing, stress testing is an important part of performance testing
under non-functional testing.

Stress Testing is testing used to check the accessibility and robustness of software
beyond usual functional limits. It mainly considers for critical software but it can also
be used for all types of software applications.

It is also known as Endurance Testing, fatigue testing or Torture Testing.

The stress testing includes the testing beyond standard operational size, repeatedly
to a breaking point, to get the outputs.

It highlights the error handling and robustness under a heavy load instead of correct
behavior under regular conditions.

In other words, we can say that Stress testing is used to verify the constancy and

dependability of the system and also make sure that the system would not crash under
disaster circumstances.

The Objective of Stress Testing

The main objective of using stress testing is to fulfill the following aspects:

o The primary purpose of executing the stress testing is to confirm that the
software does not crash in lacking computational resources like disk space,
memory, and network request.
o The implementation of stress testing certifies that the system fails and
improves effortlessly, known as the recoverability process.
o We can use stress testing to discover hardware issues, data corruption issues.
o Stress testing will help us to identify the security weaknesses that might sneak-
in throughout constant peak load.

Example 1: E-commerce website/ application


Throughout the new product releases, sales, holidays, promotions, and festival offers,
the e-commerce application tends to get many users in a very short time.
Q.Compare verification and Validation .

→ Verification testing
Verification testing includes different activities such as business requirements, system
requirements, design review, and code walkthrough while developing a product.

It is also known as static testing, where we are ensuring that "we are developing the right
product or not". And it also checks that the developed application fulfilling all the
requirements given by the client.

Validation testing

Validation testing is testing where tester performed functional and non-functional testing.
Here functional testing includes Unit Testing (UT), Integration Testing (IT) and System
Testing (ST), and non-functional testing includes User acceptance testing (UAT).
Validation testing is also known as dynamic testing, where we are ensuring that "we have
developed the product right." And it also checks that the software meets the business needs
of the client.
Q.Difference between alpha & beta testing

Q. what is basis path testing ?

Basis Path Testing is a white-box testing technique based on a program's or


module's control structure. A control flow graph is created using this structure,
and the many possible paths in the graph are tested using this structure.
The approach of identifying pathways in the control flow graph that give a
foundation set of execution paths through the program or module is known as
basis path testing.
Because this testing is dependent on the program's control structure, it
necessitates a thorough understanding of the program's structure. Four stages
are followed to create test cases using this technique −
• Create a Control Flow Graph.
• Calculate the Graph's Cyclomatic Complexity
• Identify the Paths That Aren't Connected
• Create test cases based on independent paths.

Control Flow Graph


A control flow graph (or simply flow graph) is a directed graph that depicts a
program's or module's control structure. V number of nodes/vertices and E
number of edges make up a control flow graph (V, E). A control graph can also
include the following −
• A node with multiple arrows entering it is known as a junction node.
• A node having more than one arrow leaving it is called a decision node.
• The area encompassed by edges and nodes is referred to as a region (area outside the graph
is also counted as a region.).
Below are the notations utilized while constructing a flow graph −
• Sequential Statements −

• If – Then – Else
• Do – While

• While – Do
• Switch – Case

Cyclomatic Complexity
The cyclomatic complexity V(G) is said to be a metric for a program's logical
complexity. Three distinct formulas can be used to compute it −
V(G) = e - n + 2*P is a formula based on edges and nodes.
Where e is the number of edges, n denotes the number of vertices,
and P denotes the number of connected components.
Take, for example, the first graph shown above.
where e = 4, n = 4, and p = 1 are all integers
V(G) = 4 - 4 + 2 * 1 = 2 cyclomatic complexity

You might also like