Fayad’s Unified Software Engine (AIT-FUSE)

Toward “Automated and Immune Testing– 

Fayad’s Unified Software Engine” (AIT-FUSE)

Professor Dr. Mohamed E. Fayad

Despite much progress and research in software technology, testing is still the primary quality assurance technique that is used today.  Currently, major issues in software testing are:

  1. It is necessary to develop and test software rapidly to meet the new economy market. In this new market, it is important to deliver the software on time to capture the market. Software must be delivered on time, and it must be good enough to meet the customer’s need. 

 

Fayad’s Unified Software Engine (FUSE) $179.99 – $599.99
  1. The software requirements keep changing as the project progresses, and in some projects, the rate of requirement changes can grow exponentially as the deadline approaches. This kind of rapid software changes impose significant constraints on testing, because once a software program is changed, the corresponding test cases/scripts may have to be updated. Furthermore, regression testing may have to be performed to ensure that those parts that are supposed to remain unchanged are indeed unchanged.

  2. The number of test cases needed is enormous; however, the cost of developing test cases is extremely high.

  3. Software development technologies, such as object-oriented techniques, design patterns (such as Decorator, Factory, Strategy), components (such as CORBA, Java’s EJB and J2EE, and Microsoft’s .NET), agents, application frameworks, client-server computing (such as socket programming, RMI, CORBA, Internet protocols), and software architecture (such as MVC, agent architecture, and N-tier architecture), progress rapidly, while designing and programming towards dynamic and runtime behavior. Dynamic behavior makes software flexible, but it also makes the software difficult to test. Objects can now send a message to another object without even knowing the type of the object that will receive the message. The receiver may be just downloaded from the Internet with no interface definition and implementation. Numerous testing techniques have been proposed to test object-oriented software. However, testing technology is still far behind software development technology.

  4. Conventional software testing concentrates on industrial objects (IOs) or application objects (AOs) that are tangible & not stable and it is generally application-specific and hardly reusable and is not extensible. Even within a software development organization, software development and test artifacts are developed by different teams and are described in separate documents. These make test reuse difficult.

 

As a part of this research, we plan to work toward AIT-FUSE that includes 1. Testing the functional and nonfunctional requirements that include “Stable Analysis Patterns” (SAPs) or enduring Business themes  (EBTs), software design that include Stable Design Patterns (SDPs) or Business Objects (BOs), and software architectures that include Stable Architecture Patterns (SArchPs) or Unified Software Architecture on-Demand (USA on-Demand); 2. Built-In Test (BIT); 3. End-to-End (E2E) Testing; 4. Agent-Based Testing; 5. Automatic Test Case Generators (ATCG); and 6. Smart Software Testing (SST).  The development of AIT-FUSE is based on software stability model (SSM), knowledge map (KM), and the notion of software agents. Basically, an agent is a computational entity evolving in an environment, with an autonomous behavior, capable of perceiving and acting on this environment, and capable of communicating with other agents.