Showing posts with label Regression Testing. Show all posts
Showing posts with label Regression Testing. Show all posts

Sunday, 25 October 2015

What Do We Know About Regression Testing?


When it comes to software development process, even a small change can bring forth major unexpected changes in the functionality of the whole system. Here comes the role of the regression testing. Regression testing is done to check if the existing functionality is rendered unaltered even by the tweaks made to abolish the bugs. It also provides with proof that the eradicated bugs are not brought to life again.
Regression testing is done whenever any kind of changes are applied to the system, so as to check if the system is working properly as desired. Bigger the changes made, bigger will be the possibility of the software functionality to be affected. Basically regression testing has two steps:
1.    Conducting the already performed tests.
2.    Checking the results of the tests with the previously available results to check if the system is up and running and what new bugs have developed which needs to be eradicated to make the software function well.
The regression tests are performed from time to time in patches to save both time and money on the testing process by preventing the errors to pile up at the end.
Various software testers take different approaches towards the regression testing of software available to them. While a part of the tester prefers testing the whole system after a certain amount of development is done, another set prefers testing the software every time a small change is made in the source code. In a way the later method is better as particular software is capable of showing completely surprising changes in the system which can be sparsely related to the changes made to the system. Luckily, (thanks to the technology available these days) testers can now create a library of various tests with the previously available data from functional tests, unit tests, integration tests, build verification tests or any other tests which helps in verifying that the system is performing as desired.
With the advent of automatic testing of software, regression testing has been made easier. Now a days a set of tests can be scripted with the help of codes and with just a few clicks of the mouse, these tests can be performed on the software under examination to check the validity of the system and the status of the abolished bugs. Although this automation helps in stress removal from the testers, it has some shortcomings too. When you are performing the same test over and over again, there are chances that the regression test system will become a standstill. At times it may also happen that the developers trick the automated regression test system to overlook certain errors and in this way your system will end up overlooking most of the errors. So, even if the automation saves a lot of time and energy, from time to time, manual inputs are needed to keep the system up and running.

In order to get the most out of regression testing of software, testers have to strike a balance in between the automation of the process and the manual aspect of the test. Also, regression testing should be introduced at an early stage of the software development life cycle so that maximum test coverage of the software can be achieved and piling up of the system can be avoided. 

Monday, 12 October 2015

The Different Types of Functional Testing


Software testing is an important part of the software development life cycle and should be done with utmost care in order to ensure the success of the software. Functional testing is a part of the software testing procedure which renders perfectly functioning software to the users.
People often have the misconception that functional testing of the software just deals with testing the software’s functionality to check that it provides the right output when fed with a particular input. But in reality functional testing deals with a lot more than just testing how the software functions. Software testing is classified into various types which are discussed in this article. These various tests are very important to ensure software which will be equipped to handle any kind of scenario or stress load.
  1. Function Based Testing: Of the various types of functional tests that can be performed, this is probably the easiest one which is possible. It just takes the individual modules of the software and checks if it works properly. You check the component with various scenarios. You check it both individually and also you test the components functionality when they are working with each other as a whole system.
  2. Scenario Based Testing: This type of functional testing can be a tad bit complex. Ultimately the software that is being developed is going to be used by the end users. In the real world, the software will be facing scenarios which are both simple and complex. Successful software is one which can smoothly perform in both the situations with equal ease. It is the job of the software tester to check the software’s functionality in such situations. The detected defects should be reported along with the scenarios in which they were tested so that it can be rectified.
  3. Negative Testing: When the software is being used by the end users, there are numerable numbers of ways in which the users may handle the software in a wrong way. Negative testing checks the functionality of the software in such negative situations. These tests check how well the software handles these negative situations. The negative testing also ensures that no permanent damage or loss of data occurs when the software is going through the negative situations.
  4. Long Range Testing: Long range testing checks the software for prolonged working period. There are situations in which the software may have to be up and working for a long period of time. In such situations, chances are that the software may crash due to the long working periods. Long period testing ensures that the software keeps running with similar ease for the entire period of time. It also detects the flaws that may appear in the software for the long working periods i.e. due to over loading. The functionality of the software in situations like long file processing is checked in long range testing.

Yes! We accept that some of the tests which are mentioned under the category of fictional testing may appear to be similar and overlapping. However each of the tests are important for the detection of the defects that may appear on the functional front of the software and must be performed for delivering a quality product to the customers or end users.

Thursday, 1 October 2015

Objectives of Performing Functional Testing


Software testing is one of the most important and integral part of the software development life cycle, which is gaining importance day by day. Not only does it checks the performance, efficacy of the system, but also strives to make the system a better one. People are starting to take heed of the fact that the success of a software depends hugely on the testing procedure performed on it. The software testing procedure starts off before the development process and lasts till after the development has been finished. While the whole process is an elaborate one, functional testing is an integral part of the process.
Functional testing basically deals with the checking of the functionality of a particular product, but it packs a little more punch to the process. It not only checks how the software is functioning or the defects that are produced in the result, but also other related things which may affect the function of the same. Certain objectives are to be kept in mind while performing the functional tests on a product.
  1. The main aim of the functional testing is to check of the given piece of product is delivering the results which it was desired to i.e. it is functioning properly.
  2. Just checking the functionality at a controlled environment is not enough. The product should be checked for proper functioning at adverse situations which it may face in the real world.
  3. It is not uncommon for the end users to mal handle the product, hence the functionality of the same may get affected in such situations. Functionality testing checks the software for such adverse occurrences.
  4. Often, it may so happen that the product is being utilized for a long period of time. This may cause overloading of the system which in turn affects functionality. Functional testing checks how the product works even after prolonged utilization.
  5. Functionality testing checks how the system is behaving when a wide range of valid inputs are supplied to it in a chronological or haphazard method to see whether it provides the correct output or not.
  6. At times, the end users may end up feeding the product with invalid inputs. The behaviour of the product in such cases is also tested by functionality testing.
  7. Apart from testing the individual components of the software, functional testing also checks how the system is working as a whole when the various components will have to depend on each other.
  8. It also checks the system of the product to see whether it delivers the desired results.
  9. Another major job of the functional testing is to detect all the simple failures that may cause rejection of the product at the very basic level.
  10. Functional testing is done to check the modifications that will make the product more acceptable to the targeted customers. It basically concentrates more on how to satisfy the customers with the functional aspect of the product than the designing aspect.

While you are performing a functional test on the system, it is best to keep the above objectives in mind in order to get the maximum output from the procedure. However, there are many more aspects which you can take heed of while performing the test apart from those mentioned in the article.