SOFTWARE TESTING METHODS
SOFTWARE TESTING LEVELS
Software testing process has been divided into two levels, one is called functional testing and the second is called non-functional testing. Both functional and non-functional testing has sub types. Each type has its own methodology that can be used during the software testing process. The detail of these levels is explained in the below:
Functional testing is a type of block box testing. In the functional testing an input is provided to the software which required the testing and then the results can be examined on the output. There are different levels of functional testing, few of them are explained in the below with detail. The main five steps required for testing software functionalities, the fist determination of the functionality, the second creation of test data on the base of SRS, the third output of the data, the forth is writing the test scenario including execution of the test cases and fifth comparison of the test results actual with expected.
Unit testing is related with the developer, before handed over to the software to the testers, the developers performing this test for execution. Individual part of the coding program handed over to the respective users and they are reviewing by using the test data and this test data is different from the test data which has been produced during testing. There goals are to check the program and correct it if any error or fault found before the testing team start the testing process.
In the integration testing the software has been divided into two parts, the one is called the Bottom-up testing and the second is called Top-down testing. Bbefore the validation testing is integration testing can after validation the unit testing . In the Bottom-up integration testing, it is required to test first the lower level of the application which required test after that the higher level can be tested. It is required to repeat the testing until the top level of the application is getting tested.
It is an initial process of testing in the software development life cycle. In this testing a team need to specify for system testing process. In this testing the system is required to test as a whole after the integration to check that the system is as per the specified quality standard, it is fulfilling the Software Requirements Specification and it is meeting the functional and technical requirements.
In this testing software is required to test after changes in few areas of the software to ensure that due to these changes the other areas of the software affected. It is to ensure that fixing the bugs not resulted another fault in the somewhere areas of the software.
It is said to be one of the most important area of the software testing. An authorised Quality Assurance Team is performing this test to ensure that the software is completely fulfilling the customer requirements. The acceptance testing is not limited to check that spelling mistakes, errors but also to check the major bugs, errors which can cause the software failure as well as can share the ideas for prevention related with major issues.
If we combined unit testing, integration testing and system testing, than it will become Alpha Testing. In alpha testing the test is conducted to check the broken links spelling mistakes and cloudy directions. For this testing the involvement of developer team is not required. An internal team can perform this test at the site before it is delivered to the external clients. It can be given to the Quality Assurance team for further testing at the second stage of Alpha testing process.
If we combined unit testing, integration testing and system testing, than it will become Alpha Testing. In alpha testing the test is conducted to check the broken links spelling mistakes and cloudy directions.
Beta testing can be performed after the success of Alpha testing. It is called pre-release testing. In this testing the audience has been created in really through web or other media to provide a preview of the release. The audience are sending their feedback to the project team and after the receiving the feedback the project team is fixing the problem before the release of the software.
NON FUNCTIONAL TESTING
In non-functional testing in the software is to test a software to ensure that the software is fulfilling the requirements of non-functional areas involve in the software to be tested. These non-functional requirements or attributes of software can be in the form of performance, security and user interface etc. There are some common non-functional testing involve in the software, which are given in the below with detail.
In the performance testing the software is required to test regarding the performance as per mentioned in software requirement specification and it cannot be mentioned in the testing, where the bugs and errors can be tested. In the software development life cycle the performance testing is considered as one of the important testing type in regards of monitoring the speed of the software, capacity of the software, stability of the software and scalability of the software, whereas the performance testing can be qualitative or quantitative. The performance testing is divided into further sub-types like load testing and stress testing. The detail of these sub-types are as below: First subtype of performance testing is load testing. In the load testing the software is tested by giving the large data and normal data in the maximum and minimum limit to check the software either the software is matching the load requirement or not. The load testing can be performed with the automated well know tools. Second subtype of performance testing is the stress testing. In the stress testing the behaviour of software under abnormal conditions is required to test; during this testing the resources can be removed and put in use for the identification. The different testing scenario can be settled for this testing like shutdown, restart of network ports, turning the database on or off mode.
It is a black box testing technique. It is related to user activities and is performed to find out user activities errors. For the usability testing different tools and standard are available. One of the sub type of usability testing is user interference testing. It is involve the testing software to ensure the working of GUI. GUI is including the testing software for colours, alignment, size and other properties.
In this testing the software is tested in the regard of security testing gaps or flaw. In this testing the test is performed security issues in the software for example software confidentiality, software integrity, software authentication, software availability and software authorisation.
The portability testing include that the software can be transfer from one computer to another computer in the installed form and it can be run on different platform. Software is matching the requirement to run on window, browsers.