Testing is a process used to help identify the correctness, completeness and quality of developed computer software. With that in mind, testing can never completely establish correctness of computer software. One definition of testing is “the process of questioning a product in order to evaluate it”, where the “questions” are things the tester tries to do with the product, and the product answers with its behavior in reaction to the probing of the tester. Although most of the intellectual processes of testing are nearly identical to that of review or inspection, the word testing is connoted to mean the dynamic analysis of the product, putting the product through its paces. The quality of the application can and normally does vary widely from system to system but some of the common quality attributes include reliability, stability, portability, maintainability and usability. Testing helps in Verifying and Validating if the Software is working as it is intended to be working. This involves using Static and Dynamic methodologies to Test the application.
Software testing is defined as a formal process in which a software unit, several integrated software units or an entire package are examined by running the programs on a computer. All the associated tests are performed according to approved test procedures on approved test cases. It is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include the process of executing a program or application with the intent of finding software bugs, and verifying that the software product is fit for use. Selection of tools is totally based on the project requirements & commercial (Proprietary / Commercial tools) or free tools (Open Source Tools) you are interested. Free testing tools may have some limitation in the features list of the product, so it’s totally based on what are you looking for. The tools are divided into Test Management tool, Functional Testing Tools and Loading Testing tools.
Software testing involves the execution of a software component or system component to evaluate one or more properties of interest. In general, these properties indicate the extent to which the component or system under test. Testing can be done manually or using automated tools. Because of the fallibility of its human designers and its own abstract, complex nature, software development must be accompanied by quality assurance activities. It is not unusual for developers to spend 40% of the total project time on testing. For life-critical software (e.g. flight control, reactor monitoring), testing can cost 3 to 5 times as much as all other activities combined. The destructive nature of testing requires that the developer discard preconceived notions of the correctness of his/her developed software.
- STATEMENT OF PROBLEM
The life cycle of a software component begins with the conceptualization of an information system, and ends with the retirement of the system. Although there have been great improvements in standardizing the software development process, there has yet to be developed a process which guarantees the creation of error-proof software. Testing can be used to assess the quality of software components. However, testing can require a lot of computations when the software component is tested after each step of the software development process or tested to a high-level of assurance. In addition, testing of a software component can be labor intensive, and thus expensive in terms of human capital (e.g., software engineers, project managers, domain experts).
This proposed system assist software engineers to gauge the quality of software by automating the mechanical aspects of the software testing task. Automated testing tools vary in their underlying approach, quality, and ease of use, among other characteristics. In addition, the selection of testing tools needs to be predicated on characteristics of the software component to be tested.
- JUSTIFICATION OF STUDY
In the view of the old system, the new system is designed to solve the problem facing the existing problem. The new system can increase the depth and scope of tests to help improve software quality. Lengthy tests that are often avoided during manual testing can be run unattended. They can even be run on multiple computers with different configurations. In manual testing, test cases are executed manually (by a human i.e. without any support from tools or scripts). But with the proposed new system, test cases are executed with the assistance of tools, scripts, and software.
The new system has the ability to:
- Do what manual testing cannot
- Save time and money
- Record, edit, and debug tests
- AIM AND OBJECTIVES
This project aims at designing a software for executing tests, reporting outcomes and comparing results with earlier test runs and also to validate and verify that a software program or application meet the expected outcome.
The objectives are
- Meets the business and technical requirements that guided it’s design and development.
- To point out the defects and errors that was made during the development phases.
- To make sure of the Customer’s reliability and their satisfaction in the application.
- To execute a program with the intent of finding an error.
- To detect undiscovered errors.
- SCOPE AND LIMITATION OF THE STUDY
The system is designed to executing software with inputs representative of actual operation conditions, comparing produced/expected outputs, comparing resulting/expected states, to record, save and test the test cases and finding errors. This project is limited to web based application e.g. PHP, HTML etc.
This is the procedure taken to gather the information needed for the proposed new system. The following methods are used in gathering the information needed:
- Online Research
- Internet Surfing
- Personal Observation
- The Programming Language Used Are HTML And MySQL
- DEFINITION OF TERMS
- Software: It is a set of instructions written in a particular programming language to perform a specific task.
- Programming language: It is the language that the computer understands. It is a set of symbols used in writing software.
- Error: where the system state is incorrect but may not have been observed.
- Test Case: set of inputs, execution conditions, and expected results developed for a particular objective.
- Validation: It is the process of confirming that the software meets its requirements.
- Test Suite: collection of test cases, typically related by a testing goal or an implementation dependency.
- Automation testing: It is when the tester writes scripts and uses another software to test the product.
- Manual testing: It is testing software manually i.e. without using any automated tool or any script
- Testing: It involves the identification of bug or error or defect in the software without correcting it.
- Debugging: It involves identifying, isolating and fixing the problems or bug.