Wednesday, June 17, 2015

I embrace Mobizen and iTools for mobile testing

Hey All, It's been a long time that I have blogged here. I honestly apologize if you were curiously looking for articles to read from my blog and later realized that I did not post any new articles and otherwise as well ;) . I always wanted to write about testing, but something kept bragging me. Maybe, its because of my way of thinking style. Yes, I love to write/share about testing only if I learn something new, useful and interesting (at least to me) at work. Indeed I do read a lot from my testing mentors and other bloggers as well. So, with no more excuses I wanted to share an important testing lesson that I have learnt, yesterday. With no delay, let me share my challenging testing experience.

What is the testing challenge?
As a team we had a testing challenge. To identify a FREE tool in 60 minutes. The tool needs to mirror Android and iOS devices over web and can view from any geographical location.

Let the Game Begin:
Everyone was asked to go back to our seat locations and the game started. All the team members initially thought it is really easy to identify the tool at the very first moment. Later during the course of identifying the app we found that it is taking more time & effort. Is this an easy challenge? No :( What's Next?
  • Someone from our team started to phone a friend who works in Mobile team from another company to ask for help.
  • Other guy bumped along sending emails to his testing communities in other states and countries to seek help.
  • Another colleague, shouted hey you - Google my friend here I come :). She started to surf over internet to look for free tools.
  • A newbie who just joined said - OK, so everyone at least started to do something, let me observe what each one is trying to do. :)
Gone in 60 minutes:
Yes, the time came to an end after a rigorous 60 minutes search to exhibit individual's test analysis report to the team. The outcome was really fascinating. Team projected several tool name which can mirror your Android devices to PC like MirrorOPSenderChromecast app, Mirror Beta app, Mirroring360, Mobizen and other iOS tools such as Reflector, Airserver, X-Mirage, iDisplay, iTools etc. However, the drawback was most of the tool is not free and if its free it had its own limitations of installing and using it only for 7 days or the installation was not successful. Tools like Airplay works perfectly fine when all devices were connected on the same network over same WiFi. Not all tools but most of the tools dint work upto the testing challenge. Someone from the team shouted - Look here, I can view my mobile in my PC and I can control my device via PC too. Hurray!

Purpose Resolved:
The end result of the research and analysis of identifying a tool which could support our need is really fruitful. Yes, Mobizen for Android and iTools for iOS is an easy to install tool. We should install the apps in the device and PC respectively to use it, That's All Folks!
  • The purpose of this challenge is to help our clients view our mobile device screen onto his PC from any geographical location. In simple words If you had used Joinme and enjoyed the screen sharing from your PC then you would definitely feel it similar when you start using Mobizen for Android devices and iTools for iOS 8.1 and above devices - It's so easy to install and use.
Lessons Learnt:
  • If we want to reproduce a bug from a mobile device and showcase it to a product owner who don't have an handy mobile device but can access a web url from PC, we can use these apps.
  • If we want to showcase "User Acceptance Testing" of a particular functional module over web, which details how to do UAT from a user perspective, we can use these apps.
  • If we found an intermittent defect and if the developer is really curious to know more about it, inform him and have him view it from his desk for quite some time and try reproducing.
  • If we want to demo the latest build version of new feature implementations to your clients after QA-Sign Off, we can use these apps.
  • Mobizen for Android, works in a way where we can control our device from our personal computer (PC). Example, I switched on "flashlight" of the Mobizen connected mobile device from my PC. The real HTC Android mobile device was with my colleague who was 50 meters apart and got surprised. He never know I was about to switch flashlight ON. :)

Shiva Mathivanan

P:S: There are lot of articles already available to demonstrate how to install and use the mirroring applications. Thus I have not provided any installation guide. I have suggested Mobizen for Android devices and iTools for iOS 8.1 and above devices which is very easy to install and also have provided the benefits of such mirroring applications. Please write to me for any queries. Thank you.

Thursday, August 15, 2013

Visual Studio Test Professional 2013

On 15th August 1947 India got independence. Today we are celebrating 67th Independence day as proud citizens of India. I'm happy to publish a blog post today after quite a long time on India's special day. So Happy Independence Day 2013 folks. :)

This post is not about Independence day, It is more about Visual Studio Test Professional 2013 the tool I have been using for a long period on test case management and test automation. I would like to share the benefits that I see in this post. This tool provides end-to-end traceability to gain a complete view of the progress, quality of each requirement, tracking test case, tested product backlog items, test cases to business goals, conduct, record, repeat manual tests, manage test environments, communicate measurable requirements using acceptance tests, associated automation. It helps a lot for being Agile. Read more! The Visual Studio Test Professional actually sits on Visual Studio Team Foundation Server.

Now I would like to talk about Visual Studio Team Foundation Server. The TFS, Team Foundation Server will manage your code with state of the art version control, links change to integrated work item tracking, Increases visibility of project with Team Web Access, centralize all roles in a single repository, collaborate in context to increase visibility, reduce hand-off waste, adopt agile techniques to become more effective, reconcile the agile team with your company's project management, continuously monitor the progress of the project, follow your requirements through their complete life cycle, seamlessly integrate test solutions, implement continuous integration to reduce risks in project. Read more! TFS automates and streamlines the software delivery process, as well as provides full traceability and real-time visibility into project status, for all team members, with powerful reporting tools and dashboards. Lab Management Delivering high-quality applications requires thorough testing of application code.

It is important to understand about TFS when we learn about Visual Studio Test Professional which is a boon for testers, at least to me as a tester!. Now coming back to the topic we discussed already is about the Visual Studio Test Professional which offers a full suite of management tools, including Test Manager which has Testing Center and Lab Center.

Testing Center helps us to create Test Plan, Test Suites, Test Cases in the Plan tab. Test tab helps to run, analyze, do exploratory testing, view exploratory test sessions and verify bugs. Track tab helps us to query, assign builds. Organize tab helps organizing the Test Plans, Manages Test Configurations, Test Cases and Shared Steps. Read more!

Testing Center
Visual Studio Test Professional - Testing Center
Lab Center helps to create lab environments on which you run your test professional manual tests. There are two kinds of environments: standard and SCVMM environments. A standard environment can use physical computers or virtual machines, and the virtual machines can run on any virtualization framework. An SCVMM environment uses only virtual machines that are managed by System Center Virtual Machine Manager (SCVMM). Microsoft Test professional can be used to set up both kinds of environment. In the case an SCVMM environment, you can stop and start environments, store environments in a library, and create multiple copies o
f them. In both cases, you assign roles to each machine in the environment. For example, typical roles are Web Server and Desktop Client. The role names are used by your test workflow to determine what software and tests to deploy on each machine. Test Professional inserts a test agent on each computer, which enables the test controller to deploy software, run tests, and collect test results. Read more!
Visual Studio Test Professional - Lab Center
Test Runner is something we use under Test tab from Testing Center which helps to run manual tests. If you are someone like me who execute the test case scenarios from Microsoft Excel document, you would be more interested to run it through Microsoft Test Professional's Test Runner. The test resolutions or comments can be provided during your test run and can be saved as test results. Can create bugs on the go by failing the test step. Read more!

Test Runner

The most important feature that I like is performing Exploratory Testing using Microsoft Test manager, starting an exploratory test session, exploring the application, report bugs, makes re-testing easy. Read more! I'm done with my sharing of Visual Studio Test Professional 2013, if possible try at your end of how this tool fits your purpose. Please rely more on for more information on this tool. Thank you!
Best Regards,
Shiva Mathivanan

Disclaimer: For now I like to use this Microsoft Tool to a greater extent to explore more on its fullest usage. I too have some limitations in using all of its features regarding automation, due to many reasons. As far as manual testing is considered this is a good tool. However I'm still exploring to find it to be a good automation tool. I have pen down my thoughts and its too personal. Hope it helps newbies to learn at least something. :)

Friday, January 20, 2012

Chrome Web Store Apps That Assists Software Testing

Hey passionate testers out there, hope you all had a great New Year 2012 celebration. I wish you all have tremendous success follow you in all the steps that you take forward with courage. I pray for all your testing dreams come true in 2012.

Chrome Web Store
In this New Year I have started to explore the Chrome web store and found few interesting Apps that are helping me to enhance my testing skills. Apparently there are other places where you can get Apps, like The Apple store and Android Market. But my search was specific in finding free Apps that assist me for better testing via Chrome web store. Meanwhile Mashable published a statistics on Google Chrome that created a lot more interest in me i.e. Google's Chrome surpassed Mozilla's Firefox as the world's number two browser behind Microsoft's internet explorer globally in November, according StatCounter. Thus I started to drill down to find more apps that I can use while testing in Google Chrome, to an extent where I have been using Mozilla Firefox add-ons. Now it's time to share the Chrome Web Store Apps that assists testing, those are listed below. But before that try figuring out, how to install free Apps if you aren't aware of it from here:

1. Allow Right Click*: It re-enables the possibility to use the context menu on sites that overrides it. This cracks the right click disable feature in most of the live banking website. It can be a security threat for the bankers who think they have tried to limit the scope of hacking by disabling the mouse right click. It can be a real treat for testers who are trying to uncover security vulnerability.

2. What Font*: It helps to find out the fonts used in webpage. Fire bug and Webkit Inspector are easy enough to use for developers. However, for others, this should not be necessary. With this extension, you could inspect web fonts, font family, font size, line height and color code by just hovering on them. It is simple & elegant.

3. iMacros*: Automate your web browsers. Record and play repetitious work. Of course, there are few limitation in this iMacros automation checks like other automation tools. But it fits for minimal purpose.

4. IE Tab*: This App displays IE7, 8, 9 within Chrome. Testing the web-pages within Google Chrome along with different versions of IE is featured in this app.

5. CSS Tester*: This helps to test css on real time website. All you need to do is to type the css style rule in popup window after installing the App, and it gets applied to website in real time.

6. Firebug Lite for Google Chrome*: Firebug lite provides the rich visual representation we are used to see in Firebug when it comes to HTML elements, DOM elements, and Box Model shading. It also provides some cool features like inspecting HTML elements with your mouse and live editing CSS properties.

7. Mail Trap*: Mailtrap is a standardized solution for the problem of e-mail notification testing with those notifications isolation from real users of your app. It allows viewing all of your e-mails on line on the Mailtrap site, then forwarding them to your normal mailbox if needed. Simply putting ‘’as the default SMTP server in your application’s configuration allows viewing all of the emails your application delivers without spamming your real customers.

*All the App titles are being linked to respective App at the Chrome web store. Apps have little limitation and it may not fit to the purpose at times and maybe otherwise. I suggest you to read through the instructions carefully from Chrome web store and then apply it accordingly to suite your purpose. Happy exploring!

Best Regards,
Shiva Mathivanan

Friday, October 21, 2011

LinkedIn – Error message is invalid and unhelpful

I see that the error I posted last year November 2010 to LinkedIn still isn't fixed. If you had missed that bug report, you can view it from here - "LinkedIn-Error message is valid but unhelpful". While trying to reproduce the error which I had posted last year, I found yet another error. However this time, the error danced at me is very invalid and ultimately unhelpful. It blocked my action to precede what to do next. Crazy me!

As soon I reveal there is a quick challenge awaiting for you. So closely follow up to reproduce!

Bug Title: LinkedIn- User warning message is invalid and unhelpful.
Defect Module: Invite Friends.
Severity: Medium
Priority: Medium
Tested Environment: Google Chrome 14.0.835.202 m on Win 7

Steps to reproduce:
1. Login with valid credentials to in any browser.
2. Choose a friend, to whom you want to connect from the top right navigation of the page from "People You May Know" section.
3. Click on the "+Connect" link
4. Choose the "Friend" option button from "How do you know '?'
5. Replace the existing personal note with below message

Hi user,
I am a new user.Please add me up.Thanks.

6. Click on "Send Invitation" button
7. Refer the screenshot to view the error.

LinkedIn - Invite Friends

Observed Result:
I got warning message in RED stating... "We're sorry, you cannot include website addresses in invitations. Please remove the website address and try again."

Expected Result:
Require appropriate user warning message. Field level error validation warning message needs to be examined to offer necessary user status message which could add value to the existing user base.
-Bug Report Ends-

Hey LinkedIn - You asked me to include a personal note, so I did. But you are asking sorry, to inform me that I cannot add website address in invitations. I also feel sorry to say that I did not add any website address in the personal note. You can very well see my personal note in the screenshot.

Testing Challenge:
Hey testers out there,
Can you do a quick bug investigation on the error that I have reported and let me know - How that error message could have been triggered?

If you would like to learn more about Bug Investigation skills before you start working on above testing challenge then click on these link here & here.

Best Regards,
Shiva Mathivanan

Friday, June 17, 2011

Bridging Relationship: Testers vs Programmers

Today my co-tester and I had spent few minutes talking about the problems he faced during his test iteration over a cup of hot espresso cappuccino at office cafeteria. He was explaining about the problems he faces with a programmer (in his cubicle) to whom he closely interacts and works. After hearing him for a while I diagnosed that my co-tester is actually diseased. Yes, he is badly infected with 'programmer syndrome' disease. The cause of this disease is to show high symptom of 'always complaining/talking about developer's incapability/problem'. The effect of this disease is it will create adverse effect on his own thinking capability of not to acquire more testing skills and in other words it affects the right way of building tester mindset.

"Leaving the problems apart, ah...wait...NO - I can't leave my problems just like that, I still have more problems to complain my developers - Yes I'm a tester, how can I be without problems? 

Gurr...I too have many problems to complain a tester in my module who is really bad. - Yes I'm a programmer, I face unnecessary problems with 'that' tester!"

I have also heard from many testers complaining about programmers that they write buggy code, creates buggy product, doesn't know how to code well, doesn't accept my valid bugs and specifically pointing to a specific programmer complaining like...'look THAT programmer is not good', etc. Concurrently I have heard programmers say like, I hate THAT tester every time when I read his bug reports -writes silly bugs, 'THAT tester always annoys me -I don't know why', 'look THAT tester does real bad job'. My question to both the programmer & testers is -Is being bad a birth trait? Please start thinking about it. I think, being bad is an acquired skill as being good. At the same time we cannot dwell well with the bad programmer/tester if we are highly skilled enough (at least to our presumptions), yeah? That's where the underlying problem is. So how are we going to bridge the good and bad of a tester or a programmer to smash this bias thereby one can bridge the relationship better. It's a highly debatable topic, isn't?

After working in this software testing craft for 5 years, I realize that this gap between a tester (who tests the functional/non functional code of a program) and programmer (who writes software program codes) should be bridged well for smooth commutation of software product releases without any bias. Thus I tried to implement a practice to myself i.e. the practice of understanding a good tester/programmer and spotting a bad tester/programmer with 10 noticeable points. I consulted the same to my co-testers & programmers and they found it useful. Glad to know it was also useful for them to understand who is a good tester/programmer and thereby they cleared their mind traps and let the decision with management for bad tester/programmer actionable points. Later good testers have continued to start bridging excellent reputation with good programmers and good programmers have got everything they wanted from a good tester (effective bug reports, test reports, feature modification requests, heuristics, etc.). My co-testers & programmers have got benefited to build and bridge excellent relationships together for successful product releases. Thus I would like to share the same tips in this post, presuming it may embrace another tester/programmer as well.

Ten good tips to spot a good tester:
1. Use sapience well.
2. Have high technical aptitude skills.
3. Have strong analytical, lateral, logical and critical thinking skills
4. Does bug advocacy & brainstorms well.
5. Writes effective/reliable bug reports and loves to gain/build credibility from programmers & team.
6. Involves programmer in test design reviews and have excellent go-getter attitude.
7. Enjoy playing around with business logic against the application under test to uncover more defects.
8. Looks intellectual, updates his testing skills periodically through weekend testing.
9. Always acquire high reputation from the development house of managers, programmers, testers, clients and also creates high demand to assist other testers. Possess training & mentoring skills.
10. Will be a good team player with excellent team building skills.

Ten good tips to spot a bad tester:
1. Write bug reports which seem to be very unique & useful for programmers. However realizes lately that it was a one-line bug report, no records of identified-problem attached to the artifacts, no screen grab/video capture, no clear bug summary, etc... More realization happens when programmer comes to tester desk and ask for "I don't understand 'what the problem is?' in the reported bug, can you please explain more in detail?"
2. Waits until information comes to his desk, doesn't hold high energy or go-getter attitude. Love not to come-out of comfort zone.
3. Compare & complain about the work culture, test teams, programmers with current employer to his/her previous employer. Knowingly or unknowingly kills own time along with the person who sits next to him or an online chat friend. Rather than spending time in other useful test activities.
4. Misunderstands business logic.
5. Doesn't show interest to increase his/her knowledge space by doing collaborative or paired testing
6. Never question the functional instructions, follows blindly.
7. Restricts sharing.
8. Hesitate to seek for help or never asks
9. Restricts learning.
10. Sleeps in office.

Ten good tips to spot a good programmer:
1. Write neat codes with clear comments.
2. Understands tester perspective & customer demands well.
3. Knows the importance of extensive unit testing.
4. Put right questions to tester to seek defect co-occurrence.
5. Fix bugs considering integration & regression issues.
6. Informs tester to test diligently on specific modules as there would be higher chances of code breaks, well in advance prior customer release/review.
7. Follow up with tester periodically to assess "how recent build works?" Sets expectations of what needs to be tested, based on current situation.
8. Invites tester to periodic developmental team meetings that he/she participates to urge the interest of knowing "how tester tests differently unlike programmers".
9. Motivate testers to raise more defects on the built code, sits next to tester and observe carefully of the tests he performs. And appreciate for the bug he/she finds in programmer code.
10. The wire frames, business logic, software requirement specification, functional workarounds will be in his finger tips.

Ten good tips to spot a bad programmer:
1. Writes lengthy & duplicate codes with improper naming conventions.
2. The desired functionality will be made to work, without integrating the dependency features of the same functionality taking into account. This leads to adverse integration issues.
3. Often forgets to commit the updated codes to repository.
4. Writes buggy codes with unclear 'comments'. Comments will help another/new programmer or tester to understand the logical work flow of the written code.
5. Often forgets the syntax.
6. Poor understanding of the business logic, leads to write complex code for simple workaround.
7. Never do Impact analysis, fails to plan & analyze the overall cause-and-effect of the functions before writing codes. 
8. No development patterns.
9. Considers testers are of no use. Who has false presumptions of anyone can test & tester do not necessarily require any skills. Doesn't appreciate a good tester who adds value to the product of the programmers build.
10. Who is not afraid to re-factor whenever and wherever applicable.

Tester Vs Programmer
All we need to do is to understand the good and bad of both to realize current contexts. I believe and follow that he, who understands the realism, can wisely react well. I truly believe that there are no best practices. However, there are lots of good practices available. If the good practice seems best practices in your contexts, then it may work for you go-ahead!

Best Regards,
Shiva Mathivanan

Disclaimer: Like how doctors hide patients database to anonymous I'm purposely hiding the diseased co-tester name as he is under my treatment now. I might reveal his details once he gets completely recovered from 'programmer syndrome' disease. :)