0% found this document useful (0 votes)
42 views59 pages

Chapter Five-Levels of Testing

The document discusses different levels of software testing including unit testing, integration testing, and system testing. Unit testing involves testing individual software components or units in isolation. Integration testing involves testing integrated units to check for defects in interaction between components. System testing involves testing the full system from a user perspective to check for end-to-end flow and regression defects.

Uploaded by

miki
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)
42 views59 pages

Chapter Five-Levels of Testing

The document discusses different levels of software testing including unit testing, integration testing, and system testing. Unit testing involves testing individual software components or units in isolation. Integration testing involves testing integrated units to check for defects in interaction between components. System testing involves testing the full system from a user perspective to check for end-to-end flow and regression defects.

Uploaded by

miki
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/ 59

Levels of software testing

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 1


 .

 … procedure for finding the missing


areas and avoiding overlapping and
repetition between the development life
cycle stages.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 2


 The first level of testing involves analysing each
unit or an individual component
 It is testing of small chunks of codes
 It is an early identification of defects
 It is the first level of functional testing
 The primary purpose or reason is
◦ to validate unit components with their performance.
◦ to test the correctness of inaccessible code.
 A unit component is
◦ an individual function or regulation of the
application
◦ the smallest testable part of the software.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 3
 Why unit testing
◦ helps tester and developers to understand the
base of code that makes them able to change
defect causing code quickly.
◦ helps in the documentation.
◦ fixes defects very early in the development phase
◦ It helps with code reusability by migrating code
and test cases.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 4


 Example – understand unit testing concepts

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 5


 Example… Amount transfer, requirements as
follows

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 6


 Example…
 Below are the application access details, which is given by the
customer
◦ URL→ login Page
◦ Username/password/OK → home page
◦ To reach Amount transfer module follow the below
 Loans → sales → Amount transfer
 While performing unit testing, we should follow some rules,
which are as follows:
◦ To start unit testing, at least we should have one module.
◦ Test for positive values
◦ Test for negative values
◦ No assumption required

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 7


 Example…
 When we feel that the maximum test coverage is
achieved, we will stop the testing.
 Now, we will start performing the unit testing on
the different components such as
◦ From account number(FAN)
◦ To account number(TAN)
◦ Amount
◦ Transfer
◦ Cancel

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 8


 Example…

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 9


 Example…
 For the TAN component
◦ Provide the values just like we did in From account number (FAN)
components
 For Amount component
◦ Provide the values just like we did in FAN and TAN components.
 For Transfer component
◦ Enter valid FAN value
◦ Enter valid TAN value
◦ Enter the correct value of Amount
◦ Click on the Transfer button→ amount transfer successfully(
confirmation message)
 For Cancel Component
◦ Enter the values of FAN, TAN, and amount.
◦ Click on the Cancel button → all data should be cleared.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 10


 Advantage
◦ Uses module approach - any part can be tested
without waiting for completion of another parts
testing.
◦ Allows the developer to refactor code after a
number of days and ensure the module still
working without any defect
 Disadvantage
◦ It cannot identify integration or broad level error
◦ Evaluation of all execution paths is not possible,
so unit testing is not able to catch each and every
error in a program.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 11


 Unit testing tools(Nunit, PHPunit, Parasoft Jtest, EMMA, Junit)
 Junit testing tools – lab exercise
◦ Install jdk and Install eclipse
◦ Download and add junit4.jar/junit5.jar in eclipse
◦ Download and add hamcrestcore.jar in eclipse
◦ Write code and test it
 Mutation testing
◦ Muclipse(Junit + extendedOj) tools – lab exercise)
◦ Install jdk and Install eclipse
◦ Download and add junit4.jar/junit5.jar in eclipse
◦ Download and install muclipse and extendedOJ.jar in
eclipse
◦ Write code and test it

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 12


 The second level of the software testing in which Units or
individual components of the software are tested in a group.
 The focus is to expose defects at the time of interaction
between integrated components or units.
 It can be top down, bottom up, hybrid/sandwich and big
bang integration testing.
 Once all the components or modules are working
independently, then checking the data flow between the
dependent modules is known as integration testing.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 13


 Example

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 14


 Example - First, we will login as a user P to amount transfer
and send Rs200 amount, the confirmation message should be
displayed on the screen as amount transfer successfully. Now
logout as P and login as user Q and go to amount balance
page and check for a balance in that account = Present
balance + Received Balance. Therefore, the integration test is
successful.
 Also, we check if the amount of balance has reduced by
Rs200 in P user account.
 Click on the transaction, in P and Q, the message should be
displayed regarding the data and time of the amount transfer.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 15


 Example 2
 Let us assume that we have a Gmail application where we
perform the integration testing.
 First, we will do functional testing on the login page, which
includes the various components such as username,
password, submit, and cancel button. Then only we can
perform integration testing.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 16


 Example 2… Scenarios1:
◦ First, we login as P users and click on the Compose mail
and performing the functional testing for the specific
components.
◦ Now we click on the Send and also check for Save Drafts.
◦ After that, we send a mail to Q and verify in the Send
Items folder of P to check if the send mail is there.
◦ Now, we will log out as P and login as Q and move to
the Inbox and verify that if the mail has reached.
 Scenarios 2:
 We also perform the integration testing on Spam folders. If
the particular contact has been marked as spam, then any
mail sent by that user should go to the spam folder and not
in the inbox.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 17


 Example 3…
◦ As we can see in the below image, we will perform
the functional testing for all the text fields and every
feature. Then we will perform integration testing for the
related functions. We first test the add user, list of users,
delete user, edit user, and then search user.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 18


 Why integration testing
◦ To check the interaction of software modules
with the database is an erroneous free or not.
◦ Requirements can be changed or enhanced at the
time of module development. These new
requirements may not be tested at the level of
unit testing hence integration testing becomes
mandatory.
◦ Incompatibility between modules create error.
◦ To test hardware's compatibility with software.
◦ If exception handling is inadequate between
modules, it can create bugs.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 19


 It is a series of different type of tests with the
purpose to exercise and examine the full working
of an integrated systems against requirements.
◦ includes testing of a fully integrated software system.
 To check the end-to-end flow of an application or
the software as a user
 It is end-to-end testing where the testing
environment is similar to the production
environment.
◦ It is a Black box testing as it includes testing of the external
working of the software.
 Testing follows user's perspective to identify minor
defects.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 20
 System testing includes
◦ Verification of input functions of the application
to test whether it is producing the expected
output or not.
◦ Testing of integrated software by including
external peripherals to check the interaction of
various components with each other.
◦ Testing of the whole system for End to End
testing.
◦ Behavior testing of the application via a user's
experience

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 21


 Regression testing
◦ It 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.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 22


 Load testing - tested to clarify whether the system can work
under real-time loads or not.
 Functional testing
 Recovery testing
◦ 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.
 Migration testing
◦ performed to ensure that if the system needs to be modified in
new infrastructure so it should be modified without any issue.
 Software and hardware testing - the system intends to
check hardware and software compatibility.
 Stress testing – pushes the load beyond specified or expected
limits

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 23


 Volume testing – a way to test even a certain components
increase radically in size.
 Response time test – measures how long to complete a group
of tasks
 Capacity test – measure the ability of a system to support
additional workload without degrading performance
unacceptability
 duration testing – places a load on system for an extended
time looking for degradation of services
 Hot spot test – stressing a particular subsystem looking for a
weak point.
 Spike(bounce) test – injecting a very high load for a short
period of time to see how system handles a sudden increase
in load

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 24


 Why system testing important
◦ Gives 100% assurance of system performance as
it covers end to end function of the system.
◦ It includes testing of System software architecture
and business requirements.
◦ It helps in mitigating live issues and bugs even
after production.
◦ It 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.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 25


 It is used to authenticate a code change in
the software does not impact the existing
functionality of the product.
 Regression testing is making sure that the
product works fine with new
functionality, bug fixes, or any change in
the existing feature.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 26


 It attempts to verify
◦ The application works as specified even after the
change/additions/modification were made to it.
◦ The original functionality continues to work as
specified even after changes/modification to the
software application
◦ The changes/additions/modification to the
software application have not introduced any new
bugs

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 27


 Why regression testing
◦ Any software change can cause existing functionality to
break
◦ Changes to a software component could impact dependent
components
◦ It is commonly observed that a software fix could cause
other bugs
 Performed when
◦ When new functionality added to the application
◦ When there is a Change Requirement.
◦ When there is an environment change
◦ When the defect fixed
◦ When there is a performance issue fix

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 28


 Test cases are re-executed to check the previous
functionality of the application is working fine, and
the new changes have not produced any bugs.
 It can be performed on a new build when there is a
significant change in the original functionality.
 Regression means Re-test those parts of the
application, which are unchanged.
 Regression tests are also known as the Verification
Method. Test cases are often automated.
 Test cases are required to execute many times and
running the same test case again and again
manually, is time-consuming and tedious too.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 29


 The need comes when software
maintenance includes enhancements, error
corrections, optimization, and deletion of
existing features.
 These modifications may affect system
functionality.
 Regression Testing becomes necessary.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 30


 Retest-all - all the test case suits should be re-
executed.
 Regression test selection - a selected test-case suit
will execute rather than an entire test-case suit.
The selected test case suits divided in two cases
◦ Reusable test cases - can use in succeeding regression
cycle.
◦ Obsolete test cases - can't use in succeeding regression
cycle.
 Prioritization of test cases - Prioritize the test case
depending on business impact, critical and
frequently functionality used.
◦ Selection of test cases will reduce the regression test suite.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 31


 Unit Regression Testing - to test only the
changed unit, not the impact area, because it
may affect the components of the same
module.
 Example

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 32


 Regional Regression testing - to test the
modification along with the impact area or regions
◦ we are testing the impact area because if there are
dependable modules, it will affect the other modules also.
◦ Example

 Full regional Regression testing - testing the


modified features and all the remaining (old)
features.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 33


 Advantages
◦ Increases the product's quality.
◦ It ensures that any bug fix or changes do not
impact the existing functionality of the product.
◦ Automation tools can be used.
◦ It makes sure the issues fixed do not occur again.
 Disadvantages
◦ Should be done for small changes because even a
slight change can create issues in the existing
functionality.
◦ If in case automation is not used in the project for
testing, it will time consuming and tedious task.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 34


 Selenium – for web application
◦ lab experiment.
 Ranorex Studio – for desktop, web, and
mobile apps with built-in Selenium Web
Driver.
 Quick Test Professional (QTP) - Regression
and Functional Testing. It is a Data-Driven,
keyword-based tool

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 35


 formal testing based on user requirements and
function processing.
 It determines whether the software is conforming
specified requirements and user requirements or
not.
 It is a kind of black box testing done by the
customer before accepting the final product.
 It may some minor errors which can be identified
when the system is used by the end user in the
actual scenario.
 Acceptance testing is the squeezing of all the
testing processes that have done previously.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 36


 Why acceptance testing
◦ During the development of a project if there are
changes in requirements and it may not be
communicated effectively to the development
team.
◦ Developers develop functions by examining the
requirement document on their own
understanding and may not understand the
actual requirements of the client.
◦ When some minor errors which can be identified
only when the system is used by the end user in
the actual scenario.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 37


 Steps of performing acceptance testing
◦ Requirement analysis
 the testing team analyses requirement
document to find out the objective of the
developed software.
 Requirement document
 Project charter
 Business use case
 SRS
…
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 38
 Steps of performing acceptance testing…
◦ Test plan creation
 Test Plan Creation outlines the whole
strategy of the testing process.
 This strategy is used to ensure and verify
whether the software is conforming
specified requirements or not.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 39


 Steps of performing acceptance testing…
◦ Test case designing
 This step includes the creation of test
cases based on test plan documents.
 Test cases should be designed in a way
that can cover most of the acceptance
testing scenario.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 40


 Steps of performing acceptance testing…
◦ Test case execution
 Test Case Execution includes execution
of test cases by using appropriate input
values.
 The testing team collects input values
from the end user then all test cases are
executed by both tester and end user to
make sure software is working correctly
in the actual scenario.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 41


 Steps of performing acceptance testing…
◦ Conformation objectives
 After successful completion of all
testing processes, testing team
confirms that the software
application is bug-free and it can
be delivered to the client.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 42


 Advantages
◦ It increases the satisfaction of clients as they test
application itself.
◦ The information gathered through acceptance testing used
by stakeholders to better understand the requirements of
the targeted audience.
◦ It improves requirement definition as client tests
requirement definition according to his needs.
 Disadvantages
◦ Customers are not willing to do that; it defeats the whole
point of acceptance testing.
◦ If test cases are written by someone else, the customer
does not understand them, so tester has to perform the
inspections by themselves only.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 43


 Alpha testing - is conducted in the organization
and tested by a representative group of end-users
at the developer's side and sometimes by an
independent team
 It is simulated or real operational testing at an in-
house site.
 It can be white box or black box depending on the
requirements.
 Alpha testing ensures that the software performs
flawlessly and does not impact the reputation of
the organization; the company implements final
testing in the form of alpha testing.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 44


 Processes/steps in alpha testing
◦ Requirement Review: Review the design of the
specification and functional requirement
◦ Test Development: Based on the outcome of the
requirement review, develop the test cases and
test plan.
◦ Test case design: Execute the test plan and test cases.
◦ Logging Defects: Logging the identified and
detected bug found in the application.
◦ Bug Fixation: fix the all identified bug.
◦ Retesting: When all the issues are solved, and
fixed retesting is done.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 45


 Phases
◦ First Phase: In-house developers of
software engineers do the first phase of
testing.
 During the alpha testing, a tester finds a lot of
bugs, crashes, missing features, and docs.
◦ Second Phase: involves the quality
assurance staff performs the alpha testing
by involving black box and white box
techniques.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 46


 Reasons why alpha
◦ Refines the software product by finding and
rectifying bugs that weren't discovered through
previous tests.
◦ Alpha testing allows the team to test the software in
a real-world environment.
◦ To ensure the success of the software product.
◦ Alpha testing validates the quality, functionality of
the software, and effectiveness of the software
before it released in the real world.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 47


 Features of alpha testing
◦ Alpha testing is happening at the stage of the
completion of the software product.
◦ Alpha testing is in the labs where we provide a
specific and controlled environment.
◦ Alpha testing is in-house testing, which is
performed by the internal developers and testers
within the organization.
◦ There is not any involvement of the public.
◦ Alpha testing helps to gain confidence in the user
acceptance of the software product.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 48
 Advantages of alpha testing
◦ It reduces the delivery time of the project.
◦ It provides a complete test plan and test
cases.
◦ Free the team member for another project.
◦ Every feedback helps to improve software
quality.
◦ It provides a better observation of the
software's reliability and accountability.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 49


 Disadvantages of alpha testing
◦ It does not involve in-depth testing of the
software.
◦ The difference between the tester's tests the data
for testing the software and the customer's data
from their perspective may result in the
discrepancy in the software functioning.
◦ The lab environment is used to simulate the real
environment. But still, the lab cannot furnish all
the requirement of the real environment such as
multiple conditions, factors, and circumstances.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 50


 Beta Testing is a type of Field Test/salient
testing which performs at the end of
the software testing life cycle.
 It can be considered as external user
acceptance testing.
 It is a black box testing executed after the
alpha testing.
 It is carried out at the client's or customer's
site.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 51


 Features
◦ It is used in a real environment at the user's site.
◦ Helps in providing the actual position of the
quality.
◦ Testing performed by the client, stakeholder, and
end-user.
◦ It is done before releasing it into the market.
◦ It performs in the absence of tester and the
presence of real users
◦ It is generally done for testing software products
like utilities, operating systems, and applications,
etc.
Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 52
 Beta version
◦ Closed beta version – private beta – it is release to a group
of selected or invited people.
◦ Open beta version – public beta – open for the public – any
user can be a tester
 Life cycle of Beta testing
◦ Planning – testing strategy / define goal of testing
◦ Participant recruitment – recruit a group of selected end
users
◦ Product launch – launch / release / install the product and
users test the product
◦ Collect and evaluate feedback
◦ Closure – exit criteria

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 53


 Open beta testing
◦ Tested by a large number of people before the final release
◦ Open for the public before release
◦ Users report the bug and improvement to the organization
 Closed beta testing
◦ Tested by a limited and selective number of persons
◦ Not open to the public
 Traditional beta testing
◦ a software product delivered to the target market, and the
feedback from the users collected.
◦ Assists the quality of the software is improved, and
developers can make the changes.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 54


 Public beta testing
◦ similar to open testing - allows the product is
delivering to the end-users worldwide, with the
aid of various online channels available in the
world.
◦ Feedback and evaluated data are collected for
future improvement
 Technical beta testing
◦ Involves delivering the software product to the
internal groups of the organization.
◦ However, the data and feedback provided by the
employees of the organization.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 55


 Focused beta testing
◦ focused on monitoring and evaluating a specific
feature or component of the software.
◦ The software released to the market and user's
experience assessed and collected to make the
required changes.
 Post release beta testing
◦ the product delivered to the market for the use of
the end-users.
◦ Their feedback, reactions, and experience are
collect for the future release of the software.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 56


 Advantages
◦ Focuses on the customer's satisfaction.
◦ It helps to reduce the risk of product failure via user
validations.
◦ Helps to get direct feedback from users.
◦ It helps to detect the defect and issues in the
system, which is overlooked and undetected by the
team of software testers.
◦ Helps the user to install, test, and send feedback
regarding the developed software.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 57


 Disadvantages
◦ A software engineer has no control over the process
of the testing, as the users in the real-world
environment perform it.
◦ A time-consuming process and can delay the final
release of the product.
◦ Beta testing does not test the functionality of the
software in depth as software still in development.
◦ It is a waste of time and money to work on the
feedback of the users who do not use the software
themselves properly.

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 58


 Tools
◦ Watir
◦ Fitness tool

Any question ?

Software Testing and Quality Assurance, Compiled by Erku K. 2/27/2023 59

You might also like