Tybcs Soft Testing 4 Marks
Tybcs Soft Testing 4 Marks
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.
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.
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.
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.
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:
Identify performance test scenarios that take into account user variability, test data, and
target metrics. This will create one or two models.
Prepare the elements of the test environment and instruments needed to monitor
resources.
In addition to running the performance tests, monitor and capture the data generated.
Analyze the data and share the findings. Run the performance tests again using the same
parameters and different parameters.
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:
Advantages
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.
Step 1 − Create the control flow graph of the program source code where all the executable
paths are to be identified.
IF K = 580
THEN IF L > M
THEN K = L
ELSE K = M
END IF
END IF
PRINT K
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.
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.
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.
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 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.
→ 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 ?
• 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