Author Archives: Manish Prasad

Free Testlink Account for Practice

Dear Readers,

This gives me immense pleasure in announcing that we have hosted testlink test management tool on our website for learning purpose. This will help you to see & understand how testlink works. Also, you can practice by creating requirements, test cases etc absolutely free ­čÖé

Also, I will write basic tutorial on how to use testlink effectively. So go on register yourself & start experimenting.

http://testlink.qatesters.in/testlink/login.php

TestLink

TestLink

Note: For security reason, if any IP address or user account is detected to perform illegal activity, necessary action will be taken including account suspension and/or blocking IP address & if required Legal Action.

Understanding JSON web service with example

In my previous post, I was talking about web service. Now I will take you to details of RESTful service (JSON). Before getting into details of web service, you need to understand about http request types like GET, POST etc. If you don’t understand these request don’t proceed further until you are clear with the concept as these are the building blocks.

GET method: This http request is used to get the data using http protocol.  The basic example would be when you try to open www.google.com than a GET request is sent to google server. Google server in response will be sending html document of Home page to the browser.

POST method: This http request is used to submitting data over Internet. When a user submits user registration details than web browser sends POST method to the server with all the details.

You might want to see how it looks like GET method being fired in your browser. I am using firebug to display the request in below Image.

GET HTTP method

GET HTTP method

Now let us understand JSON. JSON stands for Javascript Object Notification. This is used for┬á data interchange over the web. It is very easy to implement, easy to read & Interpret as human readable and also it’s machine friendly. Whenever any GET request is sent than server sends data in response in JSON format. JSON format consist of key-value pair. A typical JSON response looks like:

{“Student”:[
{“firstName”:“John”, “lastName”:“Doe”},
{“firstName”:“Jane”, “lastName”:“Doe”},
{“firstName”:“Sam”, “lastName”:“Doe”}
]}

Here firstName, lastName are key┬á & John, Doe are it’s values. So, Developers will be writing JSON parser within the application which can Interpret JSON response and display the content as and where required.

Introduction to Web Services

Those of you who are new to application development might be confused what does web service means & why it’s important in today’s time. When I started working, I too use to ponder what is it. Name appears to be cool & yes web service technology is really cool. Let’s understand it.

Web service Introduction, SOAP, REST

Web service Introduction

When we develop application aka software than one of the important characteristic which it should posses is robustness. We cannot store all the data in the application itself. You might say why not connect the application with database directly but this reduces robustness & have security risk. Web service becomes a layer between the applications. It becomes a mechanism to transfer data over Internet easily between the systems/devices. For example, lets take an example of flipkart (e-commerce website). It has website, mobile app as channel to sell the products. So, their development team is going to write API which can be re-used on both website as well as on mobile device. This reduces efforts, increases robustness. API will fetch the data for product name, details, price, Inventory etc so if in future they want to try different channel say B2B than existing API’s can be used to build B2B system easily.

There are 2 types of web services commonly used:

  1. RESTFul
  2. SOAP

RESTful aka JSON (Java script object notification) is used majorly as it’s light-weight & easier to implement as compared to┬á SOAP. SOAP (simple object access protocol) is used in legacy systems, applications which require lot of security etc. I hope this small article was able to convene the concept of web services because if you understand the concept┬á that it becomes easier to understand further in detail.

Basics of Continuous Integration (CI)

In earlier days of Software development, Code was not compiled very frequently so this use to create lot of problems like

  1. QA folks got large chunk of features to test at a go which needs to be tested in short span.
  2. Time to market was very high.
  3. QA Team, Business personnel were not having Good confidence on the application being deployed.

So, a new technique called Continuous Integration was created. It is also referred as CI in short. This helped us to test application under development much faster & efficiently. Whenever a developer’s code is committed than CI server will get the notification that new code has been checked-in so CI server starts builds process automatically. This will immediately check if new code is OK & is able to compile with existing code or not. Also, since new feature is immediately available to QA team so they can also test & verify if new functionality is working properly.

There are some distinct advantages of CI as mentioned below:

  1. Build Process became automatic & faster. Reduces chances of human error.
  2. Automatic Notification of Build successful or Error is sent to all stakeholder(s).
  3. Regression test suite can be run immediately which can inform if new change has introduced any regression or not.
  4. Helps clear the distinction of which version of code was checked-in
  5. Saves tester’s effort if build doesn’t meet entry criteria, testing team will not be wasting time to test wrong code.

This same approach with production level configuration can be used for Deploying the code in Production. This helps us to reduce time to deploy code & decreases time to market. There are many CI tools available which you can use in your Organization. I am mentioning them. Try, experiment & see the result which one best suites your need.

  1. Jenkins (Most Popular)
  2. Travis
  3. Buildbot

I will be writing series on Jenkins to walk you through all the steps to setup , configure & manage your CI server independently.

Linkedin.com has adopted this approach & profited a lot. Many organizations are now moving in this direction & adopting CI in their development Cycle. I have provided story of linkedin success with CI to feel the impact of this approach.

http://www.wired.com/2013/04/linkedin-software-revolution/

Things to Cover in Mobile App Testing

Mobile App testing

With the Advent of smartphones, We are now moving from Desktop to Smartphones. Since these smartphones are coming with lots of features in terms of computational power & Memory that more and more applications are being written for it specifically. It has opened new channel for businesses to provide their services to there customer directly & also to reach out to their potential customers too. This had led to lots of companies be it startups as well as big MNC to hire people for mobile application development & testing. Be an QA professional so I will be covering areas which should be tested for mobile Apps. These points are applicable to developers too which will help them to cover these areas during development itself which will reduce sprint cycle & enhance product quality.

  1. Installation Testing: All mobile applications should go through Installation testing. This means for an android device, .apk file should install on all the android devices irrespective of device vendors , OS supported versions without any issues.
  2. Usability Testing: When user opens the device for first time than he/she should be shown help overview on screen which tells basic functionality of each button from usability point of view. App should be easy to use & operate for end user.
  3. Multitasking: Moving application into background & bringing it back should neither make App unresponsive nor it should crash.
  4. If App supports both Landscape & portrait mode than all the screens present in the App should be tested in both the mode.
  5. Services Testing: If app requires Internet to work than it must be tested on all networks like 2g, 3g, 4g & wifi.
  6. Regulation Testing: If it’s android app than it should be tested against Google playstore guidelines. Same is the case with iOS app which should be tested with respect to Apple’s Guidelines.
  7. Validation & Verification: All input fields within the App should be tested for valid values accepted & maximum input value accepted. For e.g. username input box cannot accept username size more than 30 characters.
  8. API Testing: All Data from web services should be rendered properly without distorting UI or text over writing.
  9. Multiple tapping at different location at the same time should not crash the app.
  10. Upgradation Testing: With New OS version being launched frequently so up gradation testing is a must as there are chances that some functionality may or may not work.
  11. UI Testing: UI need to be tested for supported screen sizes as it’s very common for UI distorting on certain screen resolution.
  12. Mobile Performance Testing: Mobile App Performance testing needs to be carried out to find bottlenecks & optimise it.
  13. Push Notification Testing: If app supports Push Notifications than it has to be tested with all types of network. Also, if push notifications are sent based on user account than user should not receive push notification if he/she has not logged into the App.
  14. Storage Testing: Sometime we store user data within the app than it should be tested data is stored securely & also if we upgrade the app with new version of app than user data should remain intact. There should be no loss of data whatsoever.

If there are UI or performance or functional issues in the app than user will eventually remove the app & move to another app which will result in low conversion rate.

I tried to cover mobile application testing on high level & I hope, you enjoyed reading it. Please feel free to share your valuable feedback if any.

Tester’s role in Scrum/Agile Team

In today’s competitive environment, Everybody wants to be ahead of Others. So is the case with the Organizations which want to offer there services with lesser time to market to end customer with less cost & better quality. In order to achieve this, Organizations are moving towards Agile methodology seeing more benefits over waterfall or other methodologies.

In a agile environment, development is carried out in short sprints. Scrum Teams work independently during the sprint to move ahead with development. Now, the question comes who all comprises Scrum Team. The Answer is Developers, Testers, Business Analyst, Designers. Every person plays an important role in making sprint a Success.

Scrum Methodology

When a sprint starts, Product Owner shares his wishlist with scrum teams & based on time estimates & capacity within the team, items are selected for development. So, Developers starts working on the items while Testers need to perform requirement analysis to find if there are any gaps in the requirement. Along with it, Test Planning, Test case Development, Test Data & Test Environment setup needs to be done before Development items are Ready for Testing. This means Testers work in parallel with developers on the feature to be developed. By the mid of sprint, Testers start receiving features for testing. If there are bugs, they get resolved within the sprint. Unless there are more bugs which can’t be fixed in the same sprint, Feature is developed & tested and is ready for sign-off from PO (Product owner/ Client) . After sign-off, features are Deployed at the end of sprint.

So a tester should not feel that his/her role will come once features are ready for testing. They need to start the work the moment sprint starts. Testers involvement from the start of development helps to identify issues earlier rather than later in the development phase which helps saves Time & Money.

I hope I was able to clear the doubt regarding testers role in Scrum Team. Still if anyone has a questions, please ask. I will be more than happy to answer them.

Difference between Test Case and Test Scenario

Every tester has to write test cases or Test cases as well as Test Scenarios depending upon the depth of documentation being followed in there respective organization. Some times, it becomes difficult for some one new to understand the difference between them so lets understand what exactly is Test Case & Test Scenario.

Test Scenario basically means a flow which a user can follow. A single Test Scenario can have multiple Test Cases but vice versa is not True. Lets understand with an example. User logging into website is scenario because this is a flow.

Test Case is a subset of Test Scenario. All test cases are derived from Test Scenarios. Taking the reference from example above, we can have following test cases:

  1.  Login using Correct credentials on website
  2.  Login using Incorrect username.
  3.  Login using Incorrect password.

Similarly, we can have more Test cases to check for Validation of input fields

  1.  Test for validation of username field to accept only valid email address (assuming username used on website is a email address).
  2.  Test for size limit of password
  3.  Test whether special characters are accepted as password
  4.  Verify blank spaces are not accepted as password
  5.  Verify blank password field is not accepted.

These are not the only test cases we can have. As a tester, we need to always strive to break the system in order to become better tester & increase our understanding about Application under Test. ­čÖé

Welcome To QATesters.in

I have started this blog to share latest news into Software testing field , How to series on Various Testing tools like Selenium, Cucumber, QTP, Jmeter along with working examples.

The vision of this blog is to help new comers in to software testing field to understand Testing principles & make there career in this field. Also for experienced testers to brush up there skill sets. It is a very exciting field to work on if person has willingness to learn new technology. In IT, the only thing which is constant is CHANGE. So, lets target to learn continuously about our Profession. I will be writing a blog post every week initially & will try to reduce sprint duration of post to post per Day ­čÖé . Visitors of the website are more than welcome to share there insights, share there knowledge with rest of us. ­čÖé