Saturday 21 January 2012

Creating Good Applications: Types Of Application Examination

By Godfrey Leyborne


Evolution in the computer industry has been accompanied by corresponding changes in the types of software testing over the years. Despite this fact, the varying approaches to this concept have remained constant for the last twenty years. For instance, the black box and white box remain the highest levels generic testing. Other types include stress, load, acceptance, regression, system, functional, usability, unit, integration, security and performance testing. This article provides a brief description at each of these methods.

The first area of testing is known as the White Box. The aim of this stage is to understand the contents of the software under scrutiny. Tests at this level mainly focus on the design of the application. In order to carry out these tests effectively, the tester needs fundamental understanding of the application's internal structure and functionality.

The second area of analysis is called the Black Box. At this level, not many details about the internal structure of the application are known. As such, tests concentrate on the estimated inputs and outputs. This step requires prior knowledge of the necessary inputs and the expected processing results.

The next test focuses on the Unit. Here, each unit of the application is analyzed in separation from the others. Absolute understanding of how each unit should function is necessary at this stage, which also often involves drivers written by developers. Consequently, it should be undertaken by the coder in charge of developing the application.

Integration: here software testing takes place where multiple units are put together and tested as a whole. In effect you are integrating the units and checking that they work together as expected. This can also be undertaken at a higher level where modules or different applications are integrated and then tested as a whole.

Functional: this is where the functions of the software or application are checked. It focuses on seeing if the requirements are being met and that the system performs as the end user would expect it too.

The Retesting step is what follows after bugs are detected and corrected in an application. This involves rechecking the application to ensure that all bugs were fixed effectively.

Regression is the next step, which involves testing the software to ensure that changes do not affect previously working modules of the application. This is because changes often result in unintended consequences on the unedited areas. Through this stage, such shortcomings are detected before official release of the application.

System analysis forms the next scrutiny stage. This involves checking the whole application. It is similar to the White Box in that it focuses on the application as a whole.

Next on the line of tests is the check for the product's acceptance. Here, the sample product is availed to the end-user, who tests it on behalf of the customer. This test checks whether the application meets the expected requirements. This is a key step in software developing, which even features on the system development plan.

Testing the application for response to stress is a critical analysis stage. In this context, stress means placement of higher and higher loads on the application. This is often characterized by some degradation, for instance slower response times and reduced performance. The developers must ensure that the system does not suffer data corruption or loss, be ensuring that that degradation is controlled.

Load: here the system is placed under a load, usually simulations of end user behaviour, to see how things perform as traffic or usage increases. It is accepted that performance will degrade at some point. The purpose however, of this type of software testing is to see how gracefully the product degrades.

The application has to be tested for its usability. This check whether the users are able to use the software according to their expectations, in additional to meeting the specified goals. Through this analysis, users give their opinions regarding the functionality of the program, including details not mentioned under requirements.

The next step requires testing the System's Performance. This stage is similar to testing for response to load placement and stress. However, this step involves tracking and recording measurements regarding to its performance. Recorded details include server statistics regarding page swapping and memory usage, among others. This aims at guaranteeing that the application meets the specified requirements as per the set standards.

Security is another vital aspect of applications that requires testing. This includes ensuring that unauthorized persons cannot gain access into the system. This guarantees that such persons cannot corrupt data or carry out other malicious tasks in the system.

We should also mention alpha and beta here. Whilst not strictly types of software testing they can be considered aspects that the QA engineer should understand. Alpha involves having the creators use the system themselves. Beta involves having volunteer users deploy the product and provide feedback. This is the closest type of testing to being used in the real world before the product is formally released.

Despite the existing of varying other types of software testing, the methods discussed above are the most fundamental ones.




About the Author:



No comments:

Post a Comment