Abstract:
Software testing is the activity where a software product is executed on sample data and its behavior is judged with respect to the specification that the program is intended to satisfy. A complementary technique to ensure or verify the correctness of software products is program verification, a static method that attempts to prove by logical reasoning that the program is correct, assuming a given semantic definition of the source language. These two approaches to program quality assurance are often seen as alternatives. However, program verificationis very complex and errors-prone and does not lend itself to automationbecause it depends on inductive argumentsthat are virtually impossible to codify. Axiomatic specification represents the relation of a specification by means of an inductive notationincludes Axioms and Rules to achieve simplicity, formality, and abstraction. AlneelainTesting System tests abstract data type's implementation against axiomatic specification by using rules as test oracle, which decides whether the program behaved correctly on a given test, and generates test data automatically from the axiomatic specification, and combines them together to compose test driver and deliver test report by reporting number of faults.AlneelainTesting Systemprovides two advantages firstly, the generated specificationsachieved formality by using axiomatic specification and abstraction by testing software products, but do not dictate any specific implementation.Secondly, it automates testing process by automatically generating both test data and test oracle and therefore obtains test results automatically. Alneelain testing systemhas tested on typical data typeimplementations, like stacks and queues. The system is very useful as it allows the users to test their implementationsand correct their errors.