Breaking News

IPU BCA Semester 5 - Software Testing - Challenges in Testing Internet Applications

Challenges in Testing Internet Applications

Software Testing

IPU BCA Semester 5 - Software Testing - Challenges in Testing Internet Applications


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

  • Ensures fonts are the same across browsers. 
  • Check to make sure all links point to valid files or Websites 
  • Check graphics to ensure they are the correct resolution and size. 
  • Spell-check each page. Allow a copy editor to check grammar and style. 
  • Check cursor positioning when page loads to ensure it is in the correct text box.

  • Check to ensure default button is selected when the page loads. 
  • Check for proper calculation of sales tax and shipping charges. 
  • Ensure documented performance rates are met for response times and throughout rates. 
  • Verify that transactions complete properly. 
  • Ensure data are collected correctly.

  • Ensure database operations meet performance goals. 
  • Verify data are stored correctly and accurately. 
  • Verify that we can recover using current backups. 
  • Test failover or redundancy operations.


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.