Mar 12, 2013

Prototype Testing

Have you ever poured your heart and soul to help test and perfect a product that, after launch, flopped miserably? Not because it was not working right but because it was not the right product.

Are you currently wasting your time testing a new product or feature that, in the end, nobody will use?

Testing typically revolves around making sure that we have built something right. Testing activities can be roughly described as “verifying that something works as intended, or as specified.” This is critical. However, before we take steps and invest time and effort to make sure that something built right, we should make sure that the thing we are testing, whether its a new feature or a whole new product, is the right thing to build in the first place.

Spending time, money and effort to test something that nobody ends up using is a sheer waste of time.

What is prototype testing? Here’s a somewhat formal definition – the dry and boring kind you’would not find in a dictionary:

Testing the initial appeal and actual usage of a potential new product by simulating its core experience with the smallest possible investment of time and money.

Make sure – as quickly and as cheaply as you can – that you are building the right it before you build it right.
My thinking on prototype testing evolved from my experiences with Agile and Test Driven Development. It applies some of the core ideas from these two models and applies them further upstream in the development cycle.

Nov 9, 2012

The Emperor’s Seed

Once there was an emperor in the Far East who was growing old and knew it was time to choose his successor. Instead of choosing one of his assistants or one of his own children, he decided to do something different. He called all the young people in the kingdom together one day. He said, “It is time for me to step down and to choose the next emperor. I have decided to choose one of you.” The kids were shocked! But the emperor continued. “I am going to give each one of you a seed today. One seed. It is a very special seed. I want you to go home, plant the seed, water it and come back here one year from today with what you have grown from this one seed. I will then judge the plants that you bring to me, and the one I choose will be the next emperor of the kingdom!” There was one boy named Ling who was there that day and he, like the others, received a seed. He went home and excitedly told his mother the whole story. She helped him get a pot and some planting soil, and he planted the seed and watered it carefully. Every day he would water it and watch to see if it had grown. After about three weeks, some of the other youths began to talk about their seeds and the plants that were beginning to grow. Ling kept going home and checking his seed, but nothing ever grew. Three weeks, four weeks, five weeks went by. Still nothing. By now others were talking about their plants but Ling didn’t have a plant, and he felt like a failure. Six months went by, still nothing in Ling’s pot. He just knew he had killed his seed. Everyone else had trees and tall plants, but he had nothing. Ling didn’t say anything to his friends, however. He just kept waiting for his seed to grow.
A year finally went by and all the youths of the kingdom brought their plants to the emperor for inspection. Ling told his mother that he wasn’t going to take an empty pot. But she encouraged him to go, and to take his pot, and to be honest about what happened. Ling felt sick to his stomach, but he knew his mother was right. He took his empty pot to the palace. When Ling arrived, he was amazed at the variety of plants grown by all the other youths. They were beautiful, in all shapes and sizes. Ling put his empty pot on the floor and many of the other kinds laughed at him. A few felt sorry for him and just said, “Hey nice try.” When the emperor arrived, he surveyed the room and greeted the young people. Ling just tried to hide in the back. “My, what great plants, trees and flowers you have grown,” said the
emperor. “Today, one of you will be appointed the next emperor!” All of a sudden, the emperor spotted Ling at the back of the room with his empty pot. He ordered his guards to bring him to the front. Ling was terrified. “The emperor knows I’m a failure! Maybe he will have me killed!” When Ling got to the front, the Emperor asked his name. “My name is Ling,” he replied. All the kids were laughing and making fun of him. The emperor asked everyone to quiet down. He looked at Ling, and then announced to the crowd, “Behold your new emperor! His name is Ling!” Ling couldn’t believe it. Ling couldn’t even grow his seed. How could he be the new emperor? Then the emperor said, “One year ago today, I gave everyone here a seed. I told you to take the seed, plant it, water it, and bring it back to me today. But I gave you all boiled seeds which would not grow. All of you, except Ling, have brought me trees and plants and flowers. When you found that the seed could not be grown, you substituted another seed for the one I gave you. Ling was the only one with the courage and honesty to bring me a pot with my seed in it. Therefore, he is the one who will be the new emperor!

Sep 14, 2012

Tips on E-mail Marketing Software Testing


if we are testing an e-mail marketing application which is used for sending bulk email campaigns , the followinf are the major criteria we consider for testing it.

1)One of the critical areas in the email marketing domain is to be able to test whether the emails reach the intended recipients. One of the major challenges faced is when the email is sent as bulk to recipients in excess of a million (which is a basic requirement in the mass marketing industry currently). The task of verifying whether the email has reached the complete target base is crucial. A method can be setup in a way that each email is also copied (BCC) to a specific email address and a count of emails received can be used for verification.
2)In addition to this, the content of the email can also be checked within the same process thereby eliminating the need to run a separate set of tests for the content area.

Aug 6, 2012

Cross-Browser Testing

Lets discuss a type of compatibility testing which is known as cross-browser testing, which is mostly “forgotten and ignored” in many projects with web based applications, or even with organization’s internal applications but with multiple browsers installed in their environments.
Several reasons which makes cross-browser testing as “Forgotten and ignored” , because a project team ,
1. Only considered testing the application/website on the browser (s) of choice
2. Considered it, but don’t have the “time” to do cross-browser testing across all browsers
3. Tested in the latest versions of two browsers of choice
Browsers generally use different layout engines, as well as having differences in the way they present and handle code. It is for this reason, that unless you are in a severely locked down environment with one installed browser, and nobody in the world outside your organization needs to use whatever it is that you are developing, then you need to perform cross-browser testing.

Not everyone uses the same browser. Similar to how everyone is running on a different operating system, you can’t expect all people to be using the same web browsing tool.
So what are the options? The data about current browser share varies depending on the source and the region, but in general, Internet Explorer, Firefox, Chrome, Safari, and Opera make up most of the market share, with Internet Explorer dominating the market.When there are so many different options out there, each running their own rendering engine, how do you ensure that your web design or application will hold up in each of them?

You do not need to go to the point of ridiculous and test every version of every possible browser.
But if you are developing something which will be seen in world wide web, and you want to ensure that it does not break or contain high severity bugs that may actually cost you more money to fix than to test, then you need to test it on the latest versions of the most popular browsers.

Why the latest versions? Because in the real world, people do update their browsers automatically from the internet. This update is usually with minimal impact on their browsing experience.
If you are lucky enough to be developing something that can be reached *from* the internet, you could also make use of Browsershots to give you visual feedback on a wide range of browsers. Be aware that if you are testing with sensitive data, do not consider using that option.

Below goes some help available on the web for cross-browser testing.
Adobe Browser Lab

Adobe Browserlab offers an awesome solution for viewing on demand screenshots of your site. This is usually my go-to program for testing in various browsers.

Allows you to test the compatibility of your design with Mac OS X browsers.

The next time that you are on a Web application testing project, ask the question if it is not already discussed… “Are we testing on multiple browsers?”
And if you want to be noticed as a thinking tester, do ask, “Are we testing mobile phones? In which platforms? Android? Ios/iPhone? Do we have an interface optimised for mobile browsing?”
Sometimes, you will be amazed to hear that it has not been thought of yet.

I plan to discuss on testing your site in some web based mobile emulators in my next article

Aug 3, 2012

Your Data is Everywhere

Your data is everywhere. Here now. Was there yesterday. It’s on devices you own and devices you don’t.
It’s being accessed from within the office, on the move. It’s up in the cloud, it’s back on the ground – somewhere, anywhere. Meanwhile, the constantly shape-shifting shadow of data loss looms over every business.

You must see how ready your organisation is to tackle these new security challenges. You must know
how your state of security-readiness compares to typical enterprises, the areas of concern
and prioritise your security.

Data Theft means theft of different forms of electronic data stored in a corporate network in various forms,formats and location. Data can be stolen either by an outsider if he/she gets access to your data sources or by the employees of the firm themselves.

Data theft occurs when an outsider/insider gets access to your data and uses it for malicious purposes either by copying it through some form (using Flash drive, CD/DVD etc) or transfering (through ftp, mail, IM etc) it to some different location

Data Theft can be prevented by finding out how much of data is currently exposed in a corporate network
through different data sources and contiuosly monitoring data usage so as to prevent if some confidential data is going outside.

Let me share two examples of small business data security incidents.In the first incident an employee left a company (let’s call Company C), but the employee’s email account was not turned off. There were no checks setup at Company C to delete employee access (email, network, etc), and the work email account was being forwarded to the former employee’s personal email. While employed with Company C in a sales management role, the employee had setup a competing company, and when the employee left Company C, he continued to receive sales lead emails from Company C’s clients.
This continued for several months, and today Company C is having to spend several thousands of dollars in litigation in addition to facing the loss of several key clients.

The second incident involved a colleague of mine. Her healthcare provider’s office was broken into,
and the computer was stolen. This computer contained the financial and personal information of hundreds of patients. Personal banks accounts were accessed and money was stolen among other things.
When a credit card is breached it is a major inconvenience, but it can be stopped relatively quickly.When a bank account is breached, it becomes a much more difficult issue to deal with and fix.
This business lost the trust of hundreds of patients in addition to putting their financial and
personal information at risk. This could have been easily prevented by encrypting the computer, which by the way can also be done for free.

The following steps highlight the security plan for any business.

Step-1 Asset Identification/Classification and Risk Assessment
(i) Identify Information Assets
(ii) Classify Information Assets
(iii) Risk Assessment of Information Assets
Step 2 – Network and Physical Access Security Controls
(i)Network, Computer, and Email Access Controls
(ii)Review of Access Controls
Step 3 – Network and Personal Computer Security Controls
(ii) Anti-Virus/Anti-Spyware
(iii)Downloads and System Acceptance
(iv) Firewall and Internet Connection
Step 4 – Paper document controls
(i)Information Classification Policy
(ii)Shared Documents
(iii)Filing Cabinets
Step 5 – General security controls
(i)Employee Background Checks and Training for new Hires
(ii)Third Party Review
(iii)Visitor Policy
(iv)Incident Management System
(v)Emergency Response Plan

For more details and consulting, contact

Aug 1, 2012

Arete TestLabs- Why?

Arete TestLabs ia an independent software testing company that prides itself on offering software testing services that matters to your business. By this we mean, we only recommend software testing that offers value to your business and your clients.

We make our most sincere efforts to understand your business and the software testing we recommend and perform reflects this.

At Arete TestLabs , We’ve grown in knowledge and understanding of what software testing means. We’ve studied software testing, software development and many other fields because we want to be the best software testers in India .

We want to share our testing ideas with you. We believe they will help you add value to your testing in a practical and visible way.

We are confident that you will like the testing we do, why not give us a call?

Jul 25, 2012


First, test what’s important. Focus on the core functionality—the parts that are critical or popular—before looking at the ‘nice to have’ features. Concentrate on the application’s capabilities in common usage situations before going on to unlikely situations. For example, if the application retrieves data and performance is important, test reasonable queries with a normal load on the server before going on to unlikely ones at peak usage times. It’s worth saying again: focus on what’s important. Good business requirements will tell you what’s important.

The value of software testing is that it goes far beyond testing the underlying code. It also examines the functional behavior of the application. Behavior is a function of the code, but it doesn’t always follow that if the behavior is “bad” then the code is bad. It’s entirely possible that the code is solid but the requirements were inaccurately or incompletely collected and c mmunicated. It’s entirely possible that the application can be doing exactly what we’re telling it to do but we’re not telling it to do the right thing. A comprehensive testing regime examines all components associated with the application. Even more, testing provides an opportunity to validate and verify things like the assumptions that went into the requirements, the appropriateness of the systems that the application is to run on, and the manuals and documentation that accompany the application. More likely though, unless your organization does true “software engineering” ,the focus will be on the functionality and reliability of application itself.

Testing can involve some or all of the following factors. The more, the better.
♦ Business requirements
♦ Functional design requirements
♦ Technical design requirements
♦ Regulatory requirements
♦ Programmer code
♦ Systems administration standards and restrictions
♦ Corporate standards
♦ ♦ Hardware configuration
♦ Language differences

Jul 24, 2012

The WHY ASPECT : Why Software Testing is essential?

Software testing answers the following questions that development testing and code reviews can’t.
♦ Does the software really work as expected?
♦ Does the software meet the users’ requirements?
♦ Do the users like it or is it user friendly?
♦ Is it what the users expect?
♦ Is it compatible with our other systems?
♦ How does the application perform?
♦ How does it scale when more users are added?
♦ Is the software ready for release to production?
♦ Which areas/modules of the software need more work?

What can we do with the answers to above questions?
♦ Save time and money by identifying defects early
♦ Avoid or reduce development downtime
♦ Provide better customer service by building a better application
♦ Know that we’ve met users’ requirements
♦ Build a list of desired modifications and enhancements for later versions
♦ Identify and catalog reusable modules and components
♦ Identify areas where programmers and developers need training

Jul 18, 2012

Functionality Testing

Functional testing is typically the base-line technique for designing test cases, for a number of reasons. Functional test case design should begin as part of the requirements specification process, and continue through each level of design and interface specification; it is the only test design technique
with such wide and early applicability. Moreover, functional testing is effective in finding some classes of fault that typically elude so-called “whitebox” or “glass-box” techniques of structural or fault-based testing. Functional testing techniques can be applied to any description of application behavior, from an informal partial description to a formal specification and at any level of granularity, from module to system testing. Finally, functional test cases are typically less expensive to design and execute than white-box tests.

Testing is aimed at verification and validation — that is, at finding any discrepancies
between what a software/application does and what it is intended to do —
one must obviously refer to requirements as expressed by users and specified by software engineers. A functional specification, i.e., a description of the expected behavior of the software, is the primary source of information for test case specification.

Functional testing, also known as black-box or specification-based testing, denotes techniques that derive test cases from functional specifications.Usually functional testing techniques produce test case specifications that identify classes of test cases and be instantiated to produce individual test

Functional testing can be applied at any level of granularity where some form of specification
is available, from overall system testing to individual units, although the level of
granularity and the type of software influence the choice of the specification styles and
notations, and consequently the functional testing techniques that can be used.

The core of functional test case design is partitioning the possible behaviors of the software into a finite number of classes that can reasonably expected to consistently be correct or incorrect. In practice, the test case designer often must also complete the job of formalizing the specification far
enough to serve as the basis for identifying classes of behaviors. An important side effect of test design is highlighting weaknesses and incompleteness of program specifications.Deriving functional test cases is an analytical process which decomposes
Specifications into test cases.

Jul 13, 2012

Scrum Series I -Daily Stand-Up Meeting

Daily stand-up meetings play a vital role in the successful execution of Agile/Scrum process-based projects.Though Most of us know how to conduct “Stand-up” meetings,it is not conducted authentically most of the times.This article is about how to make Stand-up meetings effective.I expect to hear back from my readers about how they maintain the effectiveness of the daily stand-up in their scrum projects.
It’s extremely important to guide and let our teams know about the usefulness of daily stand-ups.
Beleive me, it’s worth all the efforts as successful stand-ups can guide sprints successfully throughout a Scrum-based project.

Here are tips which may prove helpful.

The need of Disciplne in stand-ups:
Explain your team the most effective ways of using time during the daily stand-up. Then ensure that the team follows them:

The daily stand-up should be time-limited.10-30mins should be enough.
The ScrumMaster/Project Manager should facilitate regular daily meeting times.
Try not to change the time of this meeting . Scrum always demands discipline.
Efforts can be made to update the sprint backlog during this meeting.
Each member of the team should participate in this meeting. In some prjects, senior members sometimes do not participate,
They should be educated on the the importance of their participation and the help they can provide to the team.
Team members should listen and understand the discussions to know how the team as a whole is performing so they can help each other to resolve pending issues.
Its mandatory that each team member remains present till the end. Sometimes members leave after updating their own work plan, but the purpose of the stand-up is to understand how well the team is doing to achieve the sprint goals .

Working with the customer :

The team should think of daily stand-ups as a way to communicate effectively to the customer, in addition to each other, about progress. No one wants any sudden surprises at the end of the sprint; these can be avoided if team members give regular and accurate updates during each daily stand-up.
The real value from the daily scrum is for the team to discover how they can best help each other to meet its sprint commitment.
To this end, it needs to feel free to discuss work, openly and without regard for external observers
The stand-up should go on even if project manager or a few team members could not join on a specific day for any reason.

Set backs faced by new teams
Scrum isn’t easy enough. It requires commitment from each team member, and new members aren’t always used to this work culture.

Below are some obstacles commonly faced by new Scrum teams:

Lack of scrum process knowledge: New Scrum teams need training about the Scrum process so they can effectively use the daily stand-up for its intended purpose. The ScrumMaster needs to provide this coaching and process knowledge to the team(s). In the same way, each team member must actively participate, to communicate how the team is doing and to fully learn the daily stand-up meeting process.

Hiding work details: It’s important that every team member is transparent in his or her work and gives accurate updates. The team needs a place where they can talk without fear of being evaluated or scrutinized by outsiders, especially by managers who might impose consequences. A team member might be less likely to admit a mistake or lack of knowledge if the person who writes her annual review is listening in. But this member’s issue could be critical information for the team to ensure sprint success.The daily stand-up needs to be a safe place for the team to discuss its work: the good, the bad and the ugly.

Comparisons with the Waterfall process
New members will mostly try to relate the Scrum-based process to Waterfall. This, however, is something which must be avoided. It’s important to follow agile process fully and correctly, and it’s the ScrumMaster’s job to make sure his or her team knows how to do this.Not only is the team culture different in Scrum but the way the team works with the customer is different as well.
Working with the customer effectively to deliver each sprint is key in Scrum based projects.



March 2018
« Mar