0% found this document useful (0 votes)
7 views8 pages

Unit 5

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

Unit 5

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

Issues in Testing Classes:

Additional testing techniques are, therefore, required to test these dependencies. Another issue of
interest is that it is not possible to test the class dynamically, only its instances i.e, objects can be
tested. Similarly, the concept of inheritance opens various issues e.g., if changes are made to a
parent class or superclass, in a larger system of a class it will be difficult to test subclasses
individually and isolate the error to one class.
In object-oriented programs, control flow is characterized by message passing among objects, and
the control flow switches from one object to another by inter-object communication. Consequently,
there is no control flow within a class like functions. This lack of sequential control flow within a
class requires different approaches for testing. Furthermore, in a function, arguments passed to
the function with global data determine the path of execution within the procedure. But, in an
object, the state associated with the object also influences the path of execution, and methods of a
class can communicate among themselves through this state because this state is persistent
across invocations of methods. Hence, for testing objects, the state of an object has to play an
important role.
Techniques of object-oriented testing are as follows:
1. Fault Based Testing:
This type of checking permits for coming up with test cases supported the consumer
specification or the code or both. It tries to identify possible faults (areas of design or code that
may lead to errors.). For all of these faults, a test case is developed to “flush” the errors out.
These tests also force each time of code to be executed.
This method of testing does not find all types of errors. However, incorrect specification and
interface errors can be missed. These types of errors can be uncovered by function testing in
the traditional testing model. In the object-oriented model, interaction errors can be uncovered
by scenario-based testing. This form of Object oriented-testing can only test against the client’s
specifications, so interface errors are still missed.
2. Class Testing Based on Method Testing:
This approach is the simplest approach to test classes. Each method of the class performs a
well defined cohesive function and can, therefore, be related to unit testing of the traditional
testing techniques. Therefore all the methods of a class can be involved at least once to test
the class.
3. Random Testing:
It is supported by developing a random test sequence that tries the minimum variety of
operations typical to the behavior of the categories
4. Partition Testing:
This methodology categorizes the inputs and outputs of a category so as to check them
severely. This minimizes the number of cases that have to be designed.
5. Scenario-based Testing:
It primarily involves capturing the user actions then stimulating them to similar actions
throughout the test.
These tests tend to search out interaction form of error.

Difference between System Testing and Integration Testing


System testing and integration testing are two critical types of software testing that are used to
ensure the quality and reliability of software products.
Integration testing is a type of testing that focuses on verifying the interfaces and interactions
between software components or modules. It is conducted after unit testing and ensures that the
individual components are integrated correctly and work together as intended. The primary goal of
integration testing is to identify defects in the interfaces and interactions between software
components and ensure that the software meets the requirements and specifications provided.
On the other hand, system testing is a type of testing that verifies the software’s behavior and
functionality as a whole system. It is conducted after integration testing and ensures that all the
individual components of the system are working together as intended. The primary goal of system
testing is to identify defects in the system and ensure that it meets the requirements and
specifications provided.
Both integration testing and system testing play a critical role in the software development
lifecycle. Integration testing helps to ensure that the individual components are integrated correctly
and work together as intended, while system testing helps to ensure that the software functions
correctly as a whole system.
System Testing: While developing a software or application product, it is tested at the final stage
as a whole by combining all the product modules and this is called as System Testing. The primary
aim of conducting this test is that it must fulfill the customer/user requirement specification. It is
also called an end-to-end test, as is performed at the end of the development. This testing does
not depend on system implementation; in simple words, the system tester doesn’t know which
technique between procedural and object-oriented is implemented. This testing is classified
into functional and non-functional requirements of the system. In functional testing, the testing is
similar to black-box testing which is based on specifications instead of code and syntax of the
programming language used. On the other hand, non-functional testing, checks for performance
and reliability by generating test cases in the corresponding programming language.
Integration Testing: This testing is the collection of the modules of the software, where the
relationship and the interfaces between the different components are also tested. It needs
coordination between the project-level activities of integrating the constituent components at a
time. The integration and integration testing must adhere to a building plan for the defined
integration and identification of the bug in the early stages. However, an integrator or integration
tester must have programming knowledge, unlike a system tester.
Difference between System Testing and Integration Testing :
S.
No.
Comparison System Testing Integration Testing
Validates the collection and
1. Basic Tests the finished product. interface modules.
2. Performed After integration testing After unit testing
Understanding of the internal Knowledge of just
structure and programming interlinked modules and
3. Requires language. their interaction.
System functionalities
On the behavior of all module interface between
4. Emphasis as a whole. individual modules.
Functional as well as non-
5. Covers functional tests. Only functional testing.
Build to simulate the
Created to imitate real life interaction between two
6. Test cases scenarios. modules.
Sanity, regression, usability,
big-bang, incremental and retesting, maintenance and
7. Approaches functional. performance tests.
By test engineers as well as
8. Executed Only by test engineers. developers.
System testing aids in locating Integration testing assists in
system errors and any defect locating interface errors
found to be regarded as and any defect found is of
9. Finding errors system defect. individual module only.
It is used to conduct both It covers only integrated
Functional and Non- functional and non-functional components’ functional
10. functional Aspect testing. aspects.
 Functional testing
 Scalability testing
 Reliability testing
 Security testing  Top-down
 Performance testing  Bottom-up
 Usability testing  Big-bang
11. Types  Installation testing, etc.  Hybrid integration

Integration Testing
Feature System Testing

Verify software
Verify the interfaces and interactions
behavior and
Purpose between software modules
functionality as a whole
system

Interactions between individual


Entire system as a
Focus modules
whole

Test Production-like Simulated and controlled environment


Environment environment
Emphasis on testing module
Emphasis on end-to-
Test Scenarios interactions
end scenarios

Uses test data to simulate module


Uses standard and
Test Data interactions
realistic data

Conducted over a Conducted over a shorter duration


Test Duration
longer duration

Identifies defects in module


Identifies defects and
Outcome interactions
bugs in the system

Testing Black-box and White-


Black-box and White-box testing
Techniques box testing

Comprehensive
Test Execution Incremental approach, testing one
approach, covering all
Approach module at a time
functionalities

Test management Test management tools, defect


Tools and
tools, defect tracking tracking tools
Technologies
tools

Focuses on functional Focuses on risks associated with


Risk and
and operational risks module interactions
Impact
and impacts

Web Testing?
Web Testing, or website testing is checking your web application or website for potential bugs
before its made live and is accessible to general public. Web Testing checks for functionality,
usability, security, compatibility, performance of the web application or website.
During this stage issues such as that of web application security, the functioning of the site, its
access to handicapped as well as regular users and its ability to handle traffic is checked.

Usability testing:
Usability Testing has now become a vital part of any web based project. It can be carried out by
testers like you or a small focus group similar to the target audience of the web application.

Test the site Navigation:


Menus, buttons or Links to different pages on your site should be easily visible and consistent on
all webpages

Test the Content:


Content should be legible with no spelling or grammatical errors.

Images if present should contain an “alt” text

Tools that can be used: Chalkmark, Contentsquare, and Clixpy

3.Interface Testing:
Three areas to be tested here are – Application, Web and Database Server

 Application: Test requests are sent correctly to the Database and output at the client side
is displayed correctly. Errors if any must be caught by the application and must be only
shown to the administrator and not the end user.
 Web Server: Test Web server is handling all application requests without any service
denial.
 Database Server: Make sure queries sent to the database give expected results.

Test system response when connection between the three layers (Application, Web and
Database) cannot be established and appropriate message is shown to the end user.

Tools that can be used: Ranorex

Database Testing:
Database is one critical component of your web application and stress must be laid to test it
thoroughly. Testing activities will include-

 Test if any errors are shown while executing queries


 Data Integrity is maintained while creating, updating or deleting data in database.
 Check response time of queries and fine tune them if necessary.
 Test data retrieved from your database is shown accurately in your web application

Tools that can be used: QTP, Selenium

5. Compatibility testing.
Compatibility tests ensures that your web application displays correctly across different devices.
This would include-

Browser Compatibility Test: Same website in different browsers will display differently. You need
to test if your web application is being displayed correctly across browsers, JavaScript, AJAX and
authentication is working fine. You may also check for Mobile Browser Compatibility.

The rendering of web elements like buttons, text fields etc. changes with change in Operating
System. Make sure your website works fine for various combination of Operating systems such as
Windows, Linux, Mac and Browsers such as Firefox, Internet Explorer, Safari etc.

Tools that can be used: Dynatrace

6. Performance Testing:
This will ensure your site works under all loads. Software Testing activities will include but not
limited to –

 Website application response times at different connection speeds


 Load test your web application to determine its behavior under normal and peak loads
 Stress test your web site to determine its break point when pushed to beyond normal loads
at peak time.
 Test if a crash occurs due to peak load, how does the site recover from such an event
 Make sure optimization techniques like gzip compression, browser and server side cache
enabled to reduce load times

Tools that can be used: Loadrunner, JMeter

7. Security testing:
Security Testing is vital for e-commerce website that store sensitive customer
information like credit cards. Testing Activities will include-

 Test unauthorized access to secure pages should not be permitted


 Restricted files should not be downloadable without appropriate access
 Check sessions are automatically killed after prolonged user inactivity
 On use of SSL certificates, website should re-direct to encrypted SSL pages.

Intruder
Intruder is a powerful vulnerability scanner that will help you uncover the many
weaknesses lurking in your web applications and underlying infrastructure. Offering
industry-leading security checks, continuous monitoring and an easy-to-use
platform, Intruder keeps businesses of all sizes safe from hackers.

Features

 Best-in-class threat coverage with over 10,000 security checks


 Checks for configuration weaknesses, missing patches, application
weaknesses (such as SQL injection & cross-site scripting) and more
 Automatic analysis and prioritisation of scan results
 Intuitive interface, quick to set-up and run your first scans
 Proactive security monitoring for the latest vulnerabilities
 AWS, Azure, and Google Cloud connectors
 API integration with your CI/CD pipeline

Post Deployment Testing in Software Testing

Post-deployment testing is a type of testing in which the software is tested after it is deployed to
production. This testing may help us find those problems that were not detected before
its deployment in the production and despite all the planning and testing carried out before the
final deployment, obtaining user opinion is important for the improvement of a website. It
ensures that the website adapts to the needs of the user. User feedback may come in various
forms, ranging from reporting faults to suggestions for improvement of the website.

Need for Post-Deployment to get Testing


What do we need to test the application post its deployment and how? There are various ways
to get the user’s feedback about the software application but the effective way to know the
opinion is by getting a survey form filled out by every user because these survey forms can be
used to detect the latest trends from the users and also provide some good information about
the software improvement. The response obtained from these surveys may help the tester or
developer some improvements in their app.
Now after receiving the user feedback, the testers need to identify the useful fault reporting,
suggestions, and recommendations that the users have given. For these given things the
following criteria can be used to check which feedback is more important:
1. Calculating the total users that have given the same feedback or recommendation. If the
feedback is not very popular among the group of users, then we must think twice before
implementing their suggestions in the software.
2. Are the users fake or Real? It is vital to make sure that the Source of feedback: and
suggestions come from regular users and not accidental users.
3. Is the suggested idea worth implementing? Before implementing the suggested changes,
the cost and schedule must be analyzed carefully and there should be a thorough check of
the correctness of the proposed change and its impact on the application. The benefits of
implementing the suggested changes in the software must be determined by the testers or
developers.
4. Will the feedback or recommendation increase its impact on the software? Is the
recommendation compatible with other features also? Getting this feedback is very
significant and answering them is very crucial and making the results of implementing
these recommendations are sometimes unpredictable.

Post-Deployment Deployment to Testing Activities


 Post-deployment verification: Firstly, the QA or Test lead conducts the
verification of the software application as per the need and its requirement
and these are generally the test plans and the test cases of the software
application which are compared from the previous or existing test plan and
test cases.
 Reporting the post-deployment verification results: After verifying the
above cases, the results with all the necessary information are then told to
the clients and if they find any issues/defects in the production then the
issues are told to the test lead, and further new testing will be conducted.
 Removing the test data: Once the results are positive, the test data that
was used in the post-deployment testing are then removed from the process.
 Monitoring the application: Finally, if there’s any need for monitoring the
application in the production then that is also done.

You might also like