Object-Oriented testing
is a software testing process that is conducted to test the software using object-
oriented paradigms like, encapsulation, inheritance, polymorphism, etc. The
software typically undergoes many levels of testing, from unit testing to system or
acceptance testing
Object-Oriented Testing Conventional Testing
In conventional testing, the
In object-oriented Testing, a class is module or subroutine, or
considered as a unit. procedure are considered as a
1. unit.
Here, we cannot test a single
Here, a single operation of a
operation in isolation but rather as
procedure can be tested.
2. part of a class.
3. It focuses on composition. It focuses on decomposition.
It uses an incremental approach in It uses a sequential approach in
4. the testing process. the testing process.
This testing requires at every class This testing is following the
level wherein each class is tested waterfall life cycle in its testing
5. individually. process.
This testing has a hierarchical control This testing does not have any
6. structure. hierarchical control structure.
Top-down or bottom-up integration Here, any ordering is not possible
7. is possible in this testing. to follow.
In object-oriented testing, it has unit, Conventional Testing also has the
integration, validation, and system same levels of testing but the
8. testing as its levels of testing. approach is different.
S.No. Object-Oriented Testing Conventional Testing
1 This emphasises performing isolated This emphasises testing a
Object-Oriented Testing Conventional Testing
software system's functionality
testing on certain objects or classes against predetermined criteria or
requirements
It verifies the behaviour of each It verifies the behaviour of the
2 object or class in the system. entire software system.
Tests the interactions between
Tests the interactions between
software components or
objects or classes.
3 modules.
It uses mock objects to simulate the
behaviour of dependent objects or It does not use mock objects.
4 classes.
It can be more time-consuming than It can be faster than object-
5 conventional testing. oriented testing.
Requires a thorough understanding Requires a thorough
of the system's design and understanding of the system's
6 implementation. requirements and specifications.
Involves testing at multiple levels,
Involves testing at multiple levels,
including unit testing, integration
including unit testing, integration
testing, system testing, and
testing, and system testing.
7 acceptance testing.
Can be more complex than Can be simpler than object-
8 conventional testing. oriented testing.
Focuses on testing the overall
Focuses on testing the individual
behaviour of the software
behaviour of objects or classes.
9 system.
Can detect defects or issues that may
May not detect all types of
not be detected by conventional
software defects or issues.
10 testing.
Object-Oriented Testing Conventional Testing
Can be more effective in testing May be less effective in testing
11 complex object-oriented systems. complex object-oriented systems.
Involves creating test cases that
Involves creating test cases that
simulate different scenarios or inputs
cover all possible scenarios or
that the object or class might
requirements of the software.
12 encounter in the real world.
Requires the ability to write test
Requires the ability to create
cases that cover all
effective test cases that cover all
predetermined requirements or
possible scenarios.
13 specifications.
May require the use of specialized May not require specialized
14 testing tools and frameworks. testing tools and frameworks.
What is a Test Environment?
Once software tests are designed, they need an interface to be executed in. This
interface is called the Test Environment. It is created by integrating hardware,
software, proper network configurations, and data necessary to run tests. Essentially,
the test environment has to replicate the production environment (AKA the actual
device and browser the software will be run on).
The test environment (sometimes referred to as a test bed) must be configured
according to the needs of the software being tested. No matter the testing project,
the test environment must be set up accurately to ensure that the software operates
in the right conditions, thus leading to the emergence of flaws that will occur in the
real world.
What is a Web-Based System?
A web-based system is an application that is accessed via HTTP. The term web-based
is usually used to describe applications that run in a web browser. It can, though, also
be used to describe applications that have a very small component of the solution
loaded on the client’s PC. The host server for a web-based system could be a local
server, or it could be accessed via the internet.
The Benefits of Web-Based Systems
Web-based applications used to be very limited in functionality. However, advances
in technology, security, and internet speeds have greatly increased the potential
scope of web-based systems. Today, we have web-based business accounting
systems, web-based CRM systems, a web-based Microsoft Office, and more. Web-
based applications offer some significant advantages over native, client-based
software. Here are just some of the benefits of web-based apps for business.
Difference between Web Project and Traditional Project
Web Project: Web Project is defined as the project which is specialized to make
different types of websites that are implemented on the internet. To build a web
project, various programming languages, scripting languages and tools are used.
Project managers may be client managers in web projects. Web-based projects are
mainly unique or new projects that are feature-based. In web project management,
the organization structure is temporary and performed in a dynamic work
environment. Higher risks are involved in web projects as a new creative approach
and various functions are used. The project manager has to define all the financial,
quality, logical constraints in the web project according to the project
specifications.
Traditional Project: Traditional project is defined as the project which is designed
in a sequential manner for the software development and implemented within an
organization. In a traditional project, project managers and client managers are
always different. The traditional project works on the existing model or process of
project management. In traditional project management, the organization
structure is permanent and performed in a stable work environment. Traditional
projects follow the predefined software development cycle, lesser risks are
involved.
Differences between Web Project and Traditional project:
Web Project Traditional Project
Graphical User Interface of traditional
Web projects consists of an attractive
project is not good-looking as compared
Graphical User Interface.
to web project.
Web Project Traditional Project
While functionality of traditional project
Functionality of web project is public oriented.
is defined to an organization.
New technologies such as beta technologies It is not applicable in traditional projects,
are used for providing new and cool features mature technologies are used in
that client and web developers wants to use. developing traditional projects.
There is no predefined standards available for Standards do exist for traditional
web projects. projects that ensure quality.
Web projects are globally usable hence less Traditional projects are more secure
secured as compared to traditional projects. than web projects.
A pricing model exists for traditional
A pricing model for web project does not exist. project. Various type of models such as
COCOMO are developed for costing.
Roles of the team members of web project are Team roles in traditional project are
less specialized. more specialized.
After finalization of the web project, websites After completion, changes are not
are alive, can be changed and grow. frequent in traditional project.
Cost incurred in the web project during the Clients takes all the expenses related to
development of web project is not given by project such as cost involved in
the clients. designing, testing, prototyping, etc.
In traditional projects, various managers
Project manager in web project has the full
at different levels have the responsibility
responsibility of project.
of project development.
Challenges in testing for web based s/w
1Cross-browser compatibility
One of the main challenges of web application testing is ensuring that your web app
works well across different browsers, devices, and operating systems. Different
browsers may have different rendering engines, standards support, features, and
extensions that can affect how your web app looks and behaves. To overcome this
challenge, you need to use cross-browser testing tools that can help you test your
web app on multiple browsers and platforms, either manually or automatically. You
also need to follow web development best practices, such as using responsive
design, progressive enhancement, and graceful degradation.
2Performance and scalability
Another challenge of web application testing is ensuring that your web app can
handle high traffic, load, and stress without compromising its speed, functionality,
and reliability. Performance and scalability testing can help you identify and resolve
any bottlenecks, errors, or issues that may affect your web app's performance under
different scenarios and conditions. To overcome this challenge, you need to use
performance testing tools that can help you simulate and monitor various aspects of
your web app's performance, such as response time, throughput, resource
utilization, and concurrency. You also need to optimize your web app's code, design,
and architecture for better performance and scalability.
3Security and privacy
A third challenge of web application testing is ensuring that your web app is secure
and compliant with the relevant regulations and standards. Security and privacy
testing can help you detect and prevent any vulnerabilities, threats, or breaches that
may compromise your web app's data, functionality, or reputation. To overcome this
challenge, you need to use security testing tools that can help you perform various
types of security tests, such as penetration testing, vulnerability scanning, code
analysis, and encryption testing. You also need to follow security best practices, such
as using secure protocols, implementing authentication and authorization, and
applying patches and updates.
4User interface and user experience
A fourth challenge of web application testing is ensuring that your web app has a
user-friendly and intuitive interface and user experience. User interface and user
experience testing can help you evaluate and improve your web app's design, layout,
navigation, functionality, and usability from the perspective of your target users. To
overcome this challenge, you need to use user interface and user experience testing
tools that can help you perform various types of user tests, such as usability testing,
accessibility testing, user feedback testing, and A/B testing. You also need to follow
user interface and user experience best practices, such as using consistent and clear
elements, providing feedback and guidance, and simplifying and streamlining
processes.
5Automation and integration
A fifth challenge of web application testing is ensuring that your web app testing
process is efficient, effective, and consistent. Automation and integration testing can
help you save time, resources, and effort by automating and integrating your web
app testing tasks and tools. To overcome this challenge, you need to use automation
and integration testing tools that can help you create, execute, and manage your
web app testing scripts and workflows. You also need to follow automation and
integration best practices, such as choosing the right automation framework,
selecting the appropriate test cases, and maintaining and updating your test scripts.
6Debugging and reporting
A sixth challenge of web application testing is ensuring that your web app testing
results are accurate, actionable, and traceable. Debugging and reporting testing can
help you identify, analyze, and resolve any errors, bugs, or issues that may affect
your web app's quality or functionality. To overcome this challenge, you need to use
debugging and reporting tools that can help you collect, organize, and present your
web app testing data and insights. You also need to follow debugging and reporting
best practices, such as using descriptive and consistent naming conventions,
documenting and communicating your findings, and prioritizing and fixing your
issues.
Testing in Data warehouse
Data Warehouse stores huge amount of data, which is typically collected from
multiple heterogeneous source like files, DBMS, etc to produce statistical result that
help in decision making.
Testing is very important for data warehouse systems for data validation and to
make them work correctly and efficiently.
There are three basic levels of testing performed on data warehouse which are as
follows :
1. Unit Testing –
This type of testing is being performed at the developer’s end. In unit testing,
each unit/component of modules is separately tested. Each modules of the whole
data warehouse, i.e. program, SQL Script, procedure,, Unix shell is validated and
tested.
2. Integration Testing –
In this type of testing the various individual units/ modules of the application are
brought together or combined and then tested against the number of inputs. It is
performed to detect the fault in integrated modules and to test whether the
various components are performing well after integration.
3. System Testing –
System testing is the form of testing that validates and tests the whole data
warehouse application. This type of testing is being performed by technical
testing team. This test is conducted after developer’s team performs unit testing
and the main purpose of this testing is to check whether the entire system is
working altogether or not.
Challenges of data warehouse testing are :
Data selection from multiple source and analysis that follows pose great
challenge.
Volume and complexity of the data, certain testing strategies are time consuming.
ETL testing requires hive SQL skills, thus it pose challenges for tester who have
limited SQL skills.
Redundant data in a data warehouse.
Inconsistent and inaccurate reports.
ETL testing is performed in five stages :
Identifying data sources and requirements.
Data acquisition.
Implement business logic’s and dimensional modeling.
Build and populate data.
Build reports.