Monday, January 4, 2010

6.9 System Testing:

System testing is actually a series of different tests whose primary purpose is to fully exercise the computer based system. Although each test has different purpose, all work should be verified that all subsystem elements have properly integrated and performed allocation function.

6.9.1 Recovery testing
Recovery testing is a system test that enforces the software it fail ion a variety of ways and verifies that recovery is properly performed. If the recovery is automatic , reinitialisation,check pointing mechanism and data recovery are evaluated for correctness. If the recovery requires human intervention ,the mean=time is calculated to determine whether it is acceptable limits.

6.9.2 Security testing
Security testing attepts to verify that protection mechanism built into system will in fact protect it from unauthorized person’s access to system.

6.9.3 Stress testing
Stress tests are designed to handle programs with abnormal situations. Stress testing executes a system in a manner that demands resources in abnormal quantity, frequency of volume. For example these are some of the test cases designed in stress testing.
Special tests may be designed that generate ten interrupt per second, when one or two is the average rate.
a. input data rates may be increased by an order for magnitude to determine how input function will respond.
b. Test cases that require maximum memory or other resources may be executed.
c. Test cases that may cost thrashing in virtual operating system may be designed.
d. Test cases may cause excessive hunting for the disk resident data may be created.

6.9.4 Performance testing
Integrated testing performance testing occurs throughout all steps in this testing process. Even at the unit level, performance of an individual module may be assessed as white box texts are conducted. However it is not until all system elements are fault integrated that the true performance of the system can be ascertained. Performance test is often coupled with the stress testing and often require both hardware and software instrumentation. External instrumentation can monitor execution intervals, log events as they occur and sample machine states on regular basis.By experimenting a system, the tester can uncover the situation that lead to degradation and possible system failure.

Read More......

6.8 User Level Testing:

 User threads testing
The testing includes the simultaneous access of all the modules of the system by different users. This helps in testing of the software in the multi-user environment.
 Stress testing
To test the software of the maximum stress it has to under go during the execution process. And how much load it can withstand.
 Human factor testing
This testing helps in measuring the human error factor which can affect the quality of the project hence can be reduced by taking various precautions.

Read More......

6.7 Configuration Testing:

Configuration testing is a process to test whether software is compatible with multiple system configurations i.e software functions properly with other elements of the system.

Read More......

6.6 Validation Testing:

At the culmination of integrated testing, software is assembled as package and final series of software test i.e. Validation Testing begins. Validation Testing begins. Validation succeeds when a software function in a manner that can be reasonably expected by the customer. In this step we can perform alpha and beta testing. The customer conducts alpha testing at developer’s site. Beta testing is conducted site customer site by end user of the software.

Read More......

6.5 Integration Testing:

Once the entire module have undergone unit testing they are integrated and again tested for bugs using a technique called integration testing.
There are two methods: incremental and non incremental integration. In non incremental integration the tendency is to construct the program using “Big Bang Approach”.
Two different incremental strategies are: Top down and Bottom up integration.
6.5.1 Top down Integration:
Top down testing is incremental approach. Modules /components are integrated by moving downwards through control hierarchy, beginning with main control module.

6.5.2 Bottom up Integration
Bottom up testing begins construction and testing with automatic modules. Because modules are integrated from the bottom up processing required for modules subroutines to a given level is always available and the need for stubs is eliminated.
The steps of bottom up integration strategy:
• Low level modules are combined into clusters that perform a specific software sub function.
• A driver is written to co-ordinate test case input and output.
• The cluster is tested.

Read More......

6.4 Black Box Testing:

Black box testing focuses on the functional requirements of the software. It enables the software engineer to derive sets of input conditions that will fully exercise all functional requirements for program.
Using black box approach, a tester considers the software under test to be an opaque box. There is no Knowledge of its inner structure. The tester only has the knowledge of what it does. The size of the software under test using this approach can vary from a simple module, member function, or subsystem to a complete system.

Several methods of black box approach are:
• Requirement based testing
• Positive and negative testing
• Boundary value analysis
• Equivalence of class partitioning
• State based testing
• Compatibility testing
• User documentation testing
• Domain testing
Requirements testing deals with examining or validating the requirements given in the Software Requirement Specification (SRS) of the system.

Read More......

6.3 Unit Testing:

Unit testing focuses verification efforts on smallest module. Important control paths are tested to uncover the errors within the boundary of module. The unit testing is white box oriented and can be conducted in parallel for multiple modules.
Local data structures are checked to ensure the data stored temporarily maintains its integrity during all the steps of algorithm execution. A unit test is the lowest level of testing.

Read More......

6.2 TESTING STRATEGIES:

Software Testing Strategies should follow generic characteristics:
1. Testing begins at the module level and works ‘out word’ towards the integration of the entire computer based system.
2. Different testing techniques are applied at each point.
3. Testing is conducted by developer of the software.

A strategy for software testing begins with Unit Testing; it concentrates on each unit of software as implemented in source code. Testing progresses by moving to Integration Testing, where the focus is on the design and the construction of software design.
Next Validation Testing is encountered, where requirements established as part of project requirement analysis are validated against the project that has been constructed. Finally we arrived at System Testing, where project and the other system elements are tested as a whole

Read More......

TESTING : 6.1 TESTING

Once the source code has been generated the software must be tested to uncover as many errors as possible before the delivery to customer.

Regardless of which strategy the analysts follow, there are preferred practices to ensure that the testing is useful. The levels of test and types of test data, combined with testing libraries are important aspects of the actual test process. Among the various practices or strategies that followed by analysts, two important once are unit testing and system testing.

Read More......

5.2.8 Dynamic

Java programs carry with them substantial amounts of run-time type information that is used to verify and resolve accesses to objects at run time. This makes it possible to dynamically link code in a safe and expedient manner. This is crucial to the robustness of the applet environment, in which small fragments of byte code may be dynamically updated on a running system

Read More......

5.2.8 Dynamic

Java programs carry with them substantial amounts of run-time type information that is used to verify and resolve accesses to objects at run time. This makes it possible to dynamically link code in a safe and expedient manner. This is crucial to the robustness of the applet environment, in which small fragments of byte code may be dynamically updated on a running system

Read More......

5.2.7 Distributed

Java is designed for the distributed environment of the Internet, because it handles TCP/IP protocols. In fact, accessing a resource using a URL is not much different from accessing a file. The original version of Java (Oak) included features for intra address- space messaging. This allowed objects on two different computers to execute procedures remotely. Java revived these interfaces in a package called Remote Method Invocation (RMI). This feature brings an unparalleled level of abstraction to client/ server programming.

Read More......

5.2.6 Architecture-Neutral

A central issue for the Java designers was that of code longevity and portability. One of the main problems facing programmers is that no guarantee exists that if you write a program today, it will run tomorrow—even on the same machine. Operating system upgrades, processor upgrades, and changes in core system resources can all combine to make a program malfunction. The Java designers made several hard decisions in the Java language and the Java Virtual Machine in an attempt to alter this situation. Their goal was “write once; run anywhere, any time, forever.” To a great extent, this goal was accomplished.

Read More......

5.2.5 Multithreaded

Java was designed to meet the real-world requirement of creating interactive, networked programs. To accomplish this, Java supports multithreaded programming, which allows you to write programs that do many things simultaneously. The Java run-time system comes with an elegant yet sophisticated solution for multi process synchronization that enables you to construct smoothly running interactive systems. Java’s easy-to-use approach to multithreading allows you to think about the specific behavior of your program, not the multitasking subsystem.

Read More......

5.2.4 Robust

The multi platformed environment of the Web places extraordinary demands on a program, because the program must execute reliably in a variety of systems. Thus, the ability to create robust programs was given a high priority in the design of Java. To gain reliability, Java restricts you in a few key areas, to force you to find your mistakes early in program development. At the same time, Java frees you from having to worry about many of the most common causes of programming errors. Because Java is a strictly typed language, it checks your code at compile time. However, it also checks your code at run time. In fact, many hard-to-track-down bugs that often turns up in hard-to-reproduce run-time situations are simply impossible to create in Java.
Knowing that what you have written will behave in a predictable way under diverse conditions is a key feature of Java.

Read More......

5.2.3 Object-Oriented

Although influenced by its predecessors, Java was not designed to be source-code compatible with any other language. This allowed the Java team the freedom to design with a blank slate. One outcome of this was a clean, usable, pragmatic approach to objects. Borrowing liberally from many seminal object-software environments of the last few decades, Java manages to strike a balance between the purists’s “everything is an object” paradigm and the pragmatist’s “stay out of my way” model. The object model in Java is simple and easy to extend, while simple types, such as integers, are kept as high-performance no objects.

Read More......

5.2.2 Portability

As discussed earlier, many types of computers and operating systems are in use throughout the world—and many are connected to the Internet. For programs to be dynamically downloaded to all the various types of platforms connected to the Internet, some means of generating portable executable code is needed. As you will soon see, the same mechanism that helps ensure security also helps create portability. Indeed, Java’s solution to these two problems is both elegant and efficient.

Read More......

5.2 Principle Design Features: 5.2.1 Security

As you are likely aware, every time that you download a “normal” program, you are risking a viral infection. Prior to Java, most users did not download executable programs frequently, and those who did scanned them for viruses prior to execution. Even so, most users still worried about the possibility of infecting their systems with a virus. In addition to viruses, another type of malicious program exists that must be guarded against. This type of program can gather private information, such as credit card numbers, bank account balances, and passwords, by searching the contents of your computer’s local file system. Java answers both of these concerns by providing a “firewall” between a networked application and your computer.

Read More......

TECHNOLOGY DETAILS : 5.1 JAVA Frame Work:

Implementing project in java has several features over the language. Since Java is object-oriented network-savvy programming language. Java that make it good language for middle box security system programming

Java is designed to operate in heterogeneous networks. To enable a Java Application to execute anywhere on the network, the compiler generates architecture-neutral byte code, as apposed to non-portable native code. For this code to be executed on a given computer, the Java runtime system needs to be present. There are no platform-dependent aspects of the Java language.

Even libraries are platform-independent parts of the system. For example, the window library provides a single interface for the GUI that is independent of the underlying operating system.

One of the characteristics that make Java a powerful programming language is its support of multithreading programming as an integrated part of the language. This is unique because most modern programming languages either don’t offer multithreading or provide multithreading as a nonintegrated package. Java, however, offers a single, integrated view of multithreading. Multithreading programming is an essential aspect of programming in Java.

We are using the Java as the programming language, so Java itself is the secure language. It provides better security than any other language. Another level of security is the byte code verifier. As describe earlier, Java programs are compiled into sets of instructions called byte codes. Before a Java program is run, a verifier checks each byte code to make sure that nothing suspicious is going on.

In addition to these measures, Java has several safeguards that apply to applets. To prevent program from committing random acts of violence against a user’s disk drive, an applet can’t open, read, or write files on the user’s system. There is no system of security that is completely foolproof, and there were several instances in the first year after Java’s release where security bugs were brought to Sun’s attention by programmers such as David Hopwood.

Read More......

Deployment Diagram

Read More......

State Diagran

Read More......

Usecase Diagram

Read More......
 
Template design by Amanda @ Blogger Buster