Software Testing and Quality Assurance Third Question Paper
Software Testing and Quality Assurance Third Question Paper
The
application functionalities are registration, login, check items, price, delivery time etc. [6]
Creating a detailed test plan for an online grocery ordering mobile application involves
breaking down the testing process into various stages and defining the scope, objectives, and
specific test scenarios for each functionality. Here's a comprehensive test plan for the specified
functionalities:
1. Introduction
1.1 Objective:
Verify the correct functioning of the online grocery ordering mobile application.
1.2 Scope:
The test plan covers testing of the registration, login, checking items, price, and delivery time
functionalities.
Registration
Login
Item browsing
Price calculation
2. Test Environment
Test the application on various mobile devices (iOS and Android) to ensure compatibility.
2.2 Browser Compatibility:
3. Functional Testing
3.1 Registration
3.2 Login
4. Usability Testing
4.1 Navigation:
5. Performance Testing
6. Security Testing
6.2 Authentication:
7. Compatibility Testing
8. Regression Testing
11. Conclusion
11.1 Summary:
11.2 Recommendations:
12. Approval
This test plan provides a structured approach to testing the key functionalities of an online
grocery ordering mobile application. It covers various aspects, including functional, usability,
performance, security, and compatibility testing. Adjust the plan according to the specific
requirements and features of your application.
b) Write the test cases for above [4]
Test Registration with 1. Navigate to the registration Application displays an error for
TC_REG_002 Invalid Email Format page. an invalid email format.
Test Password Strength 1. Navigate to the registration Application displays an error for
TC_REG_003 Requirements page. a weak password.
button.
button.
Ensure Secure Password 1. Verify secure storage and Password recovery does not
TC_LOG_004 Handling transmission of passwords. expose passwords.
These are sample test cases, and you can expand or modify them based on the specific requirements
and features of your application.
You
write a testy case online grossary ordering mobile application. The application functionalities are
registration, login, check items, price, delivery time etc
Q2) a) Write the test cases for testing username and password to use email account.
i) var i, x, sum
ii) i=0
iii) sum = 0
v) while (x!=0)
VII) i=i+1
viii) Input x
x) print (sum)
Data flow control analysis is a technique used to analyze the flow of data in a program. It
helps in understanding how data is manipulated and transferred between different variables.
Let's analyze the given code snippet step by step:
plaintext
Copy code
i) var i, x, sum
plaintext
Copy code
ii) i=0
plaintext
Copy code
iii) sum = 0
plaintext
Copy code
plaintext
Copy code
v) while (x!=0)
This begins a while loop that continues as long as the value of x is not equal to 0.
plaintext
Copy code
Within the loop, the value of x is added to the current value of sum.
plaintext
Copy code
VII) i = i + 1
plaintext
Copy code
viii) Input x
plaintext
Copy code
Copy code
x) print(sum)
i is initialized to 0.
sum is initialized to 0.
x is input.
Input: x
Output: sum
Variables: i, x, sum
Inside the loop, there is a continuous flow of data between x and sum, with the loop
continuing until x becomes 0. The loop also increments the value of i. The final result (sum) is
printed after the loop.
03) What do you mean by software quality assurance? Explain SQA activities.[10]
Disadvantage of SQA:
There are a number of disadvantages of quality assurance. Some of them
include adding more resources, employing more workers to help maintain
quality and so much more.
Whether you're preparing for your first job interview or aiming to upskill in this
ever-evolving tech landscape, GeeksforGeeks Courses are your key to
success. We provide top-quality content at affordable prices, all geared towards
accelerating your growth in a time-bound manner. Join the millions we've
already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
OR
--> Software quality is a multi-faceted concept that encompasses various factors and metrics.
Software quality factors are characteristics or attributes that describe the overall quality of a
software product, while software quality metrics are quantitative measures used to assess
these factors. Let's explore both concepts:
1. **Functionality**: This factor assesses whether the software meets its specified functional
requirements. It includes features, capabilities, and the extent to which the software
performs its intended tasks correctly.
2. **Reliability**: Reliability measures how well the software operates without failure. It
includes factors like fault tolerance, availability, and the ability to recover from errors.
3. **Usability**: Usability refers to the software's user-friendliness and the ease with which
users can interact with and navigate through the application. It includes aspects like user
interface design and user satisfaction.
4. **Efficiency**: Efficiency assesses how well the software performs with respect to system
resources, such as CPU and memory usage. It aims to minimize resource consumption while
achieving the desired results.
7. **Security**: Security evaluates the software's ability to protect data and functions from
unauthorized access and malicious attacks. It includes aspects like encryption, authentication,
and vulnerability to threats.
8. **Scalability**: Scalability measures how well the software can accommodate increased
workload or data volume without a significant degradation in performance. It's important for
systems that need to handle growing user bases.
1. **Defect Density**: Measures the number of defects per unit of size (e.g., lines of code),
indicating code quality and reliability.
2. **Code Coverage**: Evaluates how much of the code is exercised by test cases, helping to
identify untested areas.
3. **Response Time**: Quantifies how quickly the software responds to user interactions,
indicating performance quality.
4. **Customer Satisfaction**: Assesses user feedback and satisfaction through surveys,
ratings, and user experience assessments.
6. **Maintainability Index**: Measures how easy it is to maintain and modify the code,
based on factors like complexity and documentation.
7. **Usability Testing Metrics**: Metrics related to user testing, such as task success rates,
error rates, and time on task, evaluate usability.
9. **Regression Test Pass Rate**: Monitors how well the software passes a suite of
regression tests after changes are made.
10. **Technical Debt**: Quantifies the amount of work needed to address design or
implementation shortcuts.
Choosing the right quality factors and metrics depends on the specific context of the software
project, its goals, and the stakeholders' requirements. These factors and metrics help
organizations measure, monitor, and improve the quality of their software, leading to more
reliable and user-friendly products.
1. **Verification**:
- **Goal**: The primary goal of validation is to ensure that the software meets
user expectations and operates correctly in its target environment. It emphasizes
evaluating the software from a user's perspective to confirm that it delivers the
desired functionality and quality.
In summary, verification and validation are integral parts of the software testing
and quality assurance process. Verification ensures that the software is built
correctly and complies with design and specification requirements, while
validation ensures that the software is the right product that satisfies user needs
and functions correctly in its intended environment. Both processes are essential
for delivering high-quality software products.
b)What are levels of testing? Explain in detail. [5]
In order to test any application, we need to go through all the above phases of SDLC.
Like SDLC, we have multiple levels of testing, which help us maintain the quality of the
software.
In software testing, we have four different levels of testing, which are as discussed
below:
1. Unit Testing
2. Integration Testing
3. System Testing
4. Acceptance Testing
As we can see in the above image that all of these testing levels have a specific objective
which specifies the value to the software development lifecycle.
The first level of testing involves analyzing each unit or an individual component of
the software application.
Unit testing is also the first level of functional testing. The primary purpose of
executing unit testing is to validate unit components with their performance.
Unit testing will help the test engineer and developers in order to understand the base
of code that makes them able to change defect causing code quickly. The developers
implement the unit.
For more information on unit testing, refers to the following link:
https://www.javatpoint.com/unit-testing.
It is mainly used to test the data flow from one module or component to other
modules.
In integration testing, the test engineer tests the units or separate components or
modules of the software in a group.
The primary purpose of executing the integration testing is to identify the defects at the
interaction between integrated components or units.
When each component or module works separately, we need to check the data flow
between the dependent modules, and this process is known as integration testing.
We only go for the integration testing when the functional testing has been completed
successfully on each application module.
In simple words, we can say that integration testing aims to evaluate the accuracy of
communication among all the modules.
https://www.javatpoint.com/integration-testing.
In simple words, we can say that System testing is a sequence of different types of tests
to implement and examine the entire working of an integrated software computer
system against requirements.
https://www.javatpoint.com/system-testing.
The software has passed through three testing levels (Unit Testing, Integration
Testing, System Testing). Some minor errors can still be identified when the end-user
uses the system in the actual scenario.
In simple words, we can say that Acceptance testing is the squeezing of all the testing
processes that are previously done.
The acceptance testing is also known as User acceptance testing (UAT) and is done by
the customer before accepting the final product.
Usually, UAT is done by the domain expert (customer) for their satisfaction and checks
whether the application is working according to given business scenarios and real-time
scenarios.
https://www.javatpoint.com/acceptance-testing.
Conclusion
In this tutorial, we have learned all the levels of testing. And we can conclude that tests
are grouped based on where they are added in the Software development life cycle.
All these SDLC models' phases (requirement gathering, analysis, design, coding or
execution, testing, deployment, and maintenance) undergo the process of software
testing levels.
QR
Test Driven Development is the process in which test cases are written before the code
that validates those cases. It depends on repetition of a very short development cycle.
Test driven Development is a technique in which automated Unit test are used to drive
the design and free decoupling of dependencies.
The following sequence of steps is generally followed:
1. Add a test – Write a test case that describe the function completely. In order to make
the test cases the developer must understand the features and requirements using user
stories and use cases.
2. Run all the test cases and make sure that the new test case fails.
3. Write the code that passes the test case
4. Run the test cases
5. Refactor code – This is done to remove duplication of code.
6. Repeat the above mentioned steps again and again
Motto of TDD:
1. Red – Create a test case and make it fail
2. Green – Make the test case pass by any means.
3. Refactor – Change the code to remove duplicate/redundancy.
Benefits:
Unit test provides constant feedback about the functions.
Quality of design increases which further helps in proper maintenance.
Test driven development act as a safety net against the bugs.
TDD ensures that your application actually meets requirements defined for it.
TDD have very short development lifecycle.
Whether you're preparing for your first job interview or aiming to upskill in this ever-
evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide
top-quality content at affordable prices, all geared towards accelerating your growth in a
time-bound manner. Join the millions we've already empowered, and we're here to do the
same for you. Don't miss out - check it out now!
-->
Black Box Testing White Box Testing
a) Project Risk
-->
Project risk is a fundamental aspect of project management. It encompasses all the potential
uncertainties and challenges that can affect the successful completion of a project. These risks
may manifest in various forms, including technical, financial, operational, or external factors.
Examples of project risks could include:
- Scope changes: Unexpected changes in project requirements or objectives that can impact
project timelines and budget.
- Market dynamics: Shifting market conditions or competitive forces that influence project
viability.
Effective project risk management involves the identification, assessment, prioritization, and
mitigation of these risks to ensure that the project is completed within its constraints while
delivering the expected outcomes.
b) Product Risk
--> Product risk relates to the potential issues and uncertainties surrounding the quality and
reliability of the software product being developed. These risks are focused on the product
itself and can encompass a wide range of concerns:
- Defects and quality issues: The likelihood of software defects, code errors, or performance
bottlenecks that could compromise the product's functionality and reliability.
- Scalability problems: Risks related to the product's ability to handle increased user loads or
data volumes without degradation in performance.
- Security vulnerabilities: The potential for security breaches, data leaks, or unauthorized
access that can compromise user data and trust.
- User satisfaction: Risks related to user experience, user interface design, and the alignment
of the product with user needs and expectations.
Managing product risks involves a combination of thorough testing, code reviews, security
assessments, and performance optimization to ensure that the software product meets the
required quality standards and performs reliably in real-world scenarios.
c) Selenium
Selenium is a popular open-source automation testing framework primarily used for testing
web applications. It provides a suite of tools and libraries that enable testers to automate
interactions with web browsers. Some key features and components of Selenium include:
- **Cross-Browser Testing**: Testers can create and execute test scripts that run on different
web browsers, ensuring that web applications function consistently across various platforms.
- **Parallel Testing**: Selenium supports parallel test execution, enabling faster test runs and
improved efficiency.
- **Integration**: Selenium can be integrated with various testing frameworks and tools,
making it a versatile choice for test automation.
Selenium is a valuable tool for automating repetitive testing tasks, regression testing, and
ensuring the functionality and user interface of web applications.
d) Appium:
Appium is an open-source automation testing framework that specializes in mobile
application testing. It allows testers to automate the testing of mobile apps on both Android
and iOS platforms. Here are some key characteristics and capabilities of Appium:
- **Cross-Platform Testing**: Appium supports both Android and iOS, making it suitable for
cross-platform mobile application testing.
- **Multiple Programming Languages**: Testers can use programming languages like Java,
Python, C#, and Ruby to write test scripts.
- **Real Devices and Emulators**: Appium works with real devices and emulators, providing
flexibility in testing environments.
- **Native, Hybrid, and Mobile Web Apps**: Appium can test native, hybrid, and mobile web
applications, covering a wide range of mobile software.
- **Standardized API**: Appium provides a standardized API for interacting with mobile apps,
ensuring consistent test automation across platforms.
Appium is a valuable tool for organizations looking to ensure the functionality, reliability, and
compatibility of their mobile applications across different devices and operating systems.
e) Incident Management:
Incident management is a structured process for handling and resolving incidents that disrupt
an organization's normal operations or services. It involves several key stages:
- **Incident Investigation**: Analyzing the incident's root cause and potential solutions.
- **Incident Resolution**: Implementing corrective actions to restore normal operations.
- **Incident Communication**: Informing stakeholders about the incident, its impact, and the
resolution progress.
Incident management is crucial for minimizing disruptions, reducing downtime, and ensuring
continuity of services. It is a key component of IT service management and is often supported
by incident management tools and software. Effective incident management helps
organizations maintain high levels of service quality and customer satisfaction.