Monday, 6 May 2013

False positives and false negatives in Software testing

Simply put,

False Positive is the situation when the functionality is working, but yet it is marked as ‘failed’ in testing/practical application

False Negative is the situation when the functionality is not working, but yet it is marked as ‘passed’ in testing/practical application

Real-life examples

1.            Software coding:  Thorough testing results in correct and valid code to get rejected (due to mismatch of understanding between coder and tester)

2.            Healthcare sector: Low-cost medical tests administered detects illness that warrants further elaborate testing (which then reveals absence of the illness)

3.            Government administration: Pre-election poll roundup denotes win of a particular candidate who will be defeated by a significant margin in the actual elections

4.            Airport security: Metal detector sounds off an alarm on presence of a small coin (sensing it to be a weapon)

5.            Anti-virus: The most popular form of ‘false positive’ is when an anti-virus blocks a safe program (or .exe file) thinking it to be a potential threat.

Steps to detect ‘falses’

1.            Change the input or the sample so that the behavior changes with this new sample. Changing the test data will point out to deviations in working of the code and hence alert us of the ‘false positives’ or ‘false negatives’

2.            Do a rigorous testing on dummy or test data (complete with all minor details) so that code performance can be monitored in an alternative environment of variables and data

3.            Provide for automating the actions, process or steps. Since automation looks for pattern in data and then performs a pre-defined action, this step can be crucial in trapping the ‘falses’

Which of the two are most dangerous?

It depends on the level of efforts required to detect such ‘falses’.

False positive will be pointed as an error (and will stop the program execution) even when it is safe. On the other hand, false negative will continue running the program even though it should’ve been stopped when it encountered the error bit.

Hence, owing the detection level, false negative is the more dangerous of the two, as there is no indicator alerting us that there is something wrong in the programming. 



Sunday, 28 April 2013

Difference between open source and closed source software models

The basic difference is the accessibility of source code. In a very layman term, open source allows easy access of source code to general public that can be edited and re-released in a customized format. An end-user in open source is allowed to play around with the software. Under closed source or proprietary programs model, the compiled code is not available for tinkering to the general users.

A summary of the core difference between the two models are as below

1.      Cost: For the discerning mind, the chief differentiator is the price point at which both softwares are sold. Open source software is always cheaper than the licensed (or closed source) versions

2.      Customization: Open source model allows and facilitates altering the source code to match individual requirement. Closed source on the other hand release the final application without releasing the code thereby restricting the access and editing of the program.

3.      Community support: Open source has a very wide community support as compared to proprietary software tech support where the original software developers undertake to maintain and regularly update the software

4.      Companies: While most of the developers are moving to open source platform, the biggest software producer Microsoft is still a big proponent of licensed software citing reasons such as trust, quality and teamwork. Although Microsoft is enabling and entering a paradigm shift through its statement in August 2010 where they admitted their loss in standing by their ‘anti-open source’ stance

5.      Cultures: Most companies around the world that form a major chunk of software buyers are led to believe that licensed softwares are better than their open source counterpoints, which might not always be true. Also, personnel from companies might have better skillsets in tweaking the software to better serve the need for which the software was purchased

6.      Collaboration: Closed source tech support is more often than not a complicated maze as compared to open source software tech support. Issue identification and error handling process is an elaborate procedure, which might not always be feasible to all organizations who might find a faster and better resolution of their issues on the huge online support community

When faced with the dilemma of choosing the appropriate model for an organization, a general rule of thumb would be that new start-ups can very well go ahead with open source software. As and when the organization grows in business, in complexity, in headcount, and in credibility, opting for proprietary software makes sense.


Wednesday, 24 April 2013

CRM development for your company

Customer Relationship Management is an integral part of modern business. In order to stay ahead of the competition, companies look for ways and means to effectively manage customer relationship, right from sales, operations, logistics and service delivery.

Thought to be one of the critical success drivers in today’s corporate environment, CRM is an overall strategy that helps:

1.      Appreciate the requirements of customer

2.      Employ tools and approaches that enable astute customer servicing

3.      Source and retain newer customer and clientele

4.      Increase customer engagement and reduce costs involved

The recent and evolving technological advancements has opened newer avenues for customers to purchase products or services and at the same time has provided alternatives options for corporate houses to attract customers and manage them efficiently. The twin proliferation of Web and smartphones has now provided better opportunities for managing customer expectations.

As a small example, we see supermarkets offering gift coupons on selected purchases. Implementing CRM ensures that not only is customer induced to purchase more though such offers, but the supermarket also benefits from such steps, as the gift coupon also tracks customer purchase profile and keeps a detailed account of the same. This helps the supermarket to devise offers and strategies that are in line with the customer’s purchase profile thus leading to a happier customer and a profitable supermarket.

The broad categories that CRM process cycle entails are:

1.      Lead generation: Using an easy-to-access format CRM helps tracking customer details, demographics, purchase history, shopping patterns and profiling to create an elaborate database that targets customer satisfaction. How do you think the magazine you subscribed for, tracks and sends a birthday message every year without fail? That’s CRM for you

2.      Sales integration: Once the information and report is ready, sales people use this to maintain a healthy customer relationship. An example would be the post sales communication channel that stays open between sales people and customers that not only strengthen the relationship but also help attract referrals.

In a nutshell CRM uses technology as a core enabler to collect, analyze and manage important information about customers and supply ways and means to link information in such a way that helps smart and innovative customer relationship management to attract new customers and retain existing ones satisfactorily.

Monday, 22 April 2013

George Orwell’s writing rules

In a society fast moving from considering writing as a domain of poets, literary writers and novelists, we now see the need for (and a good supply of) writers coming in to develop business content to help market a company’s product and help them sell it online. The ultimate challenge that writers face today is the get the message across using the Internet as a communication medium (through websites, articles, blogs, tech ref manuals etc.)

One of the earliest proponents of clear writing was George Orwell who suggested way back in 1946, the 5 golden rules for effective writing:
1. Never use a metaphor, simile, or other figure of speech which you are used to seeing in print.

Does the phrase “Low hanging fruit” mean something to a layman? Can’t it be better written as “non-performing employee” ? Now, how many people recognize the words and the sentiments behind them?
2. Never use a long word where a short one will do.

In the entire world, XYZ is selling like hot cakes and gathering a lot of revenues for the company”… Imagine if we write this as “XYZ is the company’s universal best-seller”. Many writers adopt the beating round the bush approach to increase word count or achieve the desired keyword density. This is a strict no-no as it insults the reader’s sensibilities.
3. If it is possible to cut a word out, always cut it out.

Well, same as above (yea that’ a shorter one. No need for another example!)
4. Never use the passive where you can use the active.

“The man who was old was bitten by a cat”. While there’s no rocket science behind the logic, still this is an oft-disregarded adage. You can always replace the longer sentence with a shorter and effective “The cat bit the old man”
5. Never use a foreign phrase, a scientific word, or a jargon word if you can think of an everyday English equivalent.

Keep your content easily accessible to the average Joe. Readers will simply block out the content if they come across a lot of technical jargons that they can’t comprehend

Now that you know the rules, apply creativity and let your write up rise above the rest.



Saturday, 20 April 2013

What makes good webpage writing?

Writers often regard website writing to be a part of their daily tasks combining it with other writing tasks/ assigning it to a standard set of personnel without respect to the special considerations it carries. Once we shake off our mindset from such regressive thinking we come to realize that with evolving technological landscape, website writing too has evolved from nascent stage in the early 80’s to its present day avatar.

Earlier websites were restricted to having one’s personality come alive over the Internet. Over time, companies recognized the huge potential online business carries and sought to have the business information presented in such a way that attracts visitors and successfully converts them to highly engaged sales prospects.

One might wonder how this can be achieved. I have come up with a small but relevant list of to-do’s when designing a business website that will allow you to better target your online audience and garner more revenues:

Keep it simple: This is the golden rule of website writing. One never knows what demographics the reader might come from. Keep your language to simple terms and easy to understand vocabulary. This facilitates the reader to easily assimilate information and details and make a decision (act, purchase, get re-directed)

Know thy audience: A cardinal sin if we don’t keep our audience in mind. Imagine talking about hierarchy, course content and e-learning taxonomy when the site actually is for teenagers’ admissions and interacts with their parents! Need I say more?

Be expressive: Keep your tone, grammar and vocabulary simple and taut. This helps prolonged engagement with reader. Trying to impress them with fancy terminologies will be a big deal-breaker as will trying to pepper the written content with technical, legal jargon that won’t find acceptance with the general public.

Heads and tails: A good written article will have a proper heading, introductions, body and conclusion. Imagine a human body without a limb, or an ear missing. Now transition the shock to written content. A good flow to content is a hallmark of a good write-up

Keep these critical pointers in mind and rest assured you will be on your way to a killer write-up.