Wednesday, 11 January 2012

MoSCoW Principle – Key for success of any project


Problems hindering a successful project:

To make any project successful, requirements and project objectives should be prioritised properly. Though few methods were followed for the prioritization, but still the results were observed to be flawed.

Problem 1: Prioritizing the Project Requirements

An important factor for any project to be successful is to ensure that the requirements are prioritized. Sometimes it is the customers’ fault who wants the entire system to be delivered now or it is the project manager’s fault because they do not discuss the project with the customer.

However prioritising is not an easy process, and on using number system people found it troublesome to prioritize requirements by 1,2,3 etc. However who wants a requirement to be a “2″ or even a “3″? As a result all requirements become a “1″, which is useless. So effective prioritisation is important but how can it be done if number systems are not effective?

Problem 2: Prioritizing the Project Objectives

When a set of requirements has been prioritized then key project objectives of the project such as scope, quality, timescale and resources should be prioritized.
If nearly all requirements are prioritised as “Must”, then there is not much flexibility in the scope of a project. However many studies have shown that it is better if a project is delivered on time, even if it has few features, than if a project is delivered late, but with a full set of features.
If quality is sacrificed then faults will occur in the software. One way around this is to train the users in the use of a new system, so that they only use it in proper fashion, and know how to get around any bugs that are discovered.

Finally all systems must be produced to a budget, and a business does not have unlimited resources to put into a project. Moreover the business case normally assumes a rate of return, which will be considerably reduced if the resources are increased significantly on a project. Therefore resources have a strong case for being the most important factor.

Regardless you cannot “have it all and have it now”, and a balanced and planned prioritisation of the factors must take place if a project is to have a chance of delivering business value. If it is not then the fifth factor of risk goes sky high, and ceases to be risk and become inevitable.

MoSCoW Principle

To overcome the above problems we have a useful method MoSCoW which was first developed by Dai Clegg of Oracle UK Consulting.

This stands for

M – “MUST” be implemented. Requirements falling under this category must be implemented and should not be left off for any reason. If they are not delivered then the project is a failure.
S – “SHOULD” be implemented. This represents requirement should be implemented in the project if it is possible. If it is found to be difficult to implement or not possible, then an alternate solution is also acceptable.
C – “COULD” be implemented. These requirements are considered as nice to have in other ways not a mandatory one. Requirements mapped under this category are desirable ones if time and resources permit.
W – “WON’T” be implemented. This requirement won’t be implemented at this time and likely to be implemented in future.
The two lower case “o” were added to pronounce the word easier.

Conclusion

To deliver business value and be successful a project requires prioritisation of:
  • The requirements.
  • The main project objectives: scope, quality, timescale and resources.
To Know More About: MOSCOW

Monday, 2 January 2012

How to achieve full potential of Test Automation?


Why test automation?

Software testing is an art, aimed at evaluating an attribute or capability of a program or system and determining whether it meets the expected outcomes. Software testing can be very costly and time consuming.

Hence automation is a good way to cut down time and cost.

Benefits of test automation:

Test automation provides numerous benefits to any organization. Some of them are listed below:
  • Reduced test execution time and cost
  • Increased test coverage on each testing cycle
  • Increased value of manual testing effort
  • Reduced manual work
Reasons for failure of test automation:

There are a number of reasons why test automation efforts are unproductive. Some of the most common include:
  • Poor quality of tests being automated
  • Lack of good test automation framework and process
  • Inability to adapt to changes in the system under test
Five Steps for Successful Test Automation

To avoid the above reason and to achieve the full potential of test automation, emphasis has to be given on the below steps:
  • Planning
  • Preparation
  • Proof of concept
  • Implementation
  • Maintenance
Planning

Each phase in the project must be planned with a clear view on the current testing methods and information of the infrastructure. Gather information from key people who have experience in test automation.

Preparation

During preparation phase, a pilot project should be defined and test cases that need to be automated have to be selected. Define the roles and responsibilities and prepare input test data.
Proof of Concept

The test automation tool must be configured in order to be compatible with application under test (AUT). The tool must be able to capture user actions. Since more and more application types may be being used, the configuration part is not as easy. It is possible that the test tool will not recognize the application “out-of-the-box”, which means you need to configure the tool.
Then the team needs to automate a limited amount of test cases to prove that the application can be automated. Select an easy, a normal and a complex test case. Demonstrate execution and reporting of the automated test cases to decision makers.

Implementation

If proof of concept is successful, automation of selected test cases (scope defined at preparation step) can start. Analyze selected tests, think about data separation, functional decomposition, reusability of certain business components. Modularize your script into clear-cut building blocks. During this phase, you can set up test automation framework which can vary from documentation on tool usage to a full-scaled framework based on a spreadsheet or database layer.

Maintenance

A test automation project expands together with application under test. A new release may offer new functionality that needs to be automated. The existing automated scripts need to be maintained, new automated tests need to be added and there is a possibility that other organization may take over automation project in future. Team has to prepare for these events by providing documentation for each script, by constantly allocating the proper resources for the project and by training newcomers in the tool, the script and the execution.

Conclusion

Test Automation in today’s competitive environment is much needed than desired; to keep operating efficiently and considerably cut down costs and efforts, without compromising on quality and security. However you must adopt a well planned and a structured approach to automation in order to ensure a higher return on investment. It is suggested that prior to opting for automation, QA teams need to perform an exhaustive automation assessment to identify the right set of automation methods, tools and techniques that will compliment their QA needs.

HP Sprinter – New Era in Manual Testing


Problems faced in manual testing:


Manual software testing is the oldest mode of testing soft wares and is still in practice. But all these years of practice do not make it a routine as one would expect. We need to accept the below mentioned facts first.
  • Manual testing can often be very tedious and time consuming. The productivity of a tester depends on multiple sources (test script, test data, defects tracked, application under test).
  • In today’s world where software needs to operate in multiple operating system environments and web browsers, manually testing software adds a large amount to the time needed to release an application.
  • Manual testing is often error prone. Test steps are easily missed, test data often incorrectly entered, and defects are often incorrectly captured thereby decreasing overall quality of the application, increasing risk the application poses, and increasing costs due to associated work replication.
What is HP Sprinter?


HP Sprinter is an easy to use solution provided by HP that delivers accurate and efficient manual software testing fully integrated with HP Oracle Application Management and HP Quality Center.

How HP Sprinter ease manual testing?


With this new era of HP Sprinter, manual software testing does not have to be tedious, error prone, or time consuming anymore. Some of the features are:
  • HP Sprinter dramatically reduces time needed to perform manual software tests and increases their accuracy and effectiveness.
  • Manual tests are launched from HP Application Lifecycle Management or HP Quality Center into HP Sprinter where tester carries out the test.
  • The actions and results of the test are simply recorded and results are saved within HP Application Lifecycle Management or HP Quality Center.
  • Defects can also be directly logged within HP Application Lifecycle Management or HP Quality Center without leaving HP Sprinter, helping bridge the gap that exists with developers.
  • HP Sprinter also handles automated injection of data into fields under test increasing the speed and accuracy in which a test can be executed.
  • HP Sprinter allows screen capturing, screen annotation, and movie recording. It can also be used to automatically record and log tester’s activities and actions when executing exploratory testing without pre-defined steps.
  • HP Sprinter’s mirror testing capabilities allow users’ actions to be automatically replicated across multiple systems hosting multiple environment configurations.
Conclusion:


HP Sprinter thus helps to streamline manual testing and improve collaboration and communication. It increases speed of execution, improves productivity, reduces costs and accelerates application delivery.

Thanks For Reading This Article. Know More About: HP Sprinter

Tuesday, 27 December 2011

Cloud Computing- Easily Config To Any Computer Resource's


What is Cloud Computing?


Cloud Computing is a model that enables access to a configurable computing resource, which is easily accessible with no or only minimal service provider input.

“If the user does not know the physical location and configuration of the system that delivers the services of computation, software, data access, and storage services”, then it is Cloud Computing
.
The Flexible usage of IT services which are available in real-time/on-line via the Internet/Intranet, enabling users global access to standardized services. Cloud Services require no (or minimal) initial fixed cost investment and are charged on a usage basis.

What can be achieved with Cloud?


Within Cloud Computing, varieties of technically innovative solutions are combined and can deliver the potential for an innovative business approach leading to:
  • Cost  Reduction
  • Cost Structure Improvement
  • Variability of Cost
  • Flexibility of Services
  • New business models
  • Time to market for new products is significantly reduced
Steps to Optimize Cloud Computing:
Is the Business ready to use Cloud?

If yes, which services offered within the Cloud are the most suitable to support the Business Model?

Before engaging in Cloud Computing, initiate a project that reviews existing processes and products. The review process should go through the following steps in order to optimize use of Cloud Services:

Step 1: Standardization – Evaluate the actual level of process automation within the business being serviced.

Step 2: Virtualization – Identify the opportunities (from an IT and process perspective) within the existing operating model to virtualize services.

Step 3: Automation – Analyze level of automation of processes and identification of potential by using the Cloud for virtualized processes.

Step 4: Cloud Computing – Introduce those selected services into Cloud and define how to integrate Cloud services into existing IT/process environment.

When should a company go for cloud computing?


There is a growing belief that over the next few years, Cloud Computing will become a major stimulus for change in how corporations view and use Information Technology.

Cost efficiency, scalability and availability are the main drivers in the discussion regarding Cloud Computing. Security and privacy are the main issues, which need to be dealt with when using services in the Cloud.

From an end user perspective, Cloud Services will offer small and midsize companies access to a level of technology that is currently not available to them. Large corporations will be able to make their IT environment more flexible and reduce their cost base. The speed of new product developments will increase significantly and will offer major advantages for the end customer.

Conclusion:


All major providers offer services in the Cloud, which can bring enormous advantages to large, small and midsized companies when properly implemented and used. There are challenges in implementing Cloud Computing, which are similar to those inherent in IT sourcing engagements and can be successfully dealt with when addressed in a structured way.

Tuesday, 6 December 2011

HP Extensibility Accelerator


The rapid adoption of Rich Internet Application (RIA) technologies and Web 2.0 innovations has significant implications for both web users and the teams involved in the functional testing of web-enabled applications. The advent of Web 2.0 applications has created unprecedented challenges for organizations that focus on automated functional testing.  Web 2.0 enabled applications can leverage various technologies on the client side and through web browsers. With Web 2.0, the client side of the application processes more scripted code and rich presentation frameworks than in traditional environments. This shift of processing to the client side challenges the capabilities of all toolsets designed for the functional testing of Web-Enabled Applications.

Testing challenges in Web 2.0:

Some of the typical challenges faced were as follows:
  • Web pages are dynamic and asynchronous.
  • Portions of web pages can now be refreshed automatically to give users updates on sports scores, stock quotes, etc.
  • Current activities of people they connect with via social networking sites
  • Users have more control than ever before. Via sites such as iGoogle, users can now create their own home pages that bring together information and content from across the web like, local weather forecasts, headlines from prominent news outlets, and videos from YouTube etc.
  • Client side of the application processes more scripted code and rich presentation frameworks than in traditional environments
Why HP Extensibility Accelerator?
HP thought of putting forth advanced tools to test Web 2.0 technologies with HP Functional Testing. As a result, HP came up with a new accelerator for functional testing to overcome those challenges. The Extensibility Accelerator for HP Functional Testing provides a Visual Studio-like IDE that accelerates and facilitates the design, development and deployment of HP QuickTest Professional Add-in Extensibility support sets.

These support sets extend the HP Functional Testing Web Add-in so you can test Web controls that are not supported out-of-the-box.

Evolution of HP Extensibility Accelerator:

Extensibility is enhanced and accelerated with the new HP Extensibility Accelerator for Functional Testing software, which provides an environment that speeds the development of Web Add-in Extensibility toolkit.

What is HP Extensibility Accelerator?

HP Extensibility Accelerator for Functional Testing is a separate utility that can be used on a machine with or without an installed copy of HP Functional Testing.

It provides a user interface and special tools that help us define new test object classes, map those test object classes to the controls in our application, and teach QTP how to identify the controls, perform operations on the controls and retrieve their properties.

Features of HP Extensibility Accelerator:
  • Creating and defining the test object classes using JavaScript functions for the custom controls.
  • HP Extensibility Accelerator provides JavaScript editing capabilities and debugging tools to facilitate the writing of these functions.
  • Maps the test object class to your control and application, and it automatically identifies the rules that will teach HP QuickTest Professional how to recognize the test object class in your application.
  • The HP Extensibility Accelerator IDE simplifies the process of creating and editing the test object/toolkit configuration XML files.
  • The HP Extensibility Accelerator deployment capabilities enable you to automatically deploy your new toolkit support set to HP QuickTest Professional or to package it so you can share it with other HP QuickTest Professional users
Conclusion:

With the HP Extensibility Accelerator for Functional Testing, we’re making it easy for our users and partners to create their own extensibility assets and extend our software to support web controls that are not supported out of the box. With the hundreds of Ajax toolkits in use today and new ones coming out each month, the HP Extensibility Accelerator provides an extremely important set of tools for your organization.

The software itself can be installed and used on a machine that does not have HP QuickTest Professional on it. Custom toolkits developed with the software can then be deployed on one or more systems that are running HP QuickTest Professional.