IPU BCA Semester 5 - Software Testing - Challenges in Testing Internet Applications
Challenges in Testing Internet Applications
Software Testing
Question: Explain in detail the various challenges and strategies involved in testing internet applications.
Answer:
CHALLENGES INVOLVED IN TESTING INTERNET APPLICATIONS
An Internet Application has many failure points that must be considered. The following are the challenges associated with the testing of Internet-based applications:
- Large and varied user base: The users of a website have applied different skills and have used various browsers and operating systems or different platforms at different types of devices. Connection speed and connection media differs from network to network, from system to system.
- Business Environment: If the website designed has e-commerce transactions involved, there would be multiple calculations, financial payments, shipping costs, and tracking of different customer profiles.
- Locales: Website development, managing and testing team could be widespread among different countries, which involve language translations, time zone considerations, and currency conversion.
- Testing Environment: To properly test the application, the production environment needs to be duplicated. We should use Web Servers, application servers, and database servers that are identical to the production equipment. Even the network infrastructure can be duplicated for more accuracy, which would involve routers, firewalls, switches etc.
- Security: As the site is globally accessible, it must be protected from the hackers. Security from Denial Of Service (DOS) attacks should be there and the customer's credit card and other information must be secured.
TESTING STRATEGIES FOR INTERNET APPLICATIONS
Developing a testing strategy for Internet-based applications requires a solid understanding of each of the hardware and software components that make up the application. Some strategies that are applied to each tier are:
PRESENTATION TIER | BUSINESS TIER | DATA TIER |
---|---|---|
|
|
|
Question 2: What is Object-Oriented Testing ? How is it difficult from simple testing and GUI testing? Explain various issues involved in it with examples.
Answer:
In Object Oriented (OO) paradigm, objects and services provided by each object are specified. It focuses on objects that are instances of classes. Object Oriented Testing can be used to test the object-oriented software as well as conventional software.
In OO testing, testing encompasses three levels, namely, unit testing, sub-system testing and system testing.
Unit Testing: In this, individual classes are tested. It checks and verifies whether the members or the attributes of a class are as per the design or not and if the methods of a class are executing without any error or not.
Sub-System Testing: It involves testing the associations within the system and interacting the sub-system modules to the outside environment.
System Testing: It involves the techniques of testing the system as a whole and uses the system tests as regression tests when assembling new releases.
Simple Testing | Object Oriented Testing |
---|---|
Traditional Approach to test mostly when water fall life cycle is used for development. | Object Oriented Approach to test mostly the object oriented analysis and design is used for developing enterprise software. |
Focus more on decomposition and functional approaches | Focus on Composition |
Three Levels of testing not clearly defined | Three levels of testing are clearly defined |
Follows a sequential approach | Uses incremental Approach |
Looks at a broad level | Looks and design test cases at much smaller units as compared to simple testing. |
GUI Testing | Object Oriented Testing |
---|---|
Work on Event driven Applications | Work On Objects and on Class Modules |
Have an event sequence | Use Incremental Approach |
Less Integration Testing is required and Unit Testing occurs at button level | Three levels (Unit, Integration and System Testing) are clearly defined. |
UML Model Support a little amount of GUI Testing | Object-oriented software as well as conventional software uses this testing |
Issues related to OO Testing:
Testing in OO context must address the basics of testing a base class and the code that uses the base class. Factors that affect testing are :
1. Inheritance
2. Dynamic Binding
Dynamic Binding requires separate test cases.
Complex inheritance structure.
Complex interface (therefore interface errors).
Objects, preserve state but the state control, i.e., the acceptable sequence of events, is typically distributed over an entire program. This leads to state control errors.
- Unit Testing Issue:
-method or class ? what are the consequences?
- Implications of inheritance Issue
-superclass needs to know subclasses ?
- Implications of encapsulation and composition Issue
-how to test encapsulation?
- Implications Of Polymorphism Issue
-behavioural equivalence
Issues Related To OO Integration Testing
- OO systems are built out of small, reusable components. Therefore, integration testing is considered to be critical.
- Due to High level parallelism in the development of components frequent integration is required.
- Given the parallelism in development, the sequence of availability of classes will lead to design of stubs and harnesses to simulate the function of yet unavailable classes.