Home arrow Articles arrow Processes And Techniques Of Software Testing
Processes And Techniques Of Software Testing
(2 votes)
In the current Information Technology era, testing of software products and services assumes paramount importance. In essence, software testing is a process of running a software program in order to find errors at the time of execution. The main purpose of software testing is to check its usability and compliance to predefined standards. The crucial process of software testing ensures quality of the software product / application. This rigorous process also ensures safety, security, user-friendliness and robustness of the software. By robustness, we mean, how well the software can handle unwarranted events (a user keying in wrong data, or a snag in the operating system).

We have witnessed software products and applications for umpteen business and non-business segments. Today, software products range from video editing applications to one that guide a spaceship into the outer space. Naturally, the target audience for all is not the same. Whenever an organization invests huge amount of money into a product or service, it leaves no stones unturned to ensure high quality of the software and acceptance of the target users. Software testing process tries to meet these requirements.

A study conducted by NIST in 2002 has discovered that the U.S. economy loses about $59.5 billion annually due to software defects. This figure in itself underscores the importance of software testing in the Information Technology parlance.

Software testing methods

There are primarily two software testing methods – Black Box testing and White Box testing. These two types of software testing relate to different approaches that a test engineer adopts while evaluating the software.

Black box testing treats software like a black box, that is, the software is tested without any knowledge of its inner workings. There are different approaches to black box testing, like, equivalence positioning, boundary value analysis, model-based testing, specification based testing, and exploratory testing.

White Box testing is opposite to its Black Box counterpart. Here the software tester has complete knowledge about the inner implementation of the software. The tester has access to internal data structures and algorithms, and the corresponding coding.
 
Software testing techniques

There are two techniques of software testing. The first involves the activities of a group of testers after the software has been developed and before it reaches its intended users. The total activities of the software testers result in a phase in the software development cycle, called the testing phase. There is another approach to the testing activity, where the testing starts right from the moment the development project takes off. In this case, testing is a continuous process and continues up to the project’s completion time. Of the two types of software testing techniques, the latter is used in emerging software development methodologies like extreme programming and agile software development model.

Software testing process

The testing activity is carried on at several levels. The basic level of software testing is the unit testing.

In unit testing, each small component of the software is tested. Here, each unit or module is verified so that it works as per detailed design. If you are aware of the object-oriented software development process, then you can relate unit testing to the class level.

Integration testing is another testing process. It is concerned about user interfaces, and interaction between the individual software modules. Initially, integration testing tests the integrity of very few modules. Progressively, more and more modules are included in the test span until the entire software is covered.

System testing is a much higher level testing than unit and integration testing processes. In system testing, the completely integrated system is tested as a whole in order to verify its compliance with pre-defined requirements. If the software works in conjunction with other third party software, system testing considers those also. The entire software environment is tested to ensure smooth functioning.

Regression testing is another testing activity carried during the test cycle. A software segment is modified either to fix a defect or to enhance the functionality. Sometimes these modifications unsettle the integrity of the software modules. Regression testing runs the earlier test modules repeatedly (whenever the software is modified) in order to check the sanity of the software. To save time, regression tests are often automated.  

Before the software hits the market, a different set of testing activities are carried out as per industry practices. These are alpha and beta testing activities. Alpha testing is a first level testing by a small community of users/customers. Alpha testing is a form of internal acceptance testing before the software goes for the next higher level of testing - the beta testing. In beta testing, versions of software are released to a limited group of educated users outside the programming group. Often, customers/users with greater technical acumen are handpicked to form the beta testers’ pool.

This testing activity minimizes the probability of bugs. When a number of people test the software on different machines; sometimes in tandem, the probability of uncovering hidden bugs increases.  

At times, the software is made available to public at large through websites. This ensures the largest participation in testing by the potential user community.

The final level of testing is known as acceptance testing. It is conducted by the end-user, customer, or client to decide upon the acceptance of the product. This is crucial, as passing an acceptance test construes acceptance of the product by the customer and leads to clearance of payment to the development party.

Add as favourites (104) | Quote this article on your site

Be first to comment this article

Write Comment
  • Please keep the topic of messages relevant to the subject of the article.
  • Personal verbal attacks will be deleted.
  • Please don't use comments to plug your web site. Such material will be removed.
  • Just ensure to *Refresh* your browser for a new security code to be displayed prior to clicking on the 'Send' button.
  • Keep in mind that the above process only applies if you simply entered the wrong security code.
Name:
Title:
BBCode:Web AddressEmail AddressBold TextItalic TextUnderlined TextQuoteCodeOpen ListList ItemClose List
Comment:

Code:* Code

 
< Prev   Next >