May 21, 2012

Software Testing Some Important Tips

What are the steps to perform software testing?
  • Understand requirements and business logic
  • Determine required standards and processes
  • Set priorities, and determine scope and limitations of tests
  • Determine test approaches and methods
  • Determine test environment, test ware, test input data requirements
  • Set milestones and prepare test plan document
  • Write test cases
  • Have needed reviews/inspections/approvals of test cases
  • Set up test environment
  • Execute test cases
  • Evaluate and report results
  • Bug Tracking and fixing
  • Retesting or regression testing if needed
  • Update test plans, test cases, test results, tractability matrix etc.
What are the components of a bug report?
  • Application name
  • The function, module, name
  • Bug ID
  • Bug reporting date
  • Status
  • Test case ID
  • Bug description
  • Steps needed to reproduce the bug
  • Names and/or descriptions of file/data/messages/etc. used in test
  • Snapshot that would be helpful in finding the cause of the problem
  • Severity estimate
  • Was the bug reproducible?
  • Name of tester
  • Description of problem cause (filled by developers)
  • Description of fix (filled by developers)
  • Code section/file/module/class/method that was fixed (filled by developers)
  • Date of fix (filled by developers)
  • Date of retest or regression testing
  • Any remarks or comments
What is configuration management?
It covers the processes used to control, coordinate, and track: code, requirements, documentation, problems, change requests, designs, tools / compilers / libraries / patches, changes made to them, and who makes the changes.

How can web based applications be tested?

Apart from functionality consider the following:

  • What are the expected loads on the and what kind of performance is expected on the client side?
  • Who is the target audience?
  • Will down time for server and content maintenance / upgrades be allowed?
  • What kinds of security will be required and what is it expected to do?
  • How reliable are the site's Internet / intranet connections required to be?
  • How do the internet / intranet affect backup system or redundant connection requirements and testing?
  • What variations will be allowed for targeted browsers?
  • Will there be any standards or requirements for page appearance and / or graphics throughout a site or parts of a site?
  • How will internal and external links be validated and updated?
  • How are browser caching and variations in browser option settings?
  • How are flash, applets, java scripts, ActiveX components, etc. to be maintained, tracked, controlled, and tested?

From the usability point of view consider the following:

  • Pages should be 3-5 screens longer.
  • The page layouts and design elements should be consistent throughout the application / web site.
  • Pages should be as browser-independent or generate based on the browser-type.
  • There should be no dead-end pages. A link to a contact person or organization should be included on each page.

Share your experience with me and other readers by leaving your comment below

May 15, 2012

Cloud Testing: How to Test on the Cloud?



Unless you've been living under a rock you must already be knowing that 'Cloud Computing' has been making a lot of buzz over past couple of years -- whether it your peer meeting, a client interview, a demo POC session with a prospect, the recent Red Hat Enterprise Virtualization Online Event on January 18, 2012 -- the talk about cloud is everywhere.

And why wouldn't it be? After all, if industry analysts and virtualization experts are to be believed then cloud based computing and business solutions are going to be the NEXT BIG thing of this decade. So I guess it is only natural if you find yourself to be asking yourself questions like 'what is cloud testing?', 'how to test on cloud?', 'how can we use cloud to better our testing?', 'how does cloud impact how we used to test before?' etc. However, since all these queries pose different questions, the answers to them would be unique. For starters, if you are looking for cloud testing, it simply means a testing environment that utilizes cloud infrastructure for performing software testing.


How to leverage Cloud to Transform Software Testing?

If you are someone who heavily use tools while testing then IBM (IBM Cloud) and Hewlett-Packard have already jumped into the market for software testing in the cloud. Thankfully, if done smartly, cloud based computing can prove to be a great valueaddition for both software development and testing. The reason is simple -- the very nature of a cloud based infrastructure allows for great team collaboration. As an added advantage, cloud based testing (as well as programming) environments are easy to setup (on-demand). In today's tight budgeted IT world, this can be a much bigger advantage than it appears at first. It is no secret that IT managers are operating under a very tight budgetary constraint and when it comes to testing phase, the budget is even smaller.

Traditional approaches to setting up a test environment involves high cost to setup multiple servers with various OS, hardware configuration, browser versions etc. And if you are going to simulate user activity from different geographic locations you will have to setup test servers with localized regional language OS, which in turn can add up to the cost. But using cloud based infrastructure, the team wouldn't have to setup expensive physical servers -- rather, setting up new testing environment will be fast and efficient and VMs (virtual machines) and test servers can be launched and decommissioned as needed.

On the other hand, as a tester you might also be required to one of those ever emerging cloud based SaaS applications that aim to cater to various large and small customer base, on-demand. If you are testing such a cloud based application then your challenges are double-fold. Because, testing all the layers - from your application to the cloud service provider - is something that as a tester you will have to become efficient in.

As a closing note, if you are a tester and if you are intrigued by all these buzz surrounding cloud testing, then here are 2 main reasons why you might consider trying it out -- Cloud based software testing infrastructure greatly helps in reducing capital expenditure and these testing setups are highly scalable , thus allowing your team to expand or decommission your test servers on-demand, as needed.

Share your experience with me and other readers by leaving your comment below


Busting 5 Software Testing Myths


Software Testing is a field, full of false beliefs, myths and misconceptions. You can find many misconceptions about software testing and tester as a whole. These misconceptions are predominant even among testers too. But situation becomes more dangerous when other stakeholders like the management and the client also get infected by these misconceptions. That can land a tester in serious trouble. I have come across many such misconceptions in my career and will try to list out few of them:

1. Testers are ‘negative thinkers’ and they ‘complain’ a lot – I don’t know whether testers are negative or positive thinkers, but they are no doubt some of the best thinkers. If you run out of ideas at any point, try to consult a tester. Chances are more, that you will get some wonderful ideas from him. And about complaining a lot, testers don’t complain. Rather they introduce you to the reality! They offer evidence and show how things in the software don’t work!

2. Testers like to break software – Testers don’t find any pleasure to break things. Rather the software is already broken and the tester only finds it out. Testers don’t like breaking software, rather they like in dispersing illusions that the software works properly. Testers try to free the stakeholders of the project from false beliefs. Testers are the people who introduce you to the realities.

3. Testers act as guardian of Quality – Testers are not quality police. Quality is something which is built into software. Since, testers don’t build software, how can they assure quality of the software? Testers can only provide quality related information to the management. Testers are service providers not quality guardians. Moreover, Quality can not be assured by testing. As Cem Kaner says, “Whatever is QA – that is
not testing”. So concentrate on the job which you are best doing at, i.e. testing. Leave the job of Quality Assurance to your management.

4. Exhaustive testing can make software Bug Free – Let me tell you, there is no such thing like exhaustive testing! Simply because, the definition of exhaustive can vary from context to context. Any way, nobody can make a software bug free; even if he tests it for his entire life! Not even God. A tester’s job is to show the possible ways in which the software doesn’t work. But there is no such way to guarantee bug free
software. Or to tell that the software has been 'completely' tested! Think of Microsoft, where the tester developer ratio is 1:1. Still we see Microsoft Products being shipped with numerous bugs, security holes, vulnerability issues etc. 
Think of NASA, where the tester developer ratio is a whooping 5:1. Still disasters like Columbia could happen. Testers can find bugs in the software, but can’t make it 100% bug free. This is the truth and we have to live with it.

5. Testers and developers should not be friends – This is the most dangerous misconception, prominent in software industry. Even, I have seen management encouraging such attitudes among the employees. But this may do more harm than good and result in a dangerous situation. Rather, testers can get some valuable project related information from their developers. If they are friendly, then they can approach for some wonderful test ideas from the developers. Even the testers can get some important clues that can help them in designing powerful test cases. Remember, bugs are introduced by the developers. So they are the best person to know the possible ways to find them. Got any clue! :)

Share your experience with me and other readers by leaving your comment below