Thursday, April 14, 2016

Quality Testing Lab is open for business!

With growing competition in the market, quality has become one of the crucial features for any business. Designed to meet clients' requirements and achieve excellence, Quality Testing Lab provides a wide range of testing services at any level of software development. Testing is our lifestyle, quality is our mission. We experiment with ideas and challenge ourselves to think one step ahead. Whether you are a small startup or a big corporation we will help you to optimize the quality, performance, and reliability across your software projects.

Thursday, March 5, 2015

Behavior of Testers inside development team

Usually, during interviewing Testing engineer Managers are trying to understand can this person be Testing Engineer or no. It's not so easy to be Tester as team member. It's not so easy to work with Testing team or Testing Engineers. Of course, all team is working for one product and everybody want to do their best for product, but sometimes team members don't want to recognize, that there are bugs or that bug is about their work. And for that Testers are - to talk with team members and try to tell them why it is bug and why they need to fix it.

Sometimes happening not good discussions inside team about some bugs or faults. For example, when Testers are finding bugs, at first they're feeling happy and if Tester is newbie and finding bug in code of old developer, and saying about bug not right, it's bringing to problems inside team. It is very important to write right bug description, if needed there should be screenshots. Tester need to write detailed information about bug and steps for reproducing bug. In description there should be information about environment that was used (operation system, browser, browser version, screen resolution etc), date and time, build number. Tester is one of team members, who can say that bug has high or low priority. Tester need to understand product very good and know every little part of product, for final report to Product Owner.

Tester need to talk with all members of team and be sure that everyone understands one thing. Quality over quality! Nobody want to use/bye product with bugs. But sometimes happening some things, that everyone need to avoid it.

There are many kind of developers and Testers, who're working in many ways. Testers need to understand, that he/she is the not the only one, who's responsible for quality but he/she is the last person, who is checking product before client. There are many developers, who is saying "this is not a bug, please, close this issue". When something like this is happening, Tester need to substantiate why it is bug and why developer need to fix this. It is very important to find best way for talking with developer. It is very long topic to discuss how Tester need to talk with developers and always it depends on team and methodology that team is using. At first, Tester is doing bug report to Product Owner, who is setting priorities and deciding what bugs need to fix. When developers don't want to fix something, Product Owner need to solve this problem, but Tester can help with this. Tester can say why it needs to be fixed.

At first, everyone should understand that all team is inside one boat and all of them want the same thing and that should be their product with high quality. Tester should have some personal skills, without them cant work. At first, they should be very friendly. It's very important to make friendly atmosphere in office. If there's a friendly atmosphere then Tester can make a report as a friend. But also, it's very important for Tester to look at team members in same. For example, if Tester is not writing about friend's bug in report, it's not friendship, it's fully way of friendship.

It is very important for Tester to be peaceful, calm, quiet and flexible. During your work you're having business with many kind of developers, product owners and clients.

Usually Testers are not only talking to developers, also, they're talking with clients. Everyone should remember, that client is always right. Sometimes clients are asking you to complete testing within one week, but for testing you need not less then two weeks. What to do? At first, you need to carefully tell about it to your client, and ask him more time. Client can say that one week is maximum that they can wait and you need to test it within one week. First thing that Tester need to do it prioritize things that needed to be tested.  For me from non-functional testing types security testing has highest priority. Before you need to do functional testing (at first can be testing main functions). After functionality testing you can do usability testing, performance testing, acceptance testing etc.
It's very important to have product without functional and security bugs, usability bugs. For example, there can be product without functional bugs, but with some design bugs that can be fixed for a short time. But also, there can be products, that design has very high priority. So Tester need to collaborate with Product Owner and understand what are expecting from Tester.


Friday, September 12, 2014

For beginner Testing Engineers

What is QA? What is testing? What is the main role of QA Engineer or Tester? How can you help developers? How to be sure that you’re checking right things? What is a bug? What’s error and what is fault? Tester or QA Engineer?

If you’re just starting your career in Testing, you’re giving yourself these questions and trying to find answers in Internet. There are many books and articles in Internet, but I think this article will be handbook for junior Testers.

I was doing development, when I found some little bugs and XSS in our project and started testing our product. At first I was just trying to find all bugs, faults, errors in our project without writing down steps for reproducing. When your project is under development and there are new features,  you will lose your time and you can’t help your team without test cases.

At first, you need to answer yourself, if you really want to be Testing Engineer or no. Do you want to find bugs, because you like testing or you want to find bugs in order to help your team, to fix bugs and have ideal project.

The role of Testing Engineer is neither finding faults in projects, nor helping his team to improve the project. It’s very important for the Tester to be in touch with development team. A very important thing is to be in the same room with developers. Sometimes developers can’t reproduce steps, and Tester needs to help developers to reproduce bugs, show them small bugs. Having regular short meet-ups with the dev team is very useful. Tester needs to know everything about the team and what they are doing and what  is planned to be done. Tester needs to help the dev team lead with estimation of tasks and scheduling. There are some aspects that developers don’t think about and Testing Engineer needs to discuss it with team.
Everybody in the team, especially Testing Engineer should remember about the quality of product. This is what client is waiting from team. Testing Engineer should remember that he/she is responsible for quality of the product. Tester needs to be sure that product has high quality before lunching it; since any product with bugs, faults, error etc. is not a product. 

Where does the Tester starts? If you joined a team in the middle of development, first of all you need to start going throw the project. You don't need any documentation or something on paper. At first, all you need is the project. Try everything in the project and try to understand what it's doing, why it's doing it and what's can be wrong there.

What is test case? Does Tester needs to write test cases.

You'll find many testers who'll tell you that you cant test without having test cases and you need to start testing from writing test cases.
For being fast you don't need to write test cases, it's paperwork, and as a Tester you need to test your product. Your main function is helping your team to develop product without bugs. So for testing you don't need to write test cases. You need to test the product and write bugs, identify steps for reproducing bugs and make suggestions for improvement. It’s very important to have detailed information about your steps. Also, don't forget to write about environment where you've tested the product.

There are many types of testing. White box testing, gray box testing and black box testing.
You can find many people who are saying that there are two ways of testing: manual and automated. Automated testing is when you're automating steps for testing, that you would have to perform yourself, but you're giving a task to the machine and the latter is doing the work for you. So, automated testing cannot completely replace manual testing since it won't be able to complete the task fully. Always remember, that Tester is doing testing not for finding bugs for developers. Tester is finding issues for product to be without bugs. When developers are fixing bugs, Tester needs to check if everything is working properly. Sometimes developers are fixing some bugs and because of that fixing something is crashing. Tester needs to know what is connected with that function or block.

There are many tools (also free) what you can use for doing load testing. Load testing is for understanding how many users can use your product at the same time. You need to know the maximum number of users, and tell developers to optimize their code for increasing number of users.

Tester needs to understand when he/she needs to use automated testing for the project. Not every project shall be tested with the some tools. By time, Tester will understand for what project what methodology shall be used for testing.

When product is going to be released you need to be sure that the product has high quality. That’s your main job.

For automating testing steps you need to know/learn some scripting languages. If you don’t know any scripting language you can’t write automated tests, or you can use tests that others posted. Testers needs\ to run unit tests that developers have written. There are two types of people: people of the first group think that unit tests should be written by Testers, people from the second group think that unit tests should be written by Developers. In my opinion both groups are correct. Everybody can write unit tests. If Testers are being late with unit tests, Developers need to help them with writing unit test. If Tester knows how to write unit tests, it’s very big plus for him.

Many developers (Testers too, unfortunately) don’t know what is a Bug, what is Failure, what is Defect and so on. First of all Testers need to understand the meanings of these terms. Bug is the result of coding error and defect is a deviation from the requirements. If there is a defect it doesn't mean that there’s a bug in the code. Error is a mistake, misconception on the part of a software developer. Failure is the inability of a software system or component to perform its required functions within specified performance requirements.
Also, Testers need to distinguish bug types. If there’s a small cosmetic bug don’t write that it’s a blocker. There are 5 types of bugs: Trivial, Minor, Major, Critical, Blocker. If you find critical or blocker bug you should immediately report to your team lead about it to.

It’s very important to do right bug tracking. When Tester is opening a ticket for developer he/she needs to write all steps in a very detailed manner on how the developer can reproduce the bug. Sometimes developers are having problems with reproducing bugs; and in my opinion it happens because they usually do not get detailed description. You need to understand what developer needs to know for reproducing bugs. For example, what OS was been used, what was screen resolution and so on. With detailed description about the bug, Developer will be able to fix the latter easily, without asking the Tester to reproduce the bug for him.

As a Tester you need to understand that you’re the last human who is testing product before releasing it and you’re responsible for the quality of your product. You’re the helper of developers who is finding bugs in order to have a properly functioning product.