Showing posts with label Tester Qualities. Show all posts
Showing posts with label Tester Qualities. Show all posts

Saturday, May 21, 2011

What testers can do apart from doing testing and reporting bugs?

1. Apart from providing inputs to requirements (as mentioned by Aliona above) testers can also provide inputs to Designs and Architecture of product and by giving inputs to design test team can help improve quality of product upfront.

2. Testers can work towards mastering the domain knowledge and understand standards, regulations and upcoming trends in industry and particular domains, they are working.

3. Understanding and taking initiatives in process definition, implementation and improvements.

4. Spreading awareness about testing techniques and importance of testing to other groups.

5. Contribute in project/product planning and ensuring all required tasks/work are 'accounted for' in the plan with adequate time and duration. Doing right planning is key to success.

6. Implementing best practices in testing group and also sharing knowledge with other groups like Dev, PMG etc.

7. Participate in customer interaction, help debugging and troubleshooting customer reported defects, participate in acceptance testing etc.

8. Converting intermittent defects to confirm defects by analyzing steps required to reproduce the defects.

9. Conducting Root Cause Analysis for all customer reported defects and try to fill the open gaps.

10. Keeping right Attitude and Discipline and enjoying testing :)



Tuesday, July 6, 2010

What You See is What You Test!

Testing is a skill and just like any other skill you learn it by practicing time to time. You practice it while you conduct testing on the job, offline when you are not testing, by visualizing different problem and thinking about how to solve them (or find defects) or by learning any technique and tool to enhance your knowledge areas.


Testing includes high level of observing skill. If you are a good observer then you can be a good tester (Off course you will also require other skills in addition!). When you test you observe:
    #1 You observe the behavior of the application
    #2 You observe the process and workflow in which application works
    #3 You observe what's going in and what's coming out
    #4 You observe how application behaves when induced with negative inputs
    #5 You observe how application manage error handling
    #6 You observe how application responds to a failover
    #7 You observe how application works under high load and stress


The key difference between an average and good testers lies in their ability and capability to observe what is being presented to them in a product. You observe based on what you understood from requirement specification or a design document or based on how a application is built and presented to you.


I have seen many times that good testers will find more defects as compared to average testers even if they are provided with same test scripts. The key difference lies in the ability of a good tester to visualize and observe the behavior of the application in addition to just exercising the steps mentioned in the test script. Good testers see more than average testers and they are able to test more conditions and increase their chances of finding more defects.


You can observe and practice following things while testing:
    #1 Observe the behavior of the function. Think whether the behavior of application is appropriate and as required?
    #2 Before executing any step think what are the possible states in which application can move and then check all of them one by one. Once you move between different states then compare the data to see if it is as required.
    #3 Monitor logs and identify any error generated by system. Read and try to understand the error as it may help you identify the cause and check other related scenarios.
    #4 Observe the trend of issues reported. This will help you identify weak areas of the application and help you focus on potential areas around which you may find more defects. 
    #5 While conducting testing whenever you are taken to a new window or screen quickly scan through and identify any other problems in addition to the function tested by you. Even though this may de-focus you from testing your key function at that particular moment but with some practice you can improve this skill area.


What You See is What You Test. It's all depends on you on how far you want to see...

Tuesday, June 29, 2010

I believe I can fly...I believe I can touch the sky.

This nice song by R. Kelly is one of my favourite song
I believe I can fly...I believe I can touch the sky.
I think about it every night and day..
spread my wings and fly away...

Listening songs is one of my hobby and good thing is that you can listen to the music while doing any other stuff. right? (Gyming...walking...reading... relaxing...you name it. BTW I'm listening Waka Waka (This time from Africa) from Shakira right now, while I write this article :) ). Ever since I heard this song, I had felt that we should believe in ourselves, our thoughts and follow our dreams. If you can believe in something, you can definitely get it. You just need to believe in you..

When I started my career, as many of software graduates does, thought programming is the only elite job in software industry, but when I got experience, got interactions with several customers, understood importance of quality and understood pros and cons of programming (and testing as well), I realized that I'm more inclined for a testing role and I enjoyed it more than anything else:

#1 The scope for testing is very dynamic, technology independent, platform independent and that means you can try much more
#2 If you still enjoy programming, you can do coding, create tools that may help you do better job in testing, work on automation and still enjoy testing.
#3 Testing is a very analytical job that I always liked this since my college times
#4 Testing requires you to plan and execute tests tactically (using methods and techniques) and requires quizzing yourself all the time that makes it challenging and fun at the same time
#5 I wanted to be associated with Quality somehow, as I got more interested in quality field, after working in various areas QC, SQA, SEPG groups, part of CMM assessment team, Six sigma etc and I found testing as most interesting among all of these
#6 Every day comes pretty interesting for me while designing, defining and doing testing on different platforms, technologies and projects and I enjoy doing this all day long, every day

I believed in me and I do not regret a bit of my decision of selecting Testing as my career. I would convey this message to anyone who is working as tester and want to consider testing as their future career prospects. Testing as a career has way to go in future, just believe in yourself and go ahead with it...

I strongly believe that we should identify our interest areas and do something around the same area. You can deliver your best if you enjoy it. If you can believe in yourself, you can definitely fly and yes, sky is the limit.

  And like Kelly sings...Hey, cause I believe in me...

Tuesday, June 8, 2010

How you can grow in your testing career...

It is imperative for everyone to grow in their career with learning and understanding new aspects and improving knowledge and technical skills. Just like anything else we need to plan and follow what we want to achieve. I'm here by providing my inputs on how you can grow in your career and at the same time enjoy what you do the best. (Yes, I mean software testing):

  1. Identify your interest areas - This is very important aspect to consider and you should do what you want to do and not just do something which is imposed on you. Identify your strengths and identify what are the areas that you likes working most. From a career point of you identify whether do you want to work as a Individual Contributor stream or you want to Managerial stream. Both have their own pros and cons and you are the best judge of what is most suitable to you. Similarly from technical side, you should think about what kind of testing you want to perform e.g. Functional, Penetration, Performance, Security, Automation etc. All of these are equally good and you can follow similar growth levels in any of these fields. Select a career choice and work towards building relevant skills.
  2. Identify skills that you want to improve - Identify what are the skills you want to develop. Make short term or long term goals and follow them. e.g. for a short term you may want to learn something related to your work, domain or technology that may help you do your job better on a project or an assignment. For long term you may want to learn new automation tool or new language say Perl. It is important that you focus on few things rather selecting too many things at a same time and then failing to focus on something. You can take help from your friends, team members, leads, or other resources like internet, books, training course etc. This will help you in learning these skills better and faster.   
  3. Learn new Technology, Tools, Techniques and Approach - Spend some time i learning the technology in which the product is built upon. Even though you may not needed to knwo this directly but rather it will give you knwoledge of how application works and will help breaking the same in more effectively. Always be on lookout for learning new techniques and approaches. This will help you improvise when needed as you will have spectrum of choices to solve one problem and you will become more effective. Believe that 'things can be better if tried differently'. Similarly learn new tools that helps that may help you more productive, some of the tools that you may want to focus might be, Automation tools, Performance testing tools, Security testing tools, Test data generator tools etc. You can some some of the tools that best fit your need and learn them. 
  4. Challenge yourself - No challenge is better and fruitful than challenging yourself. It is the most important and enjoying than anything else. Identify few areas and try to make yourself sweat with the challenges. Try to do things faster in lesser time, try to learn something in short duration, try to minimize test cases (still keeping the effectiveness) etc. Also try to spend some time for physical activities to keep yourself fit by involving your-self to some sort of activity jogging, gyming or playing some sports. 
  5. Read books and Read blogs of industry thought leaders - Try to spend some time of the day (may be an hour atleast) reading blogs on the net. It will give you new perspective to various situations that other people faces and it's a very good mechanism to get different perspective. Also read books related to your interest areas. This will help you clear any doubts and help you learn things comprehensively and in details.
  6. Share your thoughts with other and learn - Share your ideas, thoughts, knowledge with others within your teams, blogs, forums, groups. Discuss your point of view with others and see how people think about it. This will help you get lot of insights to certain areas and thoughts and in the process you will find new, interesting and useful skills, techniques, approaches and methods.
Remember - Knowledge is what separates success with luck...

Monday, May 31, 2010

Qualities you should evaluate while taking Interview for a tester position.

Interviewing is an art and it just like other arts comes by practice. While interviewing you are required to judge a candidate, based on only few questions, whether he/she is fit enough to work in your team and your organization. I'm outlining some of the important aspects that will help you in evaluating a candidate for testing role. These are not the only aspects you should consider rather you should observe a candidate based on your specific requirements for the open position: 
  1. Plan the interview - Just like anything other activity you should plan your interview. You should go through the resume and understand different level of information e.g. Education, Type of exp, Type of project done, Domains candidate has worked, Knowledge of tools etc. Identify what are the key skills you need for specific role and position. Each position may require different level of skills and should be evaluated accordingly.
  2. Type of questions - are very important and should depend on the candidates total experience. E.g. for the junior position you should ask objective questions (What is BVA?) and should expect objective answers. For senior positions in addition you should also ask subjective questions (like explain test plan and test strategy), this will help you understand the comprehensive knowledge of the candidate. Similarly you would like to ask different set of questions to a database tester, a functional tester and a performance tester. If you have doubts about the answer that is no harm in asking a counter or related question to check the depth of candidate skills.
  3. Communication skills - This is one of the important aspect as the candidate will require to communicate a lot with different groups e.g. testers, developers, managers, customers etc. Candidate should have good written and speaking skills.
  4. Faking the skills - Many a time you will observe a resume that mentions lot of tools and project around them. At a first look you will find the resume very impressive, but when you ask few questions you will realize that lot of information is not real and fake. You should spend first 5-10 minutes to understand if someone is faking the skill, if it is true there is no point in proceeding with interview.
  5. Attention to Details - Try to judge candidate based on his attention during the interview. Observe how he/she is able to understand the questions in details and giving appropriate answers to the questions you have asked. If you have to explain same question multiple times then it may create trouble for you later.
  6. Technical Skills - This is the most important aspect of the evaluation. You need someone in your team who has good technical skills on the specific areas you are looking. Evaluate candidate skills based on the requirement for your project. Also evaluate candidate skills for the specific role you are looking into. e.g. if you are looking for a security tester and he/she doesn't have a clue on buffer overflow or SQL injection then that may not be the worth.
  7. Ability to learn new things - Identify the aptitude of candidates towards new aspects. If a candidate doesn't know the specific area you are planning to work, then evaluate if the candidate is curious, quick learner, shows interest in learning and exploring new things he/she doesn't know.
  8. Knowledge of Test methodologies, techniques and approaches - If the candidate possess good knowledge on various test methods and techniques then he might prove effective when he/she is assigned tasks on the project. You may ask few questions to start with and see how effectively candidate defines test data for the problems or defines test approach for a particular case study.
  9. Giving respect to the candidate - We should give respect to the candidate even if the candidate is rejected. If possible explain the kind of work and profile you are looking for. Also try to see if the person suits some other open requirements in your organization. A rejected candidate for security testing may be a prospective candidate for functional testing if he/she posses related skills.
  10. Collation of feedback - Collate all the inputs you receive and make a call on where the candidate stands as per your expectations. You can prepare a skill assessment sheet where you have defined skills and rating against each of the skill area. This will help you make a go/no-go decision. Also based on your organizational setup try to analyze the candidate skills in respect to the organizational vision. Many a time technical teams pass the candidates but they are rejected in later stages of interviews for senior management and HR. You should also keep these things in mind. 

Sunday, May 30, 2010

Myths and Facts about Software Testing...

Even though software testing is a complete software engineering role. There is lack of information available at acedamic level about software testing (at least in India). Due to this not many of the computer science graduates think about Software testing as a full fledged career and rather more attracted towards a programmer role. With this blog I'm trying to clear some of the myths that exists in people minds:

Myth 1 – Testers are non technical bunch of people who can test applications without using any technical skills

Fact – Testing is a Software Engineering job and Testers are software engineers who are equally qualified for any software engineering role

Myth 2 – Testing is a routine job and do not require techniques and thinking

Fact – Testing is a very challenging, innovative and creative skill that requires significant level of analytical thinking, system level thinking and lateral thinking

Myth 3 – Testing is a relative easy job and can be done very quickly as comparison to coding

Fact – Testing is equally (and more) tough and strategic as coding and also requires significant time in planning, designing and execution of tests

Myth 4 There are not many and better career opportunities available in software testing field as compared to programming
Fact - Today testing is one of the best career available with career levels equals to any other software engineering role. Most of the organizations recognizes testing as a responsible and innovative role. 

I believe that being tester everyone should educate other people about these facts and make software testing as a respectful career choice.

Feel Pride in you and you being a TESTER...

Qualities a Tester must Strive for...

Software testing is a profession and like any profession that existed, software testing also requires tremendous level of abilities, skills and qualities. I'm trying to list some of the qualities that a Tester must strive for...
  1. Passion for Quality – If you have this… then well…Rest will follow
  2. Five Senses for Quality - Speak, See, Hear, Smell and Feel Quality  
  3. Understand Technology – Learn & Earn Technological Advances 
  4. Continuously Improve Technical Skills – Focused and Strategic learning 
  5. Understand Product Domain - You can Break ONLY IF you know How It Works 
  6. Think, Think and Think – Its all about thinking 
    1. System Level Thinking 
    2. Analytical Problem Solving  
    3. Problem Decomposition Skills 
    4. Lateral Thinking 
    5. Survival mechanism – The fittest to survive 
    6. Don’t restrict your thinking 
  7. Think Smart, Do Smart, Be Smart – Curiosity and Improvisation 
  8. Innovate with the ideas – Believe ‘Things can be better if done differently’ 
  9. Be a Team player - Collaborate with others...Share and Learn
  10. Be a Differentiator - Develop competencies and differentiate Outstanding work from Typical work
  11. Be a Motivator - Motivate yourself and motivate others
  12. Self Management and Discipline – ‘Don’t lose to your inner self’