Any human being wants to improve the quality of life. The same way in the software development process the most important role is that of the tester. The tester is the gate keeper of quality in any piece of software. The life of software tester has its evolution in the recent years. So I have given my pointers on the advancement of process and quality in this article.
One of the major changes in software industry in the recent years is the advancement of mobile technology and it revolutionized the software industry by creation of smartphone app for any major website. The key challenges in mobile app testing are diversity of platforms and variety of mobile devices available in market which makes it harder to automate as well. The main difference between mobile app and website is that we need to give more importance to performance and memory as well as UI. Also we need to test the functionality of the mobile phone like incoming call, text message and information pop up when using the application. Mobile testing is challenging as we cannot test the application in every possible device used since it gets expensive to buy all the devices. We can use emulators for testing on various mobile phones and OS combinations without the need to purchase the real device. Test LAB is also created by bigger companies with various devices and OS combinations. When the mobile app is released for a world market the tester should also take in to account the network and restrictions in various countries. The cloud computing helps a lot in this since testers can deploy the software over the internet in different type of servers.
Due to virtualization of data and globalization of companies, there is a need to store vast amount of data. A major retail corporation can have many departments’ sales, marketing, retail, customer, etc. The data is stored and managed in different databases and in different table formats. The ETL (extract, transform, and load) process takes data from various tables and formats (oracle, SAP) and load it into the data warehouse. The ETL testing process also involves test planning based on data mapping document, test data creation and approval, execution of test cases till the exit criteria is met and test completion report. The ETL test execution should test to avoid data loses, verify data completeness, verify transformation rules, schema and referential integrity testing, data quality checks on target warehouse to name a few.
The American IT workforce has moved mostly from standard desktops to virtualized world. The mindset of people is more accepting to changing from workstations and huge servers for the company to hosting of services on cloud. This gives more flexibility for users to access their work from any laptop or mobile devices in their home. Anyone need to work on MS-Word need not own the software rather work on word online. This makes the life of tester difficult by making him test the software for more security issues and data leaks.
The mobile technology and the tight deadline for various projects have led to more companies adopting the agile methodology of software development. In the Agile process, instead of waiting for software development to complete, testing is done in parallel. Testing is not considered a step in software development process but rather a coexisting force in creating functional software in existing time. Testers are included actively in the software development team and they contribute to improvement in user stories. They complete small iterations along with development team to create test data and decide on test tools. The strategy of an agile project can be Test Driven development (TDD) or Continuous integration (CI). The testing approach is either test immediately after or parallel independent testing. When the team follows a TDD approach, a test is written and enough software is deployed to make the test pass. Then the same process is repeated again till the whole application is developed. In parallel testing the code at end of day is deployed in server and the testing is done for that user stories alone. The whole project is approached with many iterations rather than single development phase followed by testing.
In Conclusion, testing process is becoming more proactive, risk based and tends to be short and sweet like a small tech video in TED. The tester should be more able to write more light weight test scenarios instead of detailed test cases, but with a complete coverage of the functionality. Also the tester should have a vast knowledge of the working of the cloud server and deployment of mobile applications across different mobile devices.