Outsourcing Testing – Call of the Hour

August 31st, 2009

As testing is a science in itself and the activities involved within testing are always never-ending (recursive), outsourcing these activities not only reduces the burden of the organizations developing software but also guarantees a much reliable and quality software in affordable way; this reliability is achieved due to the disciplined approach and well defined/ designed test activity plans done by professional independent testing companies.

According to the Gartner Research Report, ‘Market Trends: Application Development, Worldwide, 2008-2013’, the global software testing market equals $13 billion and the global market size of outsourced QA & Testing services is around $6.1 billion. Analysts from Gartner believe that the appeal of QA & Testing outsourcing will be increased in the near future due to the companies ‘understanding that offshore services are a valuable tool in leveraging testers’ expertise, tools and processes and reducing the cost of testing, while improving the overall application quality.

Why outsourcing?

Current Issues: 

1.       Insufficient time: This is a major issue that every organization faces during entire development process of any software application. Tight deadlines in delivering the product (which need to be strictly followed), many times become a crucial player in dropping testing activity or winding it up in a shorter time.

2.       Unskilled Manpower: Another major impacting factor is the unavailability of proper and skilled resources, which usually results when testing is not planned properly and no proper testing cycle is implemented or not at all considered.

3.       Limited budget: Budget is also one of the major factors that sometimes affect the software development cycle which limits the testing cycles to one or two. Insufficient budget margins not only limits the testing activities but also limits the testing types/ phases needed based on the software application, which if bypassed may result in huge impact on the overall quality.

4.       Lack of focus consideration: Organizations which develop complete software (right from initiation till closure) are involved in many activities; various phases are to be considered during this entire process in strict time frames, thus the focus is diverse with major focus on development and completion of the tasks (which are back to back) as earlier as possible which many times deviates the focus of testing leaving it unattained. 

Benefits: 

1.       Focus on core competency: Most of the outsourcing firms are involved in to the same kind of activities i.e., testing, thus, developing a good and competent resource is not a challenge and is many times readily available.

2.       Better output due to activity outsourced to the firm specializing in the same domain: As most of the outsourcing organizations are specialized in specific domains and technologies and focus on particular fields, choosing a right outsourcing partner based on the core competencies always result in huge gains.

3.       Marginally less investment cost: As outsourcing do not involve much investment like, resource management cost, cost for planning, infrastructure, etc. it is much cheaper and cost effective and can be achieved in much less investment as compared to the investment required in deploying an in-house testing activity. Also, there is no maintenance cost required if the task is outsourced.

4.       Optimum time, task and resource management with higher productivity: The outsourcing firms with their expertise in specific domains and on particular technologies and testing activities can manage tasks and resources in much better manner by optimum time utilization as the major focus and goal is to deliver quality product with reliable and stable service to their clients.

5.       Stronger risk assessment and management: With testing becoming as major and prime task for outsourcing organizations it gives deep focus on the major impacts, potential risks and other quality hazards due to regular work and the previous experience, this helps the outsourcing firms in much better way to manage risks and plan the activities based on the risks involved and their priority. This also leads to well planned risk mitigation management and avoiding potential risks. 

Outsourcing is just not a business partnership but also collaboration for transformation towards mutual growth which, can also lead a dying/ failing business to a leading business (leader) because of its numerous hidden advantages (value-adds). Thus, in today’s competitive market moving to outsourcing is call of the hour, a wise decision!

 

Uncategorized , , ,

Why Test Management Tools are required?

July 24th, 2009

The rapid progression in technology just highlights the fact further that test

management is no longer optional. Test Management tools are necessary as they

enable objectivity and eciency. A proper test management tool can help address

several areas of concern:

  • What to test and how does it help to address business objectives?
  • Where we are in the testing cycle and what is the coverage?
  • To address the change in business lifecycle, what should QA team be doing next?
  • What are the risks and how are they being mitigated?
  • Are we doing enough to meet customer expectations?

Uncategorized

Test Automation & it’s Benefits

July 23rd, 2009

What is Test Automation?

 Test automation is the use of software to control the execution of tests, the comparison of actual outcomes to predicted outcomes, the setting up of test preconditions, and other test control and test reporting functions. Commonly, test automation involves automating a manual process already in place that uses a formalized testing process.

 Testing tools can help automate tasks such as product installation, test data creation, GUI interaction, problem detection, defect logging, etc.

 Test Automation requires appropriate planning i.e. which tests we have to automate and which we have to perform manually. Also, test automation is implemented where the functionality is stable in the application over volatile ones.

 Benefits of Test Automation: 

  1. Fast: Time duration of the testing process will reduce drastically since testing is a repetitive activity throughout the development cycle.
  2. Reliable: Accuracy of the testing will be high in automation testing than manual testing.
  3. Repeatable: can test how the software reacts under repeated execution of the same operations.
  4. Comprehensive: Effectiveness of the application will be improved and can rerun the scripts across multiple platforms simultaneously.
  5. Reusable: creates scripts for reusable tests that can be run each time the site or application changes
  6. Cost Effective: Total cost of performing manual testing is exorbitant in comparison to automated testing. By executing automation scripts the rate of error will be less than manual testing and it can execute the tests much faster.
  7. Improves Quality: By repeatedly executing the automated scripts, more defects can be found and further improvement of the quality of end product can be done .With Automation we can run more tests in less time with fewer resources. 

Type of Test Automation Approach:

There are two general approaches to test automation:

  • Graphical user interface testing: A testing framework generates user interface events and observes the changes that result in the user interface, to validate that the observable behavior of the program is correct.
    Many test automation tools provide record and playback features that allow users to record interactively user actions and replay it back any number of times, comparing actual results to those expected. The advantage of this approach is that it requires little or no software development..
  • Code-driven testing: The public (usually) interface to classes, modules, or libraries are tested with a variety of input arguments to validate that the results that are returned are correct. Code-driven testing allows the code to conduct unit tests to determine whether various sections of the code are acting as expected under various circumstances. Test cases describe tests that need to be run on the program to verify that the program runs as expected.

 Integration of Test Automation Tool and Test Management Tool:

 In the test management tool, we have an entry of automated Testcases so we can integrate it with the test automation tool. Automated Testcases will be automatically executed and their result will be compared with the expected result in the test management tool.

Also, the actual result and status will get updated automatically in the test management tool. By using Test Automation tool, we can send the acknowledgment mail with the automated Testcases status to the QA persons.

 References:

http://www.wikipedia.org/

Uncategorized , , , , ,

Common features in agile testing

July 22nd, 2009
Iterative development
–Running, tested features developed in order of business priority
Responsive to changing requirements
–Many opportunities to re-prioritise and re-evaluate
‘Travel light’
Favour conversations over documentation and formal process
Customer (Product Owner) is part of the team
–Empowered customer rep either on-site or accessible to the team, provides constant feedback on quality and priorities
Focus on delivering Business Value
–Everything costs, so don’t do anything that doesn’t add value!
Test-Driven
–High emphasis on testing early, testing often & testing fast
Restrospectives
–The team review and improve their own processes regularly

Uncategorized ,

Agile Techniques

July 13th, 2009

Agile techniques: Many organizations have begun to use agile development techniques. These practices put a premium value on collaboration and alter the development cycle because requirements are changing and being completed incrementally as the project is under way. Agile methods also focus on the drive to push quality upstream through techniques such as unit testing and code reviews. Agile practices are encouraging vendors in the tool market to build tools that recognize these process changes and address the shift from isolated specialist tools to coordinated suites that share information and manage and update each other in a complementary fashion. For example, leading tool support integration between software requirements and test plans, and as requirements grow or change, will force a vendor to update its test plan. This collaborative capability is especially important for globally dispersed organizations to keep information loss among groups to a minimum.

Source: Gartner

Uncategorized , , ,

Testing tool Market

July 13th, 2009

The overall distributed testing tool market is valued at more than $1 billion and has been growing consistently at 10% to 12% during the past five years. Gartner expects this growth to accelerate due to the demands of SOA and replacement of legacy applications with new packages and custom solutions. New companies continue to enter the market, as established vendors continue to fill out suites through acquisitions. As organizations seek to better manage software assets and face increased complexity, competition and regulations, they are finding that quality management tools and practices provide a fundamental baseline to drive positive results. This need will be especially acute as organizations shift from early Web services implementations to developing SOA, and as packages expand to become service-oriented business applications. SAAS based tool is an answer to companies trying to minimize their investments in tools.

Source: Gartner

Uncategorized , ,

Why Test Management?

July 13th, 2009

Creating an organized test plan has become extremely important for software companies because of the hyper competitive software industry. The time, capabilities, bandwidth and other resources are limited, so it is critical to make sure that testing professionals are extremely comprehensive while executing their test scripts. However, in tough economic times like today, having a solid test plan is not enough; a more dynamic approach is required to cut costs by eliminating unwanted tests without compromising on a comprehensive risk and security testing. To ensure this “Just Enough” approach to testing, test management becomes critical. Test Management involves leveraging a collection of processes and tools that enables testers to take a more strategic approach to testing, prioritizing key test functions, accounting for risk, planning for coverage, and controlling test execution. By employing effective test management, software development companies will ensure that they run the right tests, and avoid releasing an application that is not ready for prime time. There are several test management tools available, each with their own set of capabilities, limitations and complexities. Also, most tools available today are costly in terms of license fee and the hardware and software resources required. It becomes paramount to find the best tool that meets all your needs.

Why QMetry?

QMetry is the most comprehensive, flexible and affordable test management tool available in the market. It caters to QA teams of all sizes. It has brought test management to masses by offering a SaaS based delivery model. It draws all advantages of the SaaS features, and enhances the overall test management experience. QMetry drives a more effective and efficient global application testing process and supports high levels of communication and collaboration among geographically distributed testing teams. QMetry seamlessly integrates with your existing defect tracking systems like Bugzilla, JIRA and Mantis and test automation tools like Silktest and Quicktest, further enhancing their usability of yourexisting tool investments. It helps in involving analysts more directly in overall quality efforts, along with a shift in focus from finding defects to validation; to ensuring business objectives are being met. QMetry provides a user friendly interface, with powerful capabilities that help QA teams to integrate, communicate and co-ordinate the entire testing process in the most effective manner. QMetry provides a greater visibility of the entire testing process to geographically distributed teams and clients.

Uncategorized , , , ,

Seven reasons to Say yes to SaaS

July 13th, 2009
  • Affordable Total Cost of Ownership: Low upfront cost for acquisition and deployment, elimination of non-licensing costs and a metered-usage-based payment model with monthly expenses spread out over time reduces the overall cost of ownership. The Subscription based pricing enables economies of scale and makes the expenses more manageable as the teams grows. More importantly, for the SaaS based applications, the provider is responsible for the resources required to run the application & maintenance, which helps to optimize customer’s resources for other tasks. The user gets access to the application by paying for the usage and not owning it.

 

  • Faster deployment and high acceptance: The deployment time for a SaaS based application is faster since it is devoid of the complex implementation tasks associated with the licensed software as it is already up and running on the vendor’s resources. Since these applications are hosted over the internet, no training is required and the adoption levels are high.

 

  • Effortless real time upgrades and updates: A SaaS provider takes care of all the updates and upgrades, which are automatic, seamless and offered at no additional cost, there are consistent smaller changes instead of monster patches that cost time and money to implement. This aids the users to benefit from innovations on an on-going basis with painless upgrades.

 

  • Greater Customization and Scalability: The multitenancy feature of SaaS applications enables the vendors to scale indefinitely and provide exhaustive customization capability.

 

  • Seamless Integration: Integration support was aimed at collaborating with the complementary service providers & business partners of SaaS solutions. This was then extended to imbibe adaptability to the current processes and applications at the customer’s premise. Seamless integration is provided through different web services APIs and Service Oriented Architectures.

 

  • Anytime Anywhere: Today, the teams are geographically distributed and hence real-time collaboration between the team members is the need of the hour. Centralized repository provides a transparent & continuous view of the modifications/updates to the entire team. The mere inherent feature of being hosted over the internet enables the users to use the service from any location.

 

  • Focus to core competencies:  Due to higher accountability on part of the SaaS solution providers in terms of maintaining reliable data centers and secure processes, the customer can divert the resources utilized for the same towards competency building and hence, bringing higher productivity to the business.

 

Economic factors favor SaaS as during these tough times, capital expenditures are bound to be slashed and force organizations to move to more economical options. The subscription based pricing model of pay-as-you-go, will make SaaS more attractive and affordable. The lower overall TCO and enhanced productivity due to increased focus on core competency makes SaaS favorable.

Uncategorized , , , ,

Top 7 parameters for evaluating a test management tool

July 9th, 2009

Top 7 parameters for evaluating a test management tool

1. Real-Time updates that can be accessed from a centralized repository

Your QA team should not be spending countless hours in the morning trying to gather and compile the data from multiple sources and send you a report. Every member of your should be able to access all relevant test case information from anywhere in the world and be sure that it is current and updated, allowing your QA Team to be on the same page.

Test execution progress, test cases, requirements, and defect tracking charts should be all at the tips of your fingers. Testers should spend less time answering questions such as what percentage of tests are completed, where are we in the testing cycle, and how many critical bugs are there and more time on doing what they do best, that is ‘testing’!

2. Manage your Requirements

Managing requirements and respective changes is at the core of successful testing effort. A test management tool should provide an extensive capability to manage requirements and link them to test cases as well as defects for traceability analysis. By defining requirements, you can plan and manage tests that are more focused on your specific business needs.

Requirements should be associated to tests and defects to provide complete traceability and to aid the decision-making process.

3. Manage your Test Plans

A test management tool should provide an interface to create a test plan template that uses a step-by-step wizard format to make it simple and user friendly. The pre-defined stages of a test plan allow simple input giving you a comprehensive and complete test plan in a matter of minutes. The Test Plans will help you capture important test planning related information about testing your project. You should be able to import test plan into any word processor of your choice and should be version controlled allowing you to track changes globally.

4. Manage your test cases

Testcases are the fundamental building blocks for a seamless and predictable testing effort. An effective test management tool should provide a very simple yet intuitive interface to write the details of testcases and link them to the requirements and associated defects. Also, it should be able to adopt a customizable workflow to enable various compliance criteria.

5. Manage your Defects

The time effectiveness of testing team is measured by the number of defects that it discovered during testing process. An effective test management tool should provide a flexible defect management module that can be customized to meet the QA team’s and management’s needs. It should also provide a Web services based API to integrate external Defect and/or Issue Management systems in the testing process. Defect tracking should be simple & efficient while reporting on quality metrics. The metrics should be live so the bugs can be tracked and charted the moment they are submitted. This saves your team the time by not having to create a report and send you defects status every day.

6. Criteria based Search and Filter

To react effectively against business risks it is important to quickly find the details and changes associated with the test assets. An effective test management tool should provide a keyword based and field-value based extensive search as well as filter capability to mitigate risks effectively. The search and filter feature is extremely efficient as it allows you to identify what you need and hone in on it based off of parameters that you can set.

7. Role Based Security

The modern day software development lifecycle demands different roles and access control to effectively manage the testing process. An effective test management tool should provide a granular access control to mimic real-world team composition as well as role/user classification. Role management helps you to manage authorization, which enables you to specify the resources that users in your application are allowed to access. Role management lets you treat groups of users as a unit by assigning users to roles such as testers, QA Manager, Business Analyst and so on. Roles give you flexibility to change permissions and add and remove users without having to make changes throughout the site. As you define more access rules for your application, roles become a more convenient way to apply the changes to groups of users.

Uncategorized , , , , ,

Welcome to QMetry

June 23rd, 2009

The “Future” of test management is here!

Uncategorized , ,