VII Íàó÷íî-ïðàêòè÷åñêàÿ êîíôåðåíöèÿ "Ñïåöïðîåêò: àíàëèç íàó÷íûõ èññëåäîâàíèé" (14-15 èþíÿ 2012ã.)

  Candidate of Technical Sciences Soltan G., Sergiyenko Y.

D. Serikbayev East Kazakhstan state technical university, Kazakhstan

SOFTWARE TESTING, ON THE EXAMPLE OF “AIRLINE RESERVATION SYSTEM” PROJECT

 

One of the most important processes for ensuring operability of software product is software testing. There are some various types of the tests used throughout all the process of development. The main are the “ whitebox ” and “ blackbox ” types. " Whitebox " testing is used for testing defined passages through a program code. " Blackbox " testing considers the program as a black box: everything, which occurs in the program, is invisible and isn't of great importance for the user. This testing is based on a certain input and output data of the application.

  There are a lot of various levels of testing which should be executed throughout the whole process of software development. Let's look closer into the software testing process using as an example the “Airline Reservation System” project, which allows the client to carry out search and booking of flights and hotels.

Before the software testing can begin the developer receives a «Test strategy» document, developed by the project manager who defines testing type, establishes standards and a testing plan.

The test strategy for “Airline Reservation System” project is as follows. At first, developers determine the main objectives of testing. For our system they are:

-     to identify the features of the system that will be tested;

-     to identify and define all the activities necessary to prepare for and conduct the testing process on the “Airline Reservation System”;

-     to define the pass/fail criteria for each item that will be tested;

-     to identify the deliverables of the testing phase;

-     to define any suspension criteria and resumption techniques;

-     to discuss the testing techniques being used to test the “Airline Reservation System”.

At the second stage of software testing the test items must be chosen. Test items are all the items of the “Airline Reservation System” project that will be tested: Login, Search and book flights, Search and book packages, Search and book hotels, Register.

Testing inside the system is carried out after the client (customer) is logged in. Next developers choose the testing type.

The first type of testing – Unit testing. The Unit Testing is a test that tests each single module of the software to check for errors. This is mainly done to discover errors in the code of the “Airline Reservation System” project. The main goal of the unit testing is to isolate each part of the program and to check the correctness of the code. In the case of the “Airline Reservation System”, all the web forms and the C# classes will be tested. There are many benefits for this unit testing:

-     The unit testing facilitates change in the code.

-     It allows testing to be done in a bottom up fashion.

At the same time, unit testing has some disadvantages such as, it might not identify each and every error in the system.

The following type of testing – Integration testing. In Integration Testing, the individual software modules are combined and tested as a whole unit. The Integration testing generally follows Unit testing where each module is tested as a separate unit. The main purpose of the Integration testing is to test the functional and performance requirements on the major items of the project.

All the modules of the project developed individually would be combined together and tested as a whole system in the Integration testing.

After each modification is made to the source code of the project Regression testing is launched. The Regression Testing can also be defined as the process of testing changes made to the computer program and also makes sure that the older programming still works with the new changes. So, before any new version of a software product is released, the old test cases for the project will be run against the software with the changes made, to make sure that the old functionalities of the project still work.

The following stage is Acceptance testing. This testing is generally performed when the project is nearing its end. This test mainly qualifies the project and decides if it will be accepted by the users of the system. The users or the customers of the project are responsible for the test.

Right at the end of testing process the System testing is carried out. The system testing is mainly done on the whole integrated system to make sure that the project that has been developed meets all the requirements. The test cases for the system testing are the combination of unit and integration tests.

In testing of “Airline Reservation System” project “pass or fail” criteria is used. The test cases executed on the “Airline Reservation System” will pass if they meet the specific requirements mentioned in the Vision document of the project. A test case is said to fail, if the desired functionality is not satisfied by the system.

Suspension criteria: testing for all the dependents features will be suspended if a test case fails. The failed test case will be logged onto the test log which contains the description for the error.

Resumption requirements: T he test cases which are not dependents on the case where the bug is reported will be executed in parallel with the bug fixing. Once the failed test case has been taken note of and has been identified and fixed then the testing for the failed test case will resume.

To start with it is convenient to use manual testing on the “Airline Reservation System” website. Manual Testing is one of the oldest and rigorous methods of software testing. This testing strategy gives the best opportunity to check every page thoroughly and make sure it works in the expected manner. Due to the complexity of the various automation tools and the time available for testing the entire web application, it is preferred to use manual testing as one of the best methods of testing suggested for a beginner.

After this stage is complete the Performance testing needs to be done. In general Performance testing can be defined as one form of testing where we test the system to determine how fast the system performs under a particular workload. Several other features of the system such as scalability and security can also be tested under the Performance testing phase. For the Performance testing of in our case the “Airline Reservation System” project, the JMeter tool can be used. The Apache JMeter is a 100% pure Java desktop application which has been designed to load test functional behavior and measure performance. This tool has been originally designed for Web Applications, which has now been extended to a variety of other functions.

The Apache JMeter can be used to performance test both static and dynamic sources. With JMeter it is possible to test various combinations of load types on the Airline Reservation System web application and analyze the strength of the system.

On chart 1 the report of the program of testing the “Airline Reservation System” project is shown.

 

Table 1. User / Customer Pages Testing Summary

TEST CASE No.

DESCRIPTION

RESULTS / COMMENTS

TC # 1

UserLogin

Passed

TC # 2

UserRegistration

Passed

TC # 3

SearchandBookFlights

Passed

TC # 4

SearchandBookPackages

Passed

TC # 5

SearchandBookHotels

Passed

 

The below table represents the summary of results of testing on the Administrator pages. The results have been explained in detail later in the document.

 

Table 2. Administrator Pages Testing Summary

TEST CASE No.

DESCRIPTION

RESULTS / COMMENTS

TC # 6

AdministratorSignin

Passed

TC # 7

New Flights/Package/Hotel addition

Pass ed

TC # 8

Updating Flight/Package/Hotel details

Passed

a.1 TC # 1 – USER LOGIN

 

Table 3. TC#1 – User Login

TEST UNIT

DESCRIPTION

RESULTS / COMMENTS

LoginButton

An invalid username ( which is the email id in this case ) or password is entered by the user

The system generates a message saying “Invalid user ID” or “Invalid Password, whichever is the case.

Chart 1 – Report type

 

After completion of testing it is necessary to document all software testing process. The following documents will be produced after the testing phase for the “Airline Reservation System” has been completed: Test Plan, Test Cases and Test Log.