Category Archives: Uncategorized

We didn’t want to be cocky and then chose to understand each other!

I could just continue to be cocky and then be immature in life by not understanding people and then discontinuing to work with my own people at my startup. I always love to work with people whom I love and I cannot have negativity or hatred for them. Yes, this post is dedicated to my very own elder brother Sandeep Tuppad (He heads Mobile App Testing and Test Automation at TestInsane). We always used to fight when we were kids and then again end up  talking to each other. I still remember when he used to stand by me to support me when the world started to fight me. Having said that, things started changing when we were working together at my startup. Yes, we had multiple fights through words and we both did not feel pleasant about whatever used to happen. That was the time when we could say, “Fuck off” to each other and just continue with whatever we wanted to. But, I have never liked breaking relationships and would always want to work it out if I can make it work based on my best interest. After multiple unpleasant activities, I decided to talk to Sandeep Tuppad and shared much deeper thoughts about my life and also connected with our childhood days where we loved each other. We decided to bring those days back and have a better life by working together. We started understanding each other better and better as days passed by and today our relationship has become so much better and I celebrate this pleasantness every moment. Yes, I am happy that I decided to understand instead of quitting. I just followed my visceral and again my visceral has proved that I can be happy if I follow my visceral. The other beauty was, I sensed the maturity in myself of making such a decision. Today, we brothers are rocking with the work at my startup and we are game to take it to next level along with other team members who rock.

Santhosh Tuppad and Sandeep Tuppad - TestInsane

Santhosh Tuppad (Extreme Left) and Sandeep Tuppad (Extreme Right)

It’s all about people in any startup / company / organization. I have learned that the companies can make progress by understanding the team members or colleagues or people with whom they work closely. If you do not work closely, maybe you are not accepting others at your workplace and indirectly that may be hindering the progress of your startup. We solved the problems then and there instead of prolonging them for longer time and then falling in the trap of life / startup progress. Having made a wise decision following my visceral, we are happy team today and we are going to continue the happiness for longer time by doing things in life which make us happy.

In short, keep the negativity away and focus on the happiness. Let go the unpleasantness and work on bringing the pleasantness. We hear lots of quotes about team-work, but we fail to get along with our very own team members. Kick the negativity out and even say sorry to each other because you care. It’s not about who is wrong or right, it’s about you care for your own people and love to get along with pleasantness and rock the work.

Go! Spread the love and you will get it back in many different ways. I spread love because it makes me feel happy. And anything that I get back is a goodness of life. Stay happy!

TestBashNY 2015 ROCKED! What else could happen?

Posted on by 0 comment
Thank you Rosie & Family!

Thank you Rosie & Family!

New York City is beautiful and awesome. And this time, it was more beautiful because I found one more reason to more awesomeness and that was being part of TestBashNY Conference that happened in New York City. I will be using “beautiful” word many times in this blog post because that’s what I feel like saying when I speak about TestBashNY. I met many passionate software testers with whom I used to communicate through social media. To name few I met Selena Delesie (The Soul Igniter – Indeed she is), Martin Hynie (He was the person I saw along with Rosie Sherry entering the restaurant before TestBashNY where I met many other testers. And I was so happy to have finally met him and he was my first friend at TestBashNY. I like his company :)), Elizabeth Zagroba (The Moon-Walk girl.Her 99 seconds talk was awesome with moon-walk skills), Rosie Sherry (A rockstar who made this happen and I am very thankful for her to create this opportunity for me), Dan Ashby (My brother with whom I had great time and the respect he has for TestInsane made me so happy), Mark Tomlinson (Attended performance awesomeness tutorial by Mark and I loved it. And he is awesome person), JeanAnn Harrison (We used to know each other through social media, but I happened to meet her finally and was happy), Ajoy Kumar Singha (The founder of TestingCircus whom I met in person for the third time), Perze Ababa (My brother who was happy to see

Santhosh and Martin at TestBashNY

Santhosh and Martin at TestBashNY

me and I was happy to see him. And we greeted each other through a giant HUG), Anna Royzman (She is awesome), Matt Heusser (Have known Matt for many years, but had a chance to meet him for the first time), Alessandra Moreira (We met 2 times in different places, but it was always “Hi” and then “Bye”. Hope to meet Ale next time and talk more:)), Kate Falanga (Heard to her talk which was awesome, but will talk more when I see her next time again), Tony (A brother from another mother. He was awesome and I felt so happy to connect with him again after TestBashNY as he invited me at his celebration on the occasion of his last day at his organization) and more. I also happened to network with more testers at NYC testers meet-up that happened at Booker Software company in New York City. One of the best tutorial that I attended was Mark Tomlinson’s Performance Awesomeness. He really nailed it and taught me something beautiful in just few hours. I appreciate his time in meeting and talking in his tutorial. He really is as awesome as performance awesomeness. I do not like to speak person by person because every person at TestBashNY was freaking awesome. And I loved every bit of my time when I was at TestBashNY.

Paul - Keith - Santhosh - Meeting

Paul – Keith – Santhosh – Meeting

It was great to catch-up with Keith Klain and Paul Holland at their DJ office in Bronx after the conference. We had some business discussions along with regular brotherhood talks J In short, I enjoyed the whole journey to New York City. Great people make great conferences, and people at this conference were awesome and that’s why TestBashNY rocked. Thanks again Rosie and all of the participants for making it rock.

I will be very much excited to see more testers at TestBash Brighton in 2016. Fingers crossed.

SOFTWARE TEST AUTOMATION – THE WHYs, WHATs, WHENs and HOWs?

Let me cut the crap and jump over to the actual topic. That’s the least I can do for you J

Why should I think of automating the tests?

The product development has reached a milestone and yet to be enriched with more features. We wish to make sure that the new changes don’t break the existing features. Yes, we can always test them manually during each release. However, there are two major demerits.

Let us assume the releases to the test team are located far apart. During the time gap the product might be updated with many changes. In an agile environment we would like to verify often or when the changes made to the product, that the changes have not broken the existing features than waiting for the next test cycle. It would be impossible to verify often all test cases manually. So a right approach will be to automate the tests for the existing features and run them and report the deviations every release. Verify only those test cases manually which are difficult to automate and we do not wish to automate.

Let us assume the test cycles are not far apart. Over a period the manual test efforts will keep on growing as the more features Test Automation - TestInsaneadded. If we have to keep the test cycle short and unchanged then we would need more manual test hours. While we plan everything in terms of cost and resources (a human is treated as a resource), we forget that it’s living humans who are testing the nonliving product. The tester who has to repeat the same tests every test cycle starts to feel monotony and may not test the product with same keen and attentive state of mind thereby failing to make sure the quality of test. A hard truth! That’s why many complain software testing is boring and non-challenging as there is less time available for him/her to acquire new skills and use them to test the product with fresh mind-set. The solution is to automate them and manually test only the areas which are not covered by the automation tests. The test engineer can now explore new ways to test the earlier features at the same time focusing more on testing the new features introduced.

What if we intend to repeat each test several times to test for the reliability? A tester will die of boredom or lack of sleep. But machines can run all day and they can do repetitive task uninterrupted at better speed than a human can. So we have hired machines to work longer and faster to do repetitive and boring tasks.

The take-away from automating the tests are,

  • Save the cost of delivering stable product by reducing the manual efforts in relatively quick time compared to manual tests.
  • Make testing less boring and monotonous for our engineers so that they can focus on acquiring new skills to test the product better.
  • Consistency in test quality as there is no human intervention (Remember if the automation tests are not written rightly then the purpose of the automation may not be met).
  • Immediate feedback of the changes to the developers in CI environment so that they can fix the changes immediately than waiting for the next test cycle.
  • Improved speed in achieving the better quality and reduced test cycle duration.

 

What and When to automate?

It’s not practical to automate everything and it can be done. But, it is very challenging to deliver the best test results which a skillful tester can deliver as one can think of better permutations and combinations of actions and creative test ideas which may not be automated for valid reasons. I am not saying we cannot. There are products which have more test code than the product code and that’s a sign of good product. But, as mentioned before we can cover major use cases of all important features which make sure the greater stability of the product with good volume of test data (of differing combinations and permutations).

  • We should automate test cases which are difficult to be tested by the human as we are limited by speed and ability to generate huge test data and test for all the cases in limited time.

 

  • We should not automate the test cases which add little value and the more cost in automating. Say, CAPTCHA string recognition in automating login feature. Rather I would disable the CAPTCHA in the development server and automate the login feature (unless the CAPTCHA generation is purposefully weakened in test environment and their order is made known to enable the automation in development environment). Otherwise, I would need a module which would do CAPTCHA image decoding, which is an overhead mostly. Say, the charts are generated and the numbers are to be verified against the chart values. We would need to do chart image decoding. The easier option is to do image comparison to expected image if we know the test data input. Imagine testing a photo organizing app which organizes photos belonging to a person as album. How do we automate the test case to verify if the photo belonging to a person are grouped as an album? Unless we have predefined data and we know the expected result to compare against, the test case cannot be automated for any test data which is dynamically generated. However, it still helps to verify that the feature is not fully broken by checking it to work with the small test data we have (and we know the expected results).

 

  • If certain features of the product are expected to behave consistently when the same tests are performed repeatedly for long hours, several times as required by the product requirements, the automation is the only way forward. An example would be channel change in Television to work without failure for several times which is typically high.

 

  • We should automate when most of the feature implementation is complete, requirements almost frozen and stable. Otherwise, we end up maintaining the automation suite often than expected.

 

How to build a good automation framework?

  • Carefully identify test cases keeping automation as the end goal to assert the stability of the application under test. The test cases should cover most important use cases with a goal to uncover bugs and assure the features work across releases meeting least required quality.

 

  • The automation scripts and test data separation is a must. This demands the need to write generic code which enables testing for wide range of test data and test cases without a need to change or add the code or for a developer to get involved. Ability to change or edit the test data should be easier and adaptable to the changes in the minor changes or enhancements to the product features.

 

  • Avoiding dependency between test cases as much as possible unless the test case and test data get too big. Think of an application which allows the user to navigate to other pages/screen and use them only if they complete registration form. Let’s assume there are 5 features to automate and registration being one of them. Let’s assume we have coded and automated 5 test cases where first test case executed is registration. All other tests cases are executed if the first test case which is registration pass. If the registration fails for some reason rarely (unless failing always) then all other test cases are skipped or fail. I do not like that. So I would make registration as one of the step to be executed in every test case. Even if the registration fails in one of the test case, rest of the test cases executed successfully.

 

  • Choosing an automation software and the binding (programming language) which has immense support for other plugins which are needed and enhance the automation framework. The tool selected should be stable, not too difficult to learn, has good technical documentation and support, the fixes for serious bugs are delivered quick enough and lastly should have the features to automate almost everything that we have and we will have in the product to be automated. If the tool supports multiple bindings I would prefer a binding which has wider support for third party plugins to support the features which are most needed in an automation framework (Say, test results reporting, test case management, and spreadsheet read/write plugins such as JUNIT, TestNg and apache POI etc. TestNg is supported in java, python does not support it). If there are multiple bindings which are equally good, I shall prefer the one in which I am more good at and comfortable than learning the new programming language. But, there have been organizations who prefer a binding(programming language) which is not having support for plugins as much as other bindings for a reason that they are mostly comfortable with that binding and do not intend to migrate to new language which would demand time to learn and code proficiently. Change is always a difficult option!!

 

  • Implementing test cases which are easy to scale and maintain. If I have to give an example, think of a login page in a web application which needs to be automated. We write tests which automate entering the username and password text fields and click on “submit” button. The script works as expected now. Tomorrow the username and password text fields order are exchanged. Unless the developer has though over this and has coded the scripts with locator which are robust enough to rightly locate the username and password fields irrespective of the order is bound to fail.

 

  • Implementing test cases with readability and maintainability as one of the necessity. The automation scripts should reuse the code. So always write helper functions common across all products and specific to a product and reuse them to reduce code clutter and to enable readability and modularity. Say an application has number of pages where we need to enter the mailing address having fields first name, last name, building number, street name, city, state and pin code. Instead of repeating the same lines of code for test cases for different pages which prompt for mail address, I will add a helper function which accepts all fields as arguments and edits the fields. Now each test case need to reuse this function with the right data passed. The result is scripts are more readable. Imagine there is a bug or a new field has been added to “mail address” block say, landmark. All we need to do is extend the helper function. So easy to maintain.

 

  • Apply and enforce coding guidelines so that it’s easier to understand and modify the scripts over a long time. Even if the original developer of the script has quit the organization or during original developers absence the other developer does not find difficulty in understanding the implementation to fix or to change existing scripts to address new requirements.

 

  • Ability to generate a test report which would give enough information about why the test case failed and other useful statistics (without a need of human presence as the automation suite is run). This demands ability to embed extra intelligence which would attempt to diagnose to zero-in on the cause for failure and other supporting details.

 

  • It should enable test case management, so that we can choose the test cases to skip in easier way instead of getting into at the code level.

 

  • Ability to support continuous integration and test result reporting by mediums such as email or SMS (as an SOS for test case failure) to the stakeholders to get a quick feedback and act so. Triggering automation run needs to be time driven (say every day at 10:15PM) and event driven (some code changes are committed to code repository or new build generated in the build server triggered by code change commits).

 

  • The automation framework should enable necessary level of customization by means of configuration files which can either be edited directly or by using a GUI tool than getting into the code and other technical aspects. The other aspect is to apply configuration changes without having to rebuild the automation framework unless it hits the performance of the automation in action or it’s highly difficult and value added is not worth.

 

  • Speed of the test execution is crucial when we intend to test large number of test cases with even larger amount of test data. Should avoid fixed delays except rare cases and design should also be taken care at function level for speed. It would be great if the automation tool supports running the tests in parallel on multiple machines with different environment/platform to speed up the tests and to verify cross platform compatibility.

 

  • Provide test coverage report at test case and code level (at code level it’s called code coverage).

 

  • Ideally should be test platform/environment agnostic (OS, browser, machine architecture, time zone etc.) as far as possible. This needs intelligently designing the framework.

 

These are purely my opinions about a good automation test framework based on my experience and learning in software automation and software development in general. A constructive feedback or questions or discussion are welcome. Good day!

ABOUT SANDEEP TUPPAD (VP, Mobile Apps Testing and Automation)

SandeepTuppad - VP, Mobile Apps TestingSandeep Tuppad has a decade of experience in software development (Drivers & Application Software) for Consumer Electronic Devices such as Digital Television and other display devices. He has prior experience of implementing automation framework and utilities aiding software testing. At TestInsane, he is responsible for exploring and implementing test automation framework, utilities, gathering knowledge and mentoring the team to enable “quality mobile apps testing”. He loves to travel and pursue outdoor adventure sports.

 

Try our web and mobile test automation services – Buzz me at sandeep (at) testinsane (dot) com.

TestInsane - Web and Mobile Test Automation

TestInsane – Web and Mobile Test Automation

My journey to become wacky tester has begun!

While I started my career as a Tester, I thought  I wanted to be unique from others but I knew I had to go miles for that, but I didn’t lose hope. I started surfing through the web and I went  through the blogs of some famous Testers. Finally, I found someone interesting; yeah that was Mr. James Bach. I browsed his blog and found it as interesting and impressive.

On that day, I came to know there were lot of things I have to learn apart from the things what I had done so far on Testing. I was interested to learn about the new concepts in Software Testing like Rapid Software Testing,Context Driven Testing.

That was the  time I felt I was lucky I noticed the Skype ID of Satisfice INC. In addition to that, I also happen to find James Bach’s Skype ID too. I was excited and requested him to add me in his contacts and waited for the response. Yeah, finally I was connected with James Bach. I was really happy and I thought that I attained the first step of success.

Suganthi SelvaKumar

Suganthi SelvaKumar

Then I discussed with James about what actually Testing was? Then James explained some concepts like Mental-Model approach and Oracle-Problem solving method. James introduced me some famous Indian women Testers like Parimala Hariprasad and Smita Mishra. Not to forget that he also mentioned about Lalit Kumar Bhamare. And also he shared the articles with me which he has published. Thereafter, I decided in order to attain my uniqueness, this is the correct time that I have to go for a better team to work with which will add value to my life as a software tester.

After that, I decided to quit my job from my current company and planned to move to an start-up which will add value to my future. I discussed about this with James Bach, then he introduced me to Test Insane and spoke about Santhosh Tuppad, provided with the Skype ID of Santhosh Tuppad. I surfed about Test Insane, and then I was interested on watching their mindmapping approach and Heuristic table of testing. They gave importance to the skills of a tester and the kind of values they live by was fascinating. I decided that TestInsane was a perfect testing start-up in which I can be able to learn a lot of things that will add value to my knowledge and can explore my ideas in testing the software better.

Then immediately, I approached Santhosh Tuppad and showcased my interest in being part of Test insane and finally Santhosh Tuppad provided me an opportunity to work with TestInsane. Yeah, am an member of Test insane now I felt happy on writing this.

My first day experience was different because while entering into TestInsane itself I found out that Test insane was not like other organizations, but unique. From my first day itself I came to know a lot of new things from Santhosh Tuppad like Mind map approach and Heuristic Table of Testing, he explained with clear examples. Now, am interested in the processes of creating the mindmap approaches. I am sure that Santhosh and his team will guide me in  best way to attain my success. Working with Test insane will be the second step of my Success. I would like to mention that Santhosh Tuppad is great in thinking differently & in a unique way. And I am very much sure that TestInsane will help me become a better tester through this journey. Thanks James and Santhosh.

This was the perfect moment that I started my career with Test insane and it added the confidence in me that I will be a unique tester who provides a best Quality Assurance testing services to the software and be a freethinker with indomitable spirit.

WEB SECURITY & MOBILE APP SECURITY TESTING BY (ETHICAL) HACKERS

Posted on by 2 comments

Do you hate nightmares? If you do, then please continue reading it as you are possibly one of the target audience for security testing services. Typically, many start-ups or organizations do not test their software for security. Most of the times organizations are only bothered about functional aspects, while; usability & accessibility are used as add-ons (UK and US customers).  Long ago, there were very few hackers in 90s however, nowadays we have handful of them who always want to breach the security for whatsoever reasons. Irrespective of any reason, as an organization it is important to safeguard the sensitive data.

At TestInsane, we thrive for excellence in security testing and we have hand-picked ethical hackers from the industry across India. We are mix of tool-assisted and brain-assisted ethical hackers who are always in hunt for security vulnerabilities. We accept the fact that, there cannot be fool-proof secured applications, but better tested applications where we make a better effort in building a wall against the hacks from unethical hackers.

Security Testing

Security Testing

Here is a questionnaire for you to decide if you need security testing services,

  • Can you afford to lose your customers?
  • Can you afford to lose to your competitors?
  • Can you afford to have down-time?
  • Can you afford to have bad reputation via social media?
  • Can you afford to get sued?
  • Can you afford to pay hefty amount for hosting for non genuine usage? (Cash overflow attack)
  • Can you afford to go out of business based on critical vulnerabilities?
  • Can you afford to face the questions by media?
  • Can you afford to face lawsuit?
  • Can you afford to have negative propaganda about your company / brand?
  • Do you care for the privacy of your customers data?

If the majority answers were “NO”, then you are eligible to get your software tested for security.

Many businesses know to make business, but at times fail to maintain the business and incur a bigger loss. One aspect where your business can go haywire is when your software is not tested for security.

Our customers have been happy with our security testing services for web and mobile both. Here is one of the testimonial from our customer and it goes like this,

iMentor is a non-profit organization based in New York City. It builds mentoring relationships that empower students from low-income communities to graduate high school, succeed in college, and achieve their ambitions. In other words, iMentor is an organization with a mission to improve the lives of young students, and in the fall of 2014, Test Insane helped iMentor fulfill that mission.

I first spoke with Santhosh and Karthik via Skype and knew right away that they would be our amazing new security team for the web app at iMentor. This web app runs the mentorship program for 10,000 mentors and mentees across the US, and it must be a secure environment for them. Enthusiastic, knowledgeable, flexible. These guys were hungry for the project and even described themselves as “lions before the feast”! We began immediately and had no trouble integrating their work into the work of the broader web app team at iMentor.

In particular, I appreciated the desire of Santhosh and Karthik to go beyond the boundaries of the security project and improve the iMentor web app in any way possible. They found bugs in its functionality, made suggestions about its UI, and gave insight into their experiences as new users. All of this passion and expertise coalesced into a solid month of work with a prioritized list of security issues, recommendations for their resolutions, and the aforementioned improvements.

We’re thrilled to make Test Insane our security team and were impressed with the wide range of skills Santhosh and Karthik offered beyond security. Thanks so much from iMentor!

Ben Robinson, Product Manager

Does this convince you? If it doesn’t then we can discuss about how we can make this happen & rock together! Write to me at st@testinsane.com