Main Goal Of The Software Testing Computer Science Essay

Published:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

The main goal of the software testing is to uncover the errors. To accomplish such a goal the various testing steps are conducted like unit testing, integration testing, validation testing, system testing etc. The event driven software development tools have been used more widely. As compared with the traditional procedure oriented software the event driven software has its own program structure. The event driven system take the sequences of the events as an input, changes their state and produces an output. Common examples of such event driven software (EDS) are GUI and web applications. It is challenging to test such event driven software (EDS) because the user can invoke many different sequence of events through a user interface. The researchers have already developed different models for automated GUI testing and web application testing. Our specific contribution is to develop a single model for testing both GUI and web applications together. [1]

In this project we have presented the two approaches to test GUI. One is for swing based GUI and another is for web application GUI such as html, jsp, asp pages. There are lots of tools available for GUI testing such as FEST, ABBOT etc. To test the GUI using these tools we have to write test cases for each page and these tools use test scripts to check against the results of GUI components. For example in fest tool we have to write test case class for each swing based frame and then it checks the GUI behavior against each test case. So each tool requires additional work to do. In our testing tool we are overcoming this drawback. In our tool we are checking the developers mistakes which he has done while coding but which are not the programming errors at all. Hence once the developer does the coding and program complies correctly then our tool takes this page as input and finding out the bugs in that page dynamically without writing any test cases. If developer added some components on the frame then we are checking whether the component has action listener or not and also we are checking that whether the components have same name or not. [32]

PRINCIPLES:

Our agent based testing tool can test both web applications and GUI.

Web Application:-

The web application Page consists of number of hyperlinks. Some errors like some hyperlinks on the page are not present, that means the requested page is not available will displayed. Another type of problem on page is that same name for different hyperlinks that produces confusion to the user. Sometimes the page contains some data that has to submit but the requesting page will not be present.

Desktop Application:-

In desktop application pages contains the components, all components forms the GUI window and checking whether each component is behaving like its properties. For example we are checking whether any event is generated or not after clicking on a button. If any event is not generated after clicking the button then there is a fault on that page .This procedure is same for all components on that window.

1.3 PROBLEM DEFINATION:

There is no any tool available which dynamically test the web based GUI. The different tools use different approaches to test the GUI. Mostly used tools are FEST, ABBOT etc. Each tool gets help of other frameworks such as UISpec4j java library which provides the different inbuilt classes and an interface which helps to test the swing based GUI. This component works on static pages, means developer has to develop the test suite class and test cases depending upon the functional requirements. So it's not possible to test any swing based window. If you want to test the window then you have to create the test cases and have to develop the class according to test cases. In our testing tool we are not using any inbuilt API library or tools or even we are not generating classes for each window. So our tool works dynamically that is it can check any swing based application restricting some GUI components. So there is no need to generate separate classes for each window. The researchers have already developed different models for automated GUI testing and web application testing. Our specific contribution is to develop a single model for testing both GUI and web applications together. Here we use the generic prioritization criteria which are applicable to study both GUI and web applications together.

1.4 RESEARCH AND DEVELOPMENT CHALLENGE:

Event driven software is a class of software which takes the sequence of events as an input, changes their state and produce an output. Here we consider the two basic subclasses of an Event driven system such as GUI and web applications. Testing the functional correctness of an Event driven software is very difficult for many organizations. As an Event driven software changes the state based on incoming events, it's very challenging to test such Event driven software. Many researchers have already been developed various testing tools for automated GUI testing and web application testing. So it's a challenge to develop a single testing tool for testing both GUI and web applications together. There are various tools available for GUI testing. For testing GUI by using such tools we have to write test cases for each page. So its challenge to develop a testing tool to overcome such drawback. That means to develop a testing tool which can automatically generate the test cases for each page. [1][5]

1.5 REQUIREMENTS:

1) An agent based testing tool must detect the faults on the web page such as whether hyperlink provided is present or not.

2) This tool must detect the usability of the web pages such as detection of whether some hyperlinks present on the web page which create confusion for the user. Confusion arises when same name of two hyperlinks redirect to different pages.

3) This testing tool must track the simplicity of web page. Such as how much time user taking to generate an event.

4) This testing tool must track whether web page contains some form of data and whether data is submitting or not.

5) In Desktop Application project must detect behaviour of each component on the window.

6) This testing tool must detect whether window contains same button name or label name

1.6 OVERVIEW OF THE SOLUTION:

In our testing tool we store all the pages which we want to test in the web application folder. For testing any web or GUI user first selects the page which he want to test from web application folder. After selecting the page our system separates out the html, java and script code from the page. After that user test the code by clicking the test next button. Then our system checks the all hyperlinks on that page, name of hyperlinks or whether is there any form tag in the field then we checks its action attribute value.

If all hyperlinks on the present on the selected page are available in the web application folder then there is no fault on that page. That means there are no any fake hyperlinks or pages. After that we are checking the name given to the hyperlink. If there are same name for two different hyperlinks then this will create an ambiguity problem. So we are checking the ambiguity problem also. We find out such faults on selected pages and display that faults.

Now we are checking the form attribute value. If the value specified by the developer in action attribute is not present in the web application folder then this will create problem. So we are also checking this problem.

Checking delay:

After opening the page if user doesn't perform any action then it means he is in confusing which action to perform. So we are checking the time after page is opened. If user doesn't perform any action within some period then our system detects there is fault on the selected page. In desktop application pages we are getting components all components from that window and checking whether each component is behaving like its properties. For example we are checking whether any event is generated or not after clicking on button. If any event is not generated after clicking on the button then there is fault on the page. This procedure is same for all components on that window.

Our testing tool can be used to test swing based GUI and web applications.

Swing GUI testing: (desktop application testing):-

In this we are testing swing based application. Each swing Application has GUI window and each GUI window contains number of components and each component generate events. So in our testing tool we are checking that whether each component generates specified event or not. For example on clicking on the submit button, new window will be opened, this is the requirement. So we are checking after clicking on submit button new window is opened or not if it is opened then there is no fault on that page, if it is not opened then there is fault on that GUI. We are checking the event handler of each component. In our testing tool first user select the page which he wants to test. After selecting the page our testing tool checks the code. Then page will gets displayed. The user performs action on that page. For example let us consider the testing page is login page. So after opening the page user will performs some action such as entering the text into text field then we check whether the page is accepting entered value or not or after clicking on the submit button on the form, the form is submitted or not.

Testing of Web Application:

In the web application we write an action method in the page to denote where the request will be forwarded after submitting the form. So when developer forgot to write the action tag attribute we are checking the code and finding out if the code contains action or not. We are also checking if GUI contains any similar component names. If GUI contains two buttons with same name, then it will create an ambiguity to user to do the further action.

1.7 OBJECTIVES, GOALS AND SCOPE OF RESEARCH WORK:

Our goal is to develop a single testing tool for testing both GUI and web applications together based on a generic prioritization criteria which is applicable to both GUI and web applications.

OBJECTIVES:

To develop a single testing tool for testing both GUI and web applications together.

To test the web applications which are built using the asp and jsp.

To test GUI this is built using java and html technology.

To provide an upload function to upload the new file into the web application folder that file can be used as input for our testing tool.

To show the result of the test cases through graphical format this displays the accuracy of the web pages.

Researchers have developed different tools for automated GUI and web application testing. Testing GUI using these tools we have to write separate test cases for each page. Here we develop such a tool which overcomes such drawbacks. Our specific contribution is to develop a single testing tool to test both GUI and web applications together. The web applications are built using asp, jsp and GUI are built through the java technology. So we develop a testing tool which is applicable to test web applications of asp and jsp and swing based GUI applications. By using this testing tool we can also show the different faults present on the web pages in the graphical format to display the accuracy of the web pages.[6][7]

1.8 BENEFITS OF THE PROPOSED METHODOLOGY:

There are lots of tools available for GUI testing such as FEST, ABBOT etc. To test the GUI using these tools we have to write test cases for each page and these tools use test scripts to check against the results of GUI components. For example in fest tool we have to write test case class for each swing based frame and then it checks the GUI behavior against each test case. So each tool requires additional work to do. In our testing tool we are overcoming this drawback. In our tool we are checking the developers mistakes which he has done while coding but which are not the programming errors at all. Hence once the developer does the coding and program complies correctly then our tool takes this page as input and finding out the bugs in that page dynamically without writing any test cases. If developer added some components on the frame then we are checking whether the component has action listener or not and also we are checking that whether the components have same name or not.

There is no any tool available which dynamically test the web based GUI. The different tools use different approaches to test the GUI. Mostly used tools are FEST, ABBOT etc. Each tool gets help of other frameworks such as UISpec4j java library which provides the different inbuilt classes and an interface which helps to test the swing based GUI. This component works on static pages, means developer has to develop the test suite class and test cases depending upon the functional requirements. So it's not possible to test any swing based window. If you want to test the window then you have to create the test cases and have to develop the class according to test cases. In our testing tool we are not using any inbuilt API library or tools or even we are not generating classes for each window. So our tool works dynamically that is it can check any swing based application restricting some GUI components. So there is no need to generate separate classes for each window.

1.9 THESIS ORGANIZATION:

The thesis is organized in a continuous manner without diverting from one topic to other irrelevant topic. Chapter1 talks about the introduction to project, objectives of our project, what exactly the project is all about, what are the problem statement and the overview of proposed solution to the problem. The second chapter talks about the background of the project. It also talks about the existing system and proposed system. Third chapter gives overview of literature survey. Forth chapter talks about planning of project, cost estimation and risk that can be occur and mitigation of risk. Fifth chapter explains hardware and software requirements. Sixth chapter 6 gives the design and models the system which shows overall flow of system. Seventh chapter gives system testing and test cases. Eighth chapter concludes thesis work.

CHAPTER 2

2 BACKGROUND

2.1 BASIC CONCEPTS:

An Event Driven System is the class of software which changes the states based on the incoming events. Most common examples of such event driven system are GUI and web applications. In the Event Driven Software user invokes the large number of events through a user interface. [1] [2]

The main goal of the software testing is to uncover the error. There is large difference between event driven software and procedure oriented software. An event driven software development tools have been used widely. As compared with traditional procedural oriented software an event driven software has its own program structure. Many researchers have used the state machine models to test the specific classes of EDS. Like control flow and data flow model capture the control and data interactions in the program this event flow model captures event interactions in a GUI. Event driven software allow the large number of possible event sequences which the user makes through the user interface.

While testing GUI three key properties affects the testability:

Predictability: it is a measure of how difficult it is to determine what a test's output should be.

Observability: it is a measure how difficult it is to determine whether the test results are correct.

Controllability: It is a measure of how difficult it is to provide inputs to the system to drive its execution.

Researchers have developed test suit prioritization technique where the test cases are ordered such that faults can be detected early in the test execution cycle. Many researchers have developed Finite State Machine model for testing web applications. Testing web application by modeling with FSM is proceeds in two phases. In first phase is to build a model of web application. Second phase is to generate the tests from model defined in first phase. [10]

Combinatorial Interaction Testing is a method which focuses on test prioritization techniques for GUI. GUI and web applications behave differently. So it creates an opportunity for developing a single model for testing both GUI web applications.

There are various tools are available for GUI testing. Graphical User Interface is a testing tool that is used to test application user interface and detects the correctness of the application functionality. Various tools are available for the GUI testing. GUI testing tools are: JFC, Pounder, Abbot etc. In GUI testing the following items tested are: buttons, list boxes, check boxes, text fields, radio buttons, combo boxes etc. [11]

Web application testing and verification is becoming a highly challenging task. Environment of web applications is more complex than client server application. Web application testing is complex due to the several factors:

More number of hyperlinks.

More complex interaction.

Increased use of distributed servers.

Frequently changing web pages.

Also many web applications have large number of users with no training of how to use the applications.

Web applications differ from the traditional applications. They differ from the traditional applications as:

Web applications consist of both dynamic and static pages that require a lot of interaction between web browser and users.

Dynamic nature of the web applications.

User can reach any page by enter its path directly in any web browser that may affect web applications.

There is no specific GUI to the user.

Because of these differences traditional testing techniques cannot be applied directly to the web applications. [12]

2.2 EXISTING SYSTEM:

The most common examples of event driven system are GUI and web applications. There are various tools are available to test GUI and web applications GUI. There are lots of tools are available for GUI testing such as ABBOT, FEST. For testing GUI using these tools we have to write test cases for each page. These tools use test scripts to check against the results of GUI components. For example in fest tool we have to write test case class for each swing based frame and then it checks the GUI behavior against each test case. So for testing GUI using these tools requires the additional work to do. Testing the functional correctness of GUI and web applications is difficult. Web applications and GUI behave differently. So it's a challenge to develop a single testing tool for testing both GUI and web applications together.

2.3 PROPOSED SYSTEM:

Researchers have developed the several testing tools for automated GUI testing and web application testing. Now it's a challenge to develop a single abstract tool for testing GUI and web applications. So in our project we are developing an agent based testing tool for testing GUI and web applications. Web applications are built using asp, jsp and servlet.GUI are built using java technology.

Our project is divided into four modules:

Web application testing.

GUI testing.

File uploading.

Displaying graphical result.

These modules are explained below:

Web application testing: In this module we select a web page from web application folder as an input to our testing tool. Then our testing tool will detect the errors and display the results to the user. The selected web page is built using asp and jsp. This module is again subdivided into asp page testing, jsp page testing and checking time delay for web application. In checking time delay module after opening the web page if user doesn't perform any action then it means that he is in confusion to which action is to perform. So if the user doesn't perform any action within certain time period then our testing tool will detect the fault and display the error message to the user.

GUI testing: In this module we select a swing based GUI from web application folder as an input to our testing tool. Then our testing tool will detect the errors and display the results to the user. This module is again subdivided into swing based GUI testing and checking time delay for GUI.

File uploading: first we select folder where we want to upload a file or page. Here we select a web application folder to upload a file. This uploaded page can be used as an input to our testing tool. That we can test this uploaded page by using our testing tool.

Displaying graphical result: By using this testing tool we can also show the testing result in the graphical format to display the accuracy of the web pages. Here we the testing result using different graphs such as bar chart, line, line area etc.

CHAPTER 3

3 RELATED WORK

3.1 LITERATURE REVIEW:

Literature review is the effective evaluation of selected documents on a research topic. A review may form an essential part of the research process or may constitute a research project in itself. It is a critical synthesis of previous research. The evaluation of the literature leads logically to the research question.

The literature review should have following aspects:

Literature review is a synthesis of available research.

It is a critical evaluation.

It should compare different author's views on specific issue.

It should have clarity and succinctness.

It should use precise and reliable methods.

It should note down the areas in which authors are in disagreement.

Event driven software's take the sequence of events as an input changes their state and produces the output. There are various classes of the event driven software:

Graphical user interfaces (GUIs): They are used in washing machines, phones, cars etc. The software changes its state based on incoming events, produces the output and waits for the next input.

Web applications are used via the cell phones, televisions, computers etc. Users perform actions to interact with these applications that change their state, produces the output ant waits for the next user action.

Embedded software: It controls cars, modern buildings, elevators etc. The sensors send signals to the software which changes its state, sends output signals to control devices and waits for the signals

Software components: these components form the building blocks of the large software systems. The messages are sent from the one component to another component. Components react by changing their state, respond with the messages and waits for next message.

Network protocols, device drivers, database applications, robot software are also the examples of Event Driven Software.[13]

There are various testing techniques are exists because the different types of software require different types of testing. Many researchers have shown that the existing techniques do not apply directly to certain classes of Event Driven System such as GUI, network protocols, device drivers, embedded system, web applications etc. So testing them requires the development of new techniques. Many researchers have used state-machine models to test the specific classes of EDS. Researchers have developed the new representation of event driven system based on the event interactions.[14][15]

Jeff Offutt has developed the web application bypass testing technique. The common technique in web applications is to perform the input validation on client by using HTML attributes and scripting language like JavaScript. The most common activity of web applications is to validate the user's data. Bypass testing technique is used for the web applications. This technique skips the client side testing mechanism and automatically generates the input data to verify security, performance and other quality aspects of the web applications. Ricca and Tonella proposed an analysis model and corresponding test strategies for web page analysis. Kung et al. Have developed a model to represent the websites using graphs and provides the definitions for developing tests based on these graphs. Andrews et al. use hierarchical FSM to model the large web applications and test cases are generated based on FSM and using input constraints. [15] [28]

Kam and Dean have been concluded that there is no one single testing technique can be used to cover all bugs of web applications. So we required to integrate many testing techniques with each other to fully validate and verify the web applications. [18]

GUI testing is the process of testing software GUI to detect the application errors and faults which restricts the software required functionality. GUI has the different characteristics than the traditional software so the traditional testing techniques cannot be applied to the GUI. [35]

Characteristics of GUI are:

Object oriented software programming.

Graphical orientation.

Hierarchical structure.

Event driven software.

Many authors have developed a technique to perform automatic tests for GUI based applications. Genetic algorithm was used to automatically test GUI functionality. Reverse engineering technique was used to automatically test GUI functionality. A new testing technique ALT was developed to generate GUI test cases in batches. [19]

Researchers have concluded that there no any single testing technique which covers all the bugs of web applications. So we need to integrate many testing techniques. For GUI it was concluded that there is no any single testing tool which covers all testable items. [20]

Writing Services

Essay Writing
Service

Find out how the very best essay writing service can help you accomplish more and achieve higher marks today.

Assignment Writing Service

From complicated assignments to tricky tasks, our experts can tackle virtually any question thrown at them.

Dissertation Writing Service

A dissertation (also known as a thesis or research project) is probably the most important piece of work for any student! From full dissertations to individual chapters, we’re on hand to support you.

Coursework Writing Service

Our expert qualified writers can help you get your coursework right first time, every time.

Dissertation Proposal Service

The first step to completing a dissertation is to create a proposal that talks about what you wish to do. Our experts can design suitable methodologies - perfect to help you get started with a dissertation.

Report Writing
Service

Reports for any audience. Perfectly structured, professionally written, and tailored to suit your exact requirements.

Essay Skeleton Answer Service

If you’re just looking for some help to get started on an essay, our outline service provides you with a perfect essay plan.

Marking & Proofreading Service

Not sure if your work is hitting the mark? Struggling to get feedback from your lecturer? Our premium marking service was created just for you - get the feedback you deserve now.

Exam Revision
Service

Exams can be one of the most stressful experiences you’ll ever have! Revision is key, and we’re here to help. With custom created revision notes and exam answers, you’ll never feel underprepared again.