Wednesday, October 23, 2013

TOSCA - Website Automation



One of the best tools that I found for Website Automation is TOSCA from Tricentis. I have been using this tool since past one year but for web services and for Manual test cases. I recently got a chance to automate website for one of the projects that I was working with.

The beauty of TOSCA is it requires 0% coding which is a bless for tester with no coding knowledge but interested in Automation. I was working in Automation testing for the past 6 years and this is the only tool that I came across which requires no coding knowledge.

Also most of the record and playback tools that I tried so far records the application pages pixel based. The difference that I found in TOSCA is it scans all the elements in the page and creates a module that can be used in test cases.

The two options for creating a module in TOSCA for HTML engine are:

Scan all: Scans all the elements in the page and displays
Scan Region: Scans elements for the selected region

A module is created by scanning the elements in TOSCA. Using the created module we create Test cases. For every execution of these test cases we create an execution list. Along with Modules, Test cases and Execution lists we have another section where we can manage our Requirements. Another key feature that I found in TOSCA is mapping of test cases and Execution lists with the requirements. Test cases are mapped to the Requirements to get a traceability matrix and Execution lists are mapped with the Requirement sets to the execution coverage.


TOSCA also comes with few common modules which can be directly used in our test cases.

Process Operations:

For website automation the first step in every test case would be “Open URL”. Under process operations in Common module we have “Start Program” & “Start URL” which can be used in test cases. The value for the start url would be the URL of website under test.

Buffers : 

As Open URL will be the common step for every test case, instead of passing Website url value in each test case we can create a buffer with the buffer value set to the URL and call the buffer in all the test cases. It is not only the URL but any common values that we come across in multiple test cases can be declared under buffers. We can create a single buffer or a multi buffer. For creating Buffers we can use either Set buffer or Multi buffer modules under common modules.

Basic Windows Operations:

Another common test step that we use while automating the website is “Close Window”. In Windows OS this can be done using the keyboard commands ALT + F4 for Window close or CTRL+F4 for closing a Tab in a window. In TOSCA we have basic windows operations support. One of the common module under basic windows operations is “TC Window Operation”. The inputs for this module would be Caption & Keys. Support of Wild characters is added advantage in TOSCA.

Eg: Caption: *Windows Internet Explorer*
Keys:  ^{F4} ( for CTRL + F4)
            %{F4} (for ALT + F4)

Timing modules:

In automation of a website we might need to declare a wait time in few instances. In this case, we have a common module TC Wait. The input for this is the wait time in msecs.

Reporting is also very easy in TOSCA. We can generate a Test Case Report and also a Test Execution Report (Summary /Detailed views) just with few clicks. It saves lot of time too..

I really enjoyed automating website with TOSCA... Hope you enjoy to...

Happy Testing!!







Thursday, August 22, 2013

Jira - Project Tracking Tool in an Agile Environment

I have been working in Agile for the past 6 years. Different companies follows different ways in tracking their process. I have worked on three different ways for tracking the user stories in Agile. As a tester I would say, the defects reported should be linked to a user story and once all the testing is complete and there are no open defects then we can say it is ready to go to staging if it does not have any dependent user stories. While testing a user story we always report few bugs and those are tracked again using a defect tracking tool.

In one of the companies that I worked with, in Agile, around 6 yrs ago, we tracked our Sprint burn-down using Excel. 

In another company that I worked on Agile, we used an open source tool "Redmine" for tracking the status of the user story and Team Foundation Server/VisualStudioTeamSystem (TFS/VSTS) for bug reporting and tracking.

Company 1: Excel (Agile) + DSolver (Customized version of Bugzilla for Defect Tracking)
Company 2: Redmine (OpenSource for Agile) + TFS/VSTS ( for Defect Tracking) 

No wonder at least one of us at one point of time turns this way.. :)




So as a tester at the end of the day I had to always work on two different tools for updating the same user story.

I was always thinking how easy would it be if there is a single tool for tracking the complete life cycle of a user story. The life cycle includes:

1. Create a Business Requirement
2. Link it to the Sprint
3. Create an individual task for BA, Design, Dev and Tester to track the progress
4. Tester to report defects  found in testing and linking it to the same userstory and manage complete bug lifecycle.
5. Pass it on to the deployment team to deploy it to staging/production environments once the user story has all the linked tasks completed.

In this way with just opening 1 link we can view the Business document for the user story and the design updates for the user story, the developer deployment versions and the testing status of the user story. This gives a single view for the Manager as well as for the release management in case if we plan to deliver per user story.

Finally in the company that I am working with, we are using "JIRA"  a proprietary issue tracking product developed by Atlassian for bug tracking, issue tracking and project management. GreenHopper is a JIRA plug-in that adds a broad collection of agile project management capabilities to JIRA and extends JIRA as a powerful platform for agile development teams.I found it is a simple and easy tool to work with.

So the business people creates requirements in Jira. Manager will create individual BA, Design, Dev and Test sub-tasks for the requirement. BA, Design, Dev and Tester will update the estimated and actual time in their subtasks. BA will upload the elaborated user story for the requirement in the main task. Designers will start their analysis and documentation work and Testers will start documenting the testcases. Once the testcases are completed and reviewed by designers and Business Analysts it is attached to the same Jira. Developers will update the Jira with the deployed version on to test server. Testers will test and once completed attach the test summary report to the same Jira which is now ready for release to staging server.


The Top 5 reasons for JIRA over Bugzilla as mentioned by Atlassian are as follows:

1. Easy to install
2. Polished User Experiece
3. Powerful Search and Reporting
4. Flexible Dashboards
5. Killer Agile Planning (Use GreenHopper for JIRA to build a virtual card wall, manage your backlog, plan sprints, and track team progress)

Sample JIRA dashboard view:



Thanks to

Happy Reading!!

Monday, March 11, 2013

Working with SOAP UI Pro part-II

In this blog I would like to share my experiences in working with SOAP UI Pro.

Using SOAP UI Pro makes the process much easier with it's pro features. The Pro features include Data source, Data source loop, Data sink, selecting elements from XML for property transfers and the Outline view and Form view of your WSDL.

I will explain the usage of pro features with simple scenario.

Scenario:

I love travelling. I am planning to travel from SYD-MEL-AKL-LAX.

In this case SYD-MEL is Domestic, MEL-AKL is Short Haul International, AKL-LAX is Long Haul International. I do the following steps.

Soap UI

Assumption: direct flights available

The steps that we follow to book a flight are

1. Fare Search for a domestic/short haul/long haul flight based on departure date, Origin & Destination
2. Selecta flight
3. Create a reservation

In API perspective, search for a flight and create reservation are two different service calls.Following could be the steps to automate those steps in soap UI

1. Use Data source with Departure & arrival properties
2.Use Groovy script to generate departure date
3. Use the above generated departure date and the departure city and arrival city from Data source in the fare search request
4. Create a property transfer to transfer the values from fare search response to PNR create request
5. Data sink to store the PNR created in the above step
6. Data source loop to loop through all the above steps for all the data in the data source

Data source and data source loop are always used together. Using data sink you can store the selected values from the response in a notepad or excel.

Form view / Outline view

As the wsdl will have both mandatory and optional elements,to form a proper request it would be hard sometimes when there are more number of elements in the request. In this case I found form view to be really helpful. Also another advantage in form view is it displays the values for the elements in a drop down if they are specified in XML Schema Definition (XSD).

Outline view gives us a better idea in understanding the response. In the above explained example for the fare search, the response displayed could contain multiple flight options with different price quotes per class for each flight. It is difficult to check all the flight & price options in XML View or the raw view.

Happy Reading!!!!

Wednesday, January 23, 2013

Working with Soap UI - I

Soap UI - The home for functional testing. Do you think it is? Yes, I think it is!!!

I have been working with Soap UI Pro since almost past 1 year. I have never found such a easy tool to test web services. Though I was working on Soap UI since many years, working with Soap UI pro is much easier than working with Soap UI.

I was also surprised to see that for every problem that I faced with Soap UI  I could find some solution within itself. Below mentioned are few examples that I thought to share.
  1. I  have more than 100 test cases in my test suite and when I try to add more test cases to the same suite the Soap UI might hang sometimes.  Unfortunately I have to kill the process and restart it again. Meanwhile all the changes that I made to my project since my last save get lost. I have to redo all the work again.  This happened to me and my team many times. We ended up consoling each other.

 The solution found for this is simple and best feature of AutoSave.



2.  When I execute my entire automated test suite which has around 150 test cases with 10 to 15 test steps in each, most of the times it gets halted with "Out of Memory" error. I again had to kill the process to get rid of it.

The solution found for this issue is to enable "Discard OK Results" option in TestCase Options.



If you have already created your test suite and if it is hard to set this option for each test case the easy way would be creating simple Groovy script and executing it once. Below is the groovy script for enabling this option for all the test cases under your test suite in one go.
//Start of Groovy

testRunner.testCase.testSuite.project.getTestSuiteList().each
{
  it.getTestCaseList().each 
  {
      it.setDiscardOkResults(true)
   } 
}

//End of Groovy

Reference for Improving Testcase Memory Usage: http://www.soapui.org/Working-with-soapUI/improving-memory-usage.html

3. Working with end point URL's. Setting end point URL for all test cases at once can be done by selecting it at Service Endpoints. Double click the Binding under your project and go to Service Endpoints tab and Assign the selected endpoint to All Requests and TestRequests.


If you think you have to work on multiple environments like Test, Staging and Production but don't want to maintain endpoints for each then, the alternative is to define a property for endpoint and call that property in the endpoint url.

Eg: Say your TestServer is soatest1, Staging is soastaging1 and Production is soaprod1 and the endpoint is 

http://soastaging1.com/service/EmployeeInfo

Define a project or test suite property and configure the endpoint to use this property as shown above.

The endpoint url propertised looks like : 
https://${#TestSuite#ServiceEndpoint}/service/EmployeeInfo.

Now just change the values in the property while testing on different servers.

Also ensure that you are using the appropriate protocol to call the endpoint. The Two protocols available are http & https.

http: This is an unencrypted protocol
https: This is an encrypted protocol and is mostly recommended


In my next blog I will be covering the advantages of using the Pro features like DataSoure, DataSource Loop and Data Sink.

Happy Reading!!!







Thursday, May 24, 2012

Tools - Defect/Bug Reporting

Tools - Defect Reporting

Many instances in life proved that tools help us a a lot in getting things better & quicker.

When it come to Testing, there are many tools that help us manage our things in a better way.

With respect to Defect/Bug reporting:

Web Ex Recorder & Palyer: Video recording with Audio support

Web Ex recorder and player is the tool I observed to be helpful while testing. I have been using this since many years.  There might be a case where the Bug is reproducible only with particular sequential steps sometimes which might not be possible to be explained clearly without screenshots. And In this case it might require to attach more than 10 screen shots. In this kind of scenarios it is really helpful to have a tool which helps us just record all the actions with a voice recording support so that we can just explain click here.. click here.. and this is what happens etc...
The tool is really handy and easy to install.  It can be installed from here    

If you are using this tool to record your defect ensure that your developer has WebEx player installed on his machine to play your recorded file.

Snag-It: The ultimate Screencapture tool

Though not an open source tool i found it to be really useful with its Tags & Send features that this tool specially has.

With Tags we can flag the screenshot taken as Important, Bug/Error, Follow up, Funny, Personal, Financial, Idea, Sent, Cool

With "Send" we can directly E-mail / Clipboard / Excel / Word / PowerPoint

30 free trail version can be downloaded here

Ofcourse just a click on PrtScn button on our keyboard does the same stuff. But then later we need to do multiple steps further like paste it in the Microsoft Paint, resize it, if necessary and then save it. All this steps are done in a single click with Snag-It.

There are many such tools in the market. As I got a chance to work on both thought of sharing it.

Thursday, August 18, 2011

Linux Basics - I

Now a days Linux/Unix has become the most popular OS and most of the companies are expecting testers to have basic Linux knowledge. So I thought it would be good to share few tips while working on linux for no voice testers.


  • Many web servers are said to have a "LAMP" configuration - an acronym for Linux, Apache, MySQL, PHP 
  • "TUX" the penguin is the logo of the Linux operating system. It commemorates and incidet in which Linus Torvalds, while on vacation in southern hemisphere was bitten on the hand by a penguin
  • In Linux Commands are space and case sensitive
  • Do not log in as root, unless you must do so to administer the system. Instead, use the 'su' command to assume root status. 
  • Directories and sub directories are the same thing as folders in Windows
  • Notice that the slashes that seperate directories in Unix are forward slashes (/), not backward slashes (\).
  •  You can display the last few commands you entered by repeatedly pressing the up and down arrows. This way, you can avoid typing in long commands or filenames over again. You can edit the command on the command line, then press Enter again to issue it again
  • There is no Undo button in Unix! Once you have deleted a file, it's gone
  • / contains the mount point for the major filesystems
  • /bin contains the basic commands that are used by all users, such as cat, cp, ping, vi, su and ls
  • cd isn't in the /bin directory. cd is a special command that is built right into the kernal
  • /boot contains the files used by the boot loader, such as LILO, to boot the system
  • /dev contains the special files for different hardware devices.
  • /etc contains the system configuration files that are used by all users
  • /home contains home directories for all users
  • /lib contains the shared libraries that are needed to run the programs
  • /mnt contains the mount point for the external hard drives such as CD ROM, Floppy or Zip drives
  • /proc is a pseudo-file system, which is used as an interface to the kernal
  • /root is the home directory for the root user
  • /sbin contains special commands that are generally used only by root
  • /tmp is for temporary files
  • /usr contains all the commands, applications, documentation and libraries that are needed to operate the system. The files in /usr is meant to be shared by all users and are generally read-only. /usr is often the largest partition
  • /var contains files that regularly change. Log files and other temporary files such as mail and print spools, are usually kept in /var
  •  If you get and error called a segmentation fault, along with a crashed application, that means that the application tried to access a part of memory outside of its address space, so the kernal shit the application down before it could do damage. When this happens you should report bug to the maintainer of the application
  • bash is an acronym for Bourne-Again Shell, which is the traditional shell that was written by Stephen Bourne. All of the Bourne shell built-in commands are available in all versions of bash
  • There are three kinds of variables in bash and most of the other shells: User variables, Environment variables, Built-in variables
  • You can monitor your system on a frequent basis if you are running GNOME click on the mail menu, and select System, System Monitor. This is a wonderful graphical interface that will let you monitor what system processes are running and other useful information
Some useful commands:

cd             - change directory
ls              - list contents of directory
rm            - delete a file (no undelete!)
cp            -  copy a file
mv           - move a file
vi             - edit a file
cat           - dump contents of a file
more        - display file contents in paged format
find          - search file system for files/directories 
grep         - scan file(s) using pattern matching
man          - read/search a man page (try ’man man’)
mkdir       - create a directory
rmdir        - remove directory (’rm -r’ has the same effect)
pwd          - print current absolute working directory
cmp          - show differences between two files
lp             - print a file
df             - show disk usage
du            - show space used by directories/files
mail         - send an email message to another user
passwd    - change password 
clear        - clear the screen
exit         - close the prompt window
date        - display the date and time
free        - show memory usage
chmod   - set permissions on files or directories
top         - dymanically displays process status

Thursday, January 27, 2011

Usability Testing

Earlier there was a time when the very people who designed hardware and software were the only ones to use them. But as the time changed by now the only thing that everyone believes is

"Customer is  God" !!

Meeting customer requirements and gaining customer satisfaction is the only goal for any software.

In house customer for any developer is a 'TESTER'.

What he sees and what he feels is what the end user feels.

In this blog i would like to share the 'User Rights' shared by IBM ease of use. This is how the testers perspective should be while doing usability check.

1. Perspective:

 The user is always right. If there is a problem with the use of the system, the system is the problem, not the user.

2. Installation:

The user has the right to easily install and uninstall software and hardware systems without negative consequences.

3. Compliance:

The user has the right to a system that performs exactly as promised.

4. Instruction:

The user has the right to easy-to-use instructions  (user guides, online or contextual help, error messages) for understanding and utilizing a system to achieve desired goals and recover efficiently and gracefully from problem situations.

5. Control:

The user has the right to be in control of the system and to be able to get the system to respond to a request for attention.

6. Feedback:

The user has the right to a system that provides clear , understandable, and accurate information, regarding the task it is performing and the progress toward completion.

7. Dependencies:

The user has the right to be clearly informed about al systems requirements for successfully using software or hardware.

8. Scope:

The user has the right to know the limits of the system's capabilities.

9. Assistance:

The user has the right to communicate with the technology provider and receive a thoughtful and helpful response when raising concerns.

10. Usability:

The user should be the master of the software and hardware technology, not vice versa. Products should be natural and intuitive to use.

Ref: IBM User Rights

Wednesday, October 27, 2010

Cloud - Cloud computing





Cloud, Cloud computing the buzz words heard everywhere now a days. But what is it?   I started googling about it as we do for most of the things. The first opinion when most of them heard about the word "Cloud Computing" is working from the cloud (Be it while travelling through the clouds or working from the clouds.. :) Of course nothing is impossible for a man. He even can create a workstation in a cloud ;) ) . 



As per Wikipedia the Definition of cloud computing is : 


Cloud Computing is an internet-based computing, whereby shared resources, software, and information are provided to computers and other devices on demand, like the electricity grid.



Why Cloud Architectures?

1) It address key difficulties surrounding large-scale data processing. In traditional data processing it is difficult to get as many machines as an application needs.
2) It is difficult to get the machines when one needs them.
3) It is difficult to distribute and co-ordinate a large-scale job on different machines, to recover if one machine fails
4) it is difficult to auto-scale up and down based on dynamic workloads. 
5) It is difficult to get rid of all those machines when the job is done.

What are the Business benefits?

1) Almost zero upfront infrastructure investment
2) Just-in-time Infrastructure
3) More efficient resource utilization
4) Usage-based costing
5) Potential for shrinking the processing time

Cloud based services can be broadly divided into: 

  •  Infrastructure as a service (IaaS) (Data as a Service (DaaS) is a subset of IaaS)
  •  Platform as a Service (PaaS)
  •  Software as a Service (SaaS)
IaaS is all about hardware, data storage, networking and bandwidth
 i.e. Server, Routers, Switches etc. Amazon and Rackspace are good examples.

PaaS is OS+Application Server stack like .Net framework, VS.Net, SQL Server etc. Best examples of PaaS are Microsoft's Azure & Google AppEngine.

SaaS is simply order an application & start consuming in minutes. Salesforce.com is the best example for this category.




Top 10 cloud Providers:



  1. Amazon (Specialized in IaaS)
  2. Google (Specialized in PaaS & SaaS. As SaaS it offers Google Apps a web based communication, collaboration & security apps which incudes Gmail, Google calender, Google talk, Google Docs, and Google Sites. As PaaS it offers Google App Engine a platform for developing and hosting web applications in Google-managed data centers. Currently the supported programming languages are Python and Java)  
  3. VMware (Offers vCloud)
  4. Rackspace (Offers Rackspave Cloud)
  5. Salesforce.com (Leader in SaaS)
  6. Microsoft (Specialized in PaaS.It offers Azure, a Windows-as-a-service platform consisting of the operating system and developer services that can be used to build and enhance Web-hosted application.)
  7. Joyent (The only cloud provider company that delivers all the three layers of the Cloud stack.)
  8. IBM 
  9. NetSuite (Specialized in SaaS)
  10. 3Tera (Offers CloudWare. Cloudware is a big step towards bridging the clouds, and creating standards which will lead to open environment for clouds. With this Consumers will be able to move around with their application and data that will span multiple clouds.)
The key concept is that serveral people, companies or organizations can use the same common services, software, hardware and other infrastructure components. By using common components, the costs are driven down, effieciencies go up and everyone is happy :)




Thursday, October 14, 2010

Important Mobile apps testing links

Android:


IPhone:

 IPhone: http://developer.apple.com/library/ios/navigation/
Human Interface Guidelines: http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/mobilehig/Introduction/Introduction.html

Palm:

Palm Information: http://developer.palm.com/
Installing Palm SDK: http://developer.palm.com/index.php?option=com_content&view=article&layout=page&id=1545
Command line Tools: http://developer.palm.com/index.php?option=com_content&view=article&id=1552

Blackberry:

Blackberry Dev Zone: http://na.blackberry.com/eng/developers/
Blackberry Simulator: http://na.blackberry.com/eng/developers/resources/simulators.jsp


In case if you are developing an application that needs to play a video (for eg: Scanner application which scans the barcode of a prodcut, fetch the upc of it and displays the ads related to it) following are the links to check the supported video formats on the devices:

Android supported Media formats: http://developer.android.com/guide/appendix/media-formats.html

Apple supported Media Formats: http://developer.apple.com/library/ios/#documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/MediaLayer/MediaLayer.html

Blackberry supported Media Formats: http://supportforums.blackberry.com/t5/BlackBerry-Curve-BlackBerry-8300/Supported-media-files-attachment-files-multimedia/m-p/25917





Tuesday, August 17, 2010

My Views in Testing Mobile Application

In this blog I would like to share my views on how can the testing approach be with respect to mobile applications. I have first categorized it as:

  • Porting/Installation of an application
  • Interruption to an application with other supported functions in mobile
  • Functional testing of an application
  • Error handling

In Detail:

Porting/Installation

  1. Porting the build onto mobile/device should be tested. Unloading and reloading of an app also.
  2. Porting (.jad/.jar) file or other build mechanism testing should be successful. As an example Incase of Palm it is through command line we need to build first and then install it. If URL based download is supported, that should also be tested properly. Eg: For an Android Application the build can be directly installed from the Email.
  3. After successful porting of application delete the icon and check how you can get it back easily. Eg: If it is in case of iPhone app deleting icon is just the uninstallation of app. In case of Android it is not that case.
  4. Try to install application when there is no enough memory in the phone.
Its basically verifying against all the supported options for porting apps to mobile/device



Interruption:

  1. Blue tooth, Infrared interruption
  2. Call (Accept/Reject/Establish) interruption
  3. Voice sms/simple sms interruption
  4. Key press (Eg. when one of the screen in app is opened and when the Del key in the mobile key board is pressed what happens..)
  5. Low Memory
  6. Charger effect
  7. Battery consumption, Removal etc..




Functional:

  1. Menu navigation: check if all the links there, are taking you to the right page or not.
  2. How the page is placed in landscape view and portrait view
  3. Application or page loading time
  4. Logo and background colour should be in sync across the application
  5. Giving interrupts at each screen (loading screen, main menu etc.). Eg: Call to the mobile while the application is loading and check what happens

Error Message handling:

  1. If your application runs only with Internet,  access the application when Internet is down and check if your getting proper error message
  2. when the application is taking lot of time to load
  3. when there are interrupts how is the behavior

Saturday, August 7, 2010

Mobile Applications and Testing it - Part I



The buzz words heard now a days are iPhone, HTC, Motorola, Samsung, Android, Blackberry etc.., all the internet and multimedia enabled smart phones.Now its just your mobile which has almost all the necessary features such as Camera, Visual voice mail, Portable media player, an Internet client with e-mail and web browsing, Wi-Fi connectivity, Bluetooth etc..apart from the basic features of calling and text messages. Almost all these devices have virtual key board or a QWERTY keyboard which just looks like your handling a palmtop and not a mobile



Apart from all the features users are always given the best chance to add Apps to their mobile as per their interest, be it games, reference, GPS navigation, social networking etc.



When I started thinking of mobile applications, many questions came to my mind...

  •  How are the applications developed for mobiles?
  •  Is test driven development possible for mobile applications?
  •  If so how the testing should be done?
  •  From QA what are the steps I need to take care to ensure that the application is working fine?
  • Does the same test cases which I write for the application functional testing on portal/website (cross browser supported) holds good for mobile testing as well?
  • And lot more....
  Most of the mobile platforms are not mutually compatible i.e. most of the applications developed on one platform does not support the other platform. So it's up to the application owner's choice to decide on what platform his application should support. For more information on mobile application development click here
As my focus is mostly on testing, here are my understandings on the same.
Can test driven development be done for mobile applications?
Yes Test driven development is possible for mobile apps as well. 

Do we need to port the application daily into mobile and then test it? No. There are Emulators/Simulators which can be used for testing. They simulate the actual device environment in our computer as shown above. All the functional aspects can be tested in the emulators. 

The major change that I have observed while testing the application on emulator and the actual device is the view of the application. Now a days most of the mobiles have both landscape and portrait views. In emulators we can only check the portrait view. So at the end when we start testing on actual device, you might find lot of resizing issues. This is again if your application supports both Landscape and Portrait views. Most of the applications now are days are strictly developed for portrait view.


Some useful links:

Palm Emulator: Steps to install Palm emulator are given here

Android SDK:  Follow the steps mentioned in the following link to install Android SDK. For more info on how the Android Emulator works click here

In my next blog I will share my experiences on testing an application on actual device.


Tuesday, July 6, 2010

Defect Tracking Tools

After a long time got a good chance of writing on my interesting experience.

Can you imagine a Testers job without a Bug Tracking System?
I can just say it would be this way!!


Earlier i use to work for a project where everything is systematic and we have a well maintained Defect tracking tool called DSolver (The customized version of the Bugzilla). Now i am into a project where we don't have any bug tracking tool. As am the only QA, and after getting used to the well maintained tool it has been really a tough time for me to report and then track the bugs.

Finally i started installing Bugzilla the famous open source defect tracking tool.

Seriously started following step by step procedure mentioned here 

Bugzilla installation needs the following to be installed:

  • Apache
  • MySQL
  • Pearl
Good to see almost all the open source tools use Apache as the webserver and My SQL as the Database. So thought of installing all one after another. But luckily came to know from my collegues about another open source tool  XAMPP.
XAMPP's name is an acronym for:


kool luckily with the installation of XAMPP two steps (installation of Apache and MySQL) reduced to one. :)

Even after lot of struggle could not make Bugzilla up.In parallel we have started searching for another open source tool and as this is a short term project we are looking for easy web based tool.

Then came across another tool FlySpray
Now this again need 
  • Apache
  • MySQL
  • PHP
As i already installed XAMPP i was able to reuse the same Apache and MYSQL and with minimal setup i was able to get a bug tracking tool in the team.

Now All izz well..

So for a short term projects we can use the open source tool called FlySpray and for the larger projects i would say try  Bugzilla.



Thursday, October 29, 2009

Software Testing Principles (GLENFORD J.MYERS)

  1. A necessary part of a testcase is a definition of the expected output or result.
  2. A programmer should avoid attempting to test his or her own program.
  3. A programming organization should not test its own program.
  4. Thoroughly inspect the results of each test.
  5. Test cases must be written for input conditions that are invalid and unexpected, as well as for those that are valid and expected.
  6. Examining a program to see if it does not do what it is supposed to do is only half the battle; the other half is seeing whether the program does what it is not supposed to do.
  7. Avoid throwaway testcases unless the program is truly throwaway program.
  8. Do not plan a testing effort under the tacit assumption that no errors will be found.
  9. The probability of the existence of more errors in a section of a program is proportional to the number of errors already found in that section.
  10. Testing is extremely creative and intellectually challenging task.

Tuesday, July 21, 2009

FURPS+ for Software Testing

The following is the acroynm for the FURPS model and what it covers:

Functionality- Feature set, Capabilities, Generality, Security

Usability- Human factors, Aesthetics, Consistency, Documentation

Reliability- Frequency/severity of failure, Recoverability, Predictability, Accuracy, Mean time to failure

Performance- Speed, Efficiency, Resource consumption, Throughput, Response time

Supportability-Testability, Extensibility, Adaptability, Maintainability, Compatibility, Configurability, Serviceability, Installability, Localizability, Portability

But now a days in software industry FURPS+ Model is widely used:

The '+' includes:

Design requirement: Eg: If you specify that DB, Web server etc. are required its a design constraint

Implementation requirement: Eg: This includes reuired coding standards, Implementation languages and resource limits

Interface requirement: Specifies the external item with which the system must interact

Physical requirement: What hardware must the system be deployable on?