Monday, April 14, 2014

Formula for successful QA tester

Bling or Blah, Boring

When I was checking the news yesterday and hearing the current debate about standardized tests in schools in NYC this made me think about my Career/ Passion. In India, when I started my career lot of people used to make fun of testing team saying it is the boring job and not for engineers. In my opinion if you ever think like that and not ready for rewiring yourself with the trend then you cannot be passionate about Quality Assurance/ testing.

As a software tester I have seen many fellow testers when trying to find next job there is a real need to stand out in the pool of resumes any employer receives. Anyone in QA knows the number of resources available in market at any time for a particular position. Here I go with my formula for success as a QA resource. These are the 5 Qualities of a Quality Assurance analyst/tester that makes you the best and lets you stand out from the rest.



Formula for being successful QA Analyst


Evolve with Technology
The tester in any project should have a really good understanding of the application. The QA team has the responsibility to make the application results in a great user experience. Anyone working as a tester should remember the importance of reading some websites or blogs like softwaretestinghelp.com and stickyminds.com. Recently when browsing online for such articles read this quote from testing guru “When asking a team of  software testers on what is the best book on software testing, most replied they haven’t read one” . The tester should rewire themselves at the speed of today's technical evolution and improve knowledge base for testing various applications.

Sense of responsibility
Many days in our life as Tech worker we feel that we want to disappear and be out of this problem. But blame game is not an option for growth in our career. We have to take responsibility for our actions and stop from blaming the developer for wrong code or the user for incomplete requirement. The role and visibility of the tester in a project increases with increase in ownership of the functionality. Anyone can blame someone and escape from the scenario in junior level, but not in senior roles. Any exception in code has to be handled with an error message rather than crashing an application.

Domain Expert
In many places the jobs are based on a particular domain. When you live close to NYC there is more concentration of banking or insurance companies. If you live in CA the jobs are based on latest technologies like twitter or mobile apps. The communication between the end user and application developer in common language about key terms regarding the business.  Anyone cannot really understand the application functionality without the knowledge of key terms in particular domain. As a Quality Assurance personnel one should have the business idea of the end user to add value to the team. So keep reading a lot and do work in projects in different domains to gain insight. I came across this site which explains about domain with real time examples, http://anil-businessanalyst.weebly.com/domain-knowledge.html

Automation tools
We have read so many articles and blogs that MANUAL TESTING is there to stay. It is true, but life gets tough when you are just a manual tester. Anyone can survive in today’s market with a good knowledge of automation. Whenever it is said, the next question is which one is the best tool to learn? The answer to this question is not any tool but knowledge of automation and a good knowledge of programming logic. Also many new projects nowadays goes towards open source tools as they are cheaper, easier to switch from one  tool to another and more compatible with agile user stories. So good tester should have a good understanding of automation and technical expertise on creating framework and scripts using one tool.

Certifications
A lot of my friends argue with me that certification does not place you in a job. But I have seen so many job openings in many websites with mandatory qualification being a certification. The days of real person looking at a resume are over, so when recruiting software skims through hundreds of resume, resumes with certifications are acting as filters. Also when recruiting for manual testing certifications help to judge the knowledge of testing concepts. Sometimes domain expertise can be gained with certifications even with little real time experience. If you complete a testing certification CSTE or CSQA without real time knowledge it may not help you. The technical knowledge and domain expertise is not valuable when one exists without another.

In my opinion the software tester life in USA as just a manual tester is numbered, since the tester need to deploy application and use automation tools to make testing efficient and effective in short span of time. The technology keeps changing from mobile to agile to cloud due to which people attention span gets shorter and shorter. So testing should be in short duration using agile techniques like SCRUM and Kanban. The tester has to follow the above things and make the client understand who the right jewel is for the king’s crown, aka next project.





Friday, April 4, 2014


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.