Entries Tagged 'Testing Skill Improvement' ↓

Manual and Automation testing Challenges

Software Testing has lot of challenges both in manual as well as in automation. Generally in manual testing scenario developers through the build to test team assuming the responsible test team or tester will pick the build and will come to ask what the build is about? This is the case in organizations not following so-called ‘processes’. Tester is the middleman between developing team and the customers, handling the pressure from both the sides. And I assume most of our readers are smart enough to handle this pressure. Aren’t you?

This is not the case always. Some times testers may add complications in testing process due to their unskilled way of working. In this post I have added most of the testing challenges created due to testing staff, developing staff, testing processes and wrong management decisions.

So here we go with the top challenges:

1) Testing the complete application:
Is it possible? I think impossible. There are millions of test combinations. It’s not possible to test each and every combination both in manual as well as in automation testing. If you try all these combinations you will never ship the product ;-)

2) Misunderstanding of company processes:
Some times you just don’t pay proper attention what the company-defined processes are and these are for what purposes. There are some myths in testers that they should only go with company processes even these processes are not applicable for their current testing scenario. This results in incomplete and inappropriate application testing.

3) Relationship with developers:
Big challenge. Requires very skilled tester to handle this relation positively and even by completing the work in testers way. There are simply hundreds of excuses developers or testers can make when they are not agree with some points. For this tester also requires good communication, troubleshooting and analyzing skill.

4) Regression testing:
When project goes on expanding the regression testing work simply becomes uncontrolled. Pressure to handle the current functionality changes, previous working functionality checks and bug tracking.

5) Lack of skilled testers:
I will call this as ‘wrong management decision’ while selecting or training testers for their project task in hand. These unskilled fellows may add more chaos than simplifying the testing work. This results into incomplete, insufficient and ad-hoc testing throughout the testing life cycle.

6) Testing always under time constraint:
Hey tester, we want to ship this product by this weekend, are you ready for completion? When this order comes from boss, tester simply focuses on task completion and not on the test coverage and quality of work. There is huge list of tasks that you need to complete within specified time. This includes writing, executing, automating and reviewing the test cases.

7) Which tests to execute first?
If you are facing the challenge stated in point no 6, then how will you take decision which test cases should be executed and with what priority? Which tests are important over others? This requires good experience to work under pressure.

8 ) Understanding the requirements:
Some times testers are responsible for communicating with customers for understanding the requirements. What if tester fails to understand the requirements? Will he be able to test the application properly? Definitely No! Testers require good listening and understanding capabilities.

9) Automation testing:
Many sub challenges – Should automate the testing work? Till what level automation should be done? Do you have sufficient and skilled resources for automation? Is time permissible for automating the test cases? Decision of automation or manual testing will need to address the pros and cons of each process.

10) Decision to stop the testing:
When to stop testing? Very difficult decision. Requires core judgment of testing processes and importance of each process. Also requires ‘on the fly’ decision ability.

11) One test team under multiple projects:
Challenging to keep track of each task. Communication challenges. Many times results in failure of one or both the projects.

12) Reuse of Test scripts:
Application development methods are changing rapidly, making it difficult to manage the test tools and test scripts. Test script migration or reuse is very essential but difficult task.

13) Testers focusing on finding easy bugs:
If organization is rewarding testers based on number of bugs (very bad approach to judge testers performance) then some testers only concentrate on finding easy bugs those don’t require deep understanding and testing. A hard or subtle bug remains unnoticed in such testing approach.

14) To cope with attrition:
Increasing salaries and benefits making many employees leave the company at very short career intervals. Managements are facing hard problems to cope with attrition rate. Challenges – New testers require project training from the beginning, complex projects are difficult to understand, delay in shipping date!

These are some top software testing challenges we face daily. Project success or failure depends largely on how you address these basic issues.

For further reference and detailed solutions on these challenges refer book “Surviving the Top Ten challenges of Software Testing” written by William E. Perry and Randall W. Rice.

Over to you:
Many of you are working in manual and/or automation testing field. Though I have addressed many of above challenges in our previous articles, I want your views on handling these software testing challenges.  Feel free to express your views in comment section below.

Soft Skill for testers: How to improve communication skill

Have you been facing problems in interviews? Do you fear to deliver any speech? Do you hesitate to speak in your company meeting? Do you have problems explaining your views to others? Do others disagree with you even though you are right?

If answers to these questions are ‘yes’ then it’s time to improve your communication skill. You should be perfect in all ways of communications like verbal, presentation skill and written communication.

Poor communication generally leads to disagreement and misunderstandings. Even in romantic relationship if you are poor at communication, chances are high that you will break up with your boy friend or girl friend.

Good communication skill is a must for software testers. You might have seen this line in every job requirements especially openings in QA and testing field. As testers require communicating with different project team members including clients, communication skill plays important role. If you want to win the arguments (I mean arguments that are right) and find the common solution for your problems with your subordinates then you should be able to express your views effectively.

As a part of ‘soft skills for testers’ article series I am sharing detailed power point presentation on “How to improve communication skill”.

Keep in mind these simple rules for effective communication:

  • Listen carefully when others are clarifying their thoughts. Don’t interrupt others in-between.
  • Do not speak too fast. Slow down while speaking.
  • Speak clearly. Your pronunciation should be loud and clear.
  • Make eye contact with whom you are speaking. This increases chances of mutual agreement.
  • Read, read and read. For better communication and effective words in your speech your vocabulary should be very strong. Reading more and more will increase your vocabulary.

Besides these 5 golden rules for effective communication here is PPT presentation on improving your communication skill.

Main topics covered in this PPT:
1) What makes a good communicator?
2) Process of communication
3) Active listening
4) Using non-verbal communication effectively
5) Presentation skill while appearing for an interview.
Thanks SoftLogic Technologies for this presentation.

Update: You can also download the first PPT on communication skill.

Unix basics for software testers

No matter whether you are working on stand-alone project or web project, operating systems and networking knowledge is must for testers. Many testing activities like installation testing, performance testing are dependent on operating system knowledge. Now days most of the web servers are Unix based. So Unix knowledge is mandatory for tester.

For the beginners in Unix, learning basic Unix commands is a good start. This article explains basic Unix commands and in next article we will move on to the Unix operating system basics and advanced Unix commands.

The best way to learn following commands is to read and simultaneously practice them on Unix operating system.

These are the Unix commands that are mostly used while interacting with Unix servers. Most of the time you might be interacting with Unix OS through remote windows machines using softwares like ‘Putty’. In such testing environment this article is very useful.

You can download the article written by Meenakshi on Unix basics for testers on below link:

Download: Unix basics for testers article (Doc file)

I will continue this series of “soft skills required for testers”. Here is list of skills on which I will concentrate in coming posts:

  • Operating systems skill for testers.
  • Networking skill.
  • Database ( Mainly SQL) knowledge for testers.
  • Basic programming skill.

All these skills are required to become a successful software tester.

If you think any other skill should be also included in this “soft skills for testers” article series then please let me know in below comment section. I will work on those subjects to include them in my future articles.

Update: For software Testing job seekers, I have updated our Job page with two new openings. See more details on these job openings on below links:

Don’t want to miss any tip? Subscribe Via Email!

Tips to design test data before executing your test cases

I have mentioned importance of proper test data in many of my previous articles. Tester should check and update the test data before execution of any test case. In this article I will provide tips on how to prepare test environment so that any important test case will not be missed by improper test data and incomplete test environment setup.

What do I mean by test data?

If you are writing test case then you need input data for any kind of test. Tester may provide this input data at the time of executing the test cases or application may pick the required input data from the predefined data locations. The test data may be any kind of input to application, any kind of file that is loaded by the application or entries read from the database tables. It may be in any format like xml test data, system test data, SQL test data or stress test data.

Continue reading →

How to get your all bugs resolved without any ‘Invalid bug’ label?

I hate “Invalid bug” label from developers for the bugs reported by me, do you? I think every tester should try to get his/her 100% bugs resolved. This requires bug reporting skill. See my previous post on “How to write a good bug report? Tips and Tricks” to report bugs professionally and without any ambiguity.

The main reason for bug being marked as invalid is “Insufficient troubleshooting” by tester before reporting the bug. In this post I will focus only on troubleshooting to find main cause of the bug. Troubleshooting will help you to decide whether the ambiguity you found in your application under test is really a bug or any test setup mistake.

Yes, 50% bugs get marked as “Invalid bugs” only due to testers incomplete testing setup. Let’s say you found an ambiguity in application under test. You are now preparing the steps to report this ambiguity as a bug. But wait! Have you done enough troubleshooting before reporting this bug? Or have you confirmed if it is really a bug?

What troubleshooting you need to perform before reporting any bug?

Troubleshooting of:

  • What’s not working?
  • Why it’s not working?
  • How can you make it work?
  • What are the possible reasons for the failure?

Answer for the first question “what’s not working?” is sufficient for you to report the bug steps in bug tracking system. Then why to answer remaining three questions? Think beyond your responsibilities. Act smarter, don’t be a dumb person who only follow his routine steps and don’t even think outside of that. You should be able to suggest all possible solutions to resolve the bug and efficiency as well as drawbacks of each solution. This will increase your respect in your team and will also reduce the possibility of getting your bugs rejected, not due to this respect but due to your troubleshooting skill.

Before reporting any bug, make sure it isn’t your mistake while testing, you have missed any important flag to set or you might have not configured your test setup properly.

Troubleshoot the reasons for the failure in application. On proper troubleshooting report the bug. I have complied a troubleshooting list. Check it out – what can be different reasons for failure.

Reasons of failure:
1) If you are using any configuration file for testing your application then make sure this file is upto date as per the application requirements: Many times some global configuration file is used to pick or set some application flags. Failure to maintain this file as per your software requirements will lead to malfunctioning of your application under test. You can’t report it as bug.

2) Check if your database is proper: Missing table is main reason that your application will not work properly.
I have a classic example for this: One of my projects was querying many monthly user database tables for showing the user reports. First table existence was checked in master table (This table was maintaining only monthly table names) and then data was queried from different individual monthly tables. Many testers were selecting big date range to see the user reports. But many times it was crashing the application as those tables were not present in database of test machine server, giving SQL query error and they were reporting it as bug which subsequently was getting marked as invalid by developers.

3) If you are working on automation testing project then debug your script twice before coming to conclusion that the application failure is a bug.

4) Check if you are not using invalid access credentials for authentication.

5) Check if software versions are compatible.

6) Check if there is any other hardware issue that is not related to your application.

7) Make sure your application hardware and software prerequisites are correct.

8 ) Check if all software components are installed properly on your test machine. Check whether registry entries are valid.

9) For any failure look into ‘system event viewer’ for details. You can trace out many failure reasons from system event log file.

10) Before starting to test make sure you have uploaded all latest version files to your test environment.

These are all small and common mistakes but can mostly impact on your relations and credibility in your team. When you will find that your bug is marked as invalid and the invalid bug reason is from above mentioned list – it will be a silly mistake and it will definitely hurt you. (At least to me!)

Share mistakes done by you while reporting any bug. This will help other readers to learn from your experience!

If you like this post then join our email newsletter. Click Here to get new article notifications via email.

How to build a successful QA team?

This a guest post from author “Sharath R Bhat”

What do we mean by a great software testing team?

“A team with a star player is a good team, but a team without one is a great
team.” – Author unknown.

The above quote from Author leads us to discussion on great teams and its characteristics. The article stems from experience gained while working for different teams, observation of team members behavior under time pressure coupled with complex nature of project.This holds good for Software Testing team which finds prominence place in a project activities and requires right mix of people for performing these activities.

Why does some software testing team fails and others succeed? Continue reading →