0% found this document useful (0 votes)
33 views32 pages

5 TH

Uploaded by

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

5 TH

Uploaded by

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

Software testing

Software testing is an important process in the software development


lifecycle. It involves verifying and validating that a software
application is free of bugs, meets the technical requirements set by
its design and development , and satisfies user requirements efficiently
and effectively.

It is method to assess the functionality of the software program. The


process checks whether the actual software matches the expected
requirements and ensures the software is bug-free. The purpose of
software testing is to identify the errors, faults, or missing requirements
in contrast to actual requirements. It mainly aims at measuring the
specification, functionality, and performance of a software program or
application.
Software testing can be divided into two steps

• Verification: It refers to the set of tasks that ensure that the software correctly
implements a specific function. It means “Are we building the product right?”.

• Validation: It refers to a different set of tasks that ensure that the software that
has been built is traceable to customer requirements. It means “Are we building
the right product?”.
Verification and validation

• Verification is the process of checking that a software achieves its


goal without any bugs. It is the process to ensure whether the
product that is developed is right or not. It verifies whether the
developed product fulfills the requirements that we have. Verification
is static testing.

• Verification means Are we building the product right?


• Validation is the process of checking whether the software product is
up to the mark or in other words product has high level requirements.
It is the process of checking the validation of product i.e. it checks
what we are developing is the right product. it is validation of actual
and expected product. Validation is the dynamic testing.
Validation means

• Are we building the right product?


• Importance of Software Testing

• Defects can be identified early: Software testing is important because if there are
any bugs they can be identified early and can be fixed before the delivery of the
software.

• Improves quality of software: Software Testing uncovers the defects in the


software, and fixing them improves the quality of the software.

• Increased customer satisfaction: Software testing ensures reliability, security,


and high performance which results in saving time, costs, and customer
satisfaction.

• Helps with scalability: Software testing type non-functional testing helps to


identify the scalability issues and the point where an application might stop
working.
Development Testing

Development Testing testing is performed by the software developers or other engineers


during the construction phase of the software development lifecycle (SDLC).
Development Testing is a continuous process in the development of a product in the
entire software development life cycle. This testing is done only once as compared to
other testing which can be performed many times. To meet the deadline date,
development testing is performed during the development phase of a software product
When to perform Development Testing?
• When writing new code or building a new software product.
• When development cost is low, the client should perform development Testing so that
the client doesn’t have to face the debugging and another testing cost.
1)Unit testing
• 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
with its performance.

Unit Testing is a fundamental aspect of software testing where individual components or


functions of a software application are tested in isolation. This method ensures that each unit of
the software performs as expected. By focusing on small, manageable parts of the application, unit
testing helps identify and fix bugs early in the development process, significantly improving code
quality and reliability.

Types of Unit Testing
• There are 2 types of Unit Testing:
• Manual Testing
• Automation Testing
Integration Testing
• Integration testing is the process of testing the interface between two
software units or modules. It focuses on determining the correctness
of the interface. The purpose of integration testing is to expose faults
in the interaction between integrated units. Once all the modules
have been unit-tested, integration testing is performed.
System Testing
System testing is a type of software testing that evaluates the overall functionality and performance of a
complete and fully integrated software solution. It tests if the system meets the specified requirements
and if it is suitable for delivery to the end-users. This type of testing is performed after the integration
testing and before the acceptance testing.

• Types of System Testing


• Performance Testing: Performance Testing is a type of software testing that is carried out to test the
speed, scalability, stability and reliability of the software product or application.
• Load Testing: Load Testing is a type of software Testing which is carried out to determine the
behavior of a system or software product under extreme load.
• Stress Testing: Stress Testing is a type of software testing performed to check the robustness of the
system under the varying loads.
• Scalability Testing: Scalability Testing is a type of software testing which is carried out to check the
performance of a software application or system in terms of its capability to scale up or scale down
the number of user request load.
Test-driven development

• Test-driven development (TDD) is an approach to program development in which you inter-leave


testing and code development. Tests are written before code and 'passing' the tests is the
critical driver of development. This is a differentiating feature of TDD versus writing unit tests
after the code is written: it makes the developer focus on the requirements before writing the
code. The code is developed incrementally, along with a test for that increment. You don't move
on to the next increment until the code that you have developed passes its test. TDD was
introduced as part of agile methods such as Extreme Programming. However, it can also be used
in plan-driven development processes.
• TDD example - a string calculator.
• The goal of TDD isn't to ensure we write tests by writing them first, but to produce working
software that achieves a targeted set of requirements using simple, maintainable solutions. To
achieve this goal, TDD provides strategies for keeping code working, simple, relevant, and free
of duplication.
.

TDD process includes the following activities:


• TDD process includes the following activities:
• Start by identifying the increment of functionality that is required. This should normally be small
and implementable in a few lines of code.
• Write a test for this functionality and implement this as an automated test.
• Run the test, along with all other tests that have been implemented. Initially, you have not
implemented the functionality so the new test will fail.
• Implement the functionality and re-run the test.
• Once all tests run successfully, you move on to implementing the next chunk of functionality.
• Benefits of test-driven development:
• Code coverage: every code segment that you write has at least one associated test so all code
written has at least one test.
• Regression testing: a regression test suite is developed incrementally as a program is developed.
• Simplified debugging: when a test fails, it should be obvious where the problem lies; the newly
written code needs to be checked and modified.
• System documentation: the tests themselves are a form of documentation that describe what the
code should be doing.
Release testing
• Release testing is the process of testing a particular release of a system that
is intended for use outside of the development team. The primary goal of the
release testing process is to convince the customer of the system that it is good
enough for use. Release testing, therefore, has to show that the system delivers
its specified functionality, performance and dependability, and that it does not
fail during normal use. Release testing is usually a black-box testing process
where tests are only derived from the system specification.
• Release testing is a form of system testing. Important differences:
• A separate team that has not been involved in the system development, should
be responsible for release testing.
• System testing by the development team should focus on discovering bugs in
the system (defect testing). The objective of release testing is to check that the
system meets its requirements and is good enough for external use (validation
testing).
PERFORMANCE Testing
scenario based testing
a test scenario is defined as any functionality that can
be tested.
• Valid username and password combination successfully logs the user in.
• Testing with the minimum allowed username and password length.
• Testing with a username and password containing alphanumeric characters.
• Successful login with the "Remember Me" option selected.
• Testing login with a username that contains both uppercase and lowercase
characters.
• Successful login using a valid email address as the username.
• Successful login using a valid phone number as the username.
• Testing login with a username that includes special characters (e.g., @, #, $).
• Successful login using social media accounts (if applicable)
USER TESTNG: User testing is the process through which the interface and functions of a website, app, product, or service are tested by real users who perform specific tasks in realistic conditions.
There are three different types of user testing
1. Alpha testing
2.Beta testing
3. Acceptance testing
Dependability Properties :
• Principal properties:
• Availability: The probability that the system will be up and running and able to deliver useful
services to users.

• Reliability: The probability that the system will correctly deliver services as expected by users.

• Safety: A judgment of how likely it is that the system will cause damage to people or its
environment.

• Security: A judgment of how likely it is that the system can resist accidental intrusions.

• Resilience: A judgment of how well a system can maintain the continuity of its critical services in the
presence of disruptive events such as equipment failure and cyber attacks.

• Other properties of software dependability:


• Reparability reflects the extent to which the system can be repaired in the event of a failure;
• Maintainability reflects the extent to which the system can be adapted to new requirements;
• Survivability reflects the extent to which the system can deliver services whilst under hostile attack;
• Error tolerance reflects the extent to which user input errors can be avoided and tolerated.

You might also like