In the era of mainframes, software testing meant testing functionality of the application which was running on the mainframe server and accessed from consoles connected to the server. The applications used to be character based with no graphic content. The tester would write programs and run them on the server to see that the parts of the application which were being tested were working correctly.
In the client server era, the tester was required to test both client parts as well as server parts of any application. In this era, initially the applications used to be character based with no graphic content involved. In later years, after popularization of Windows and McIntosh desktops, graphics became very popular. The client side of the application now involved testing not only functional aspects but also testing the presentation layer for usability.
When internet became popular, the intranets were also came into being. Now all the functionality of any application was installed on the server and the application was accessed using a browser on the client machines. Now the role of the client was reduced only to provide a device on which a browser can run at reasonable speed so that application running on the server could be accessed. This phenomenon resulted in death of client server computing. Now application developers started developing applications focusing only on the application and the server on which the application could run.
In the meantime, many vendors who were developing browsers, started adding new functionality in their browsers. Well known browser developers include Microsoft (internet explorer), Mozilla (Firefox), Opera from Operasoft and many other. The application developers started building applications which could run on these browsers. Now a problem area started happening. Even though browsers are client independent (most browers can run on any platform including windows, McIntosh, Linux etc.), however browsers do not have all the features which can access everything from an application, running on a server. For instance, a plug in to run a video may not be available for a browser and so the video can not be run on that browser even though the video can run on other browsers who have the required plug in. Similarly the user screen on one browser can have a different look compared to the user screen of the same application running on the same server on another browser. This phenomenon resulted in testing any application for compatibility with different browsers.
As the internet has become widespread and is accessed by people residing even in the remotest places on earth, most application vendors are developing applications which run solely on the internet. Also as it is now possible to keep even user data on the server (web servers), application service providers now offer facilities for their users to keep all their data on their servers. Applications like emails, social media, blogs, content sharing etc. use web server hardware storage capacity to allow users to store data on the web server. this phenomenon is known as cloud computing. The world wide web is the “cloud” which is keeping all the information on web servers and users get any information using just a browser to access this information.
Testing cloud applications involve not only traditional functionality testing but also to test security, load performance, browser compatibility etc. Security testing has become important because users now keep personal sensitive information on web servers which should be accessible only to the people whom the user has allowed to view. One more area which has evolved in this cloud computing era is the online chatting and long distance video conferencing facilities over the internet. Thus testing for voice, instant video quality, connection speed etc. has become important.
Definitely software testing has changed and evolved so much during the last decade that, the software tester is not the same person he used to be before this era. New paradigms in software testing were required with this sheer change. Now crowd testing, localization testing etc. have become a necessity. Crowd testing is epitomized my U Test Inc. (utest.com). Here a customer contacts U Test to test its application. U Test then releases this requirement on the internet through its website. Anyone who wants to test this application can get all the information as well as access to the application being tested from the U Test website. He /she can test the application and submit the report to U Test. Whoever tests the application first and submits the testing report to U test is paid by U test for the testing effort.
This means, any free lance software tester who has access to internet can do the testing and make money working from home.