Product Quality


Visual Studio Team System 2010 is the latest version of Microsoft Visual Studio series. The latest version includes ‘Intellitrace’, an enhanced debugging feature in addition to number of new features. The new features range from unit testing, coded UI testing, performance testing, load testing, generic testing etc.

This post provides a basic tutorial towards creation of test plan, creation of test case for the plan and execution of test case using Visual Studio Ultimate 2010.

Creating a test plan

Creating test case

Executing test case

~ Karthik KK

Advertisements

Test Automation is a challenge during the initial stages of automation development. The selection of the application under test will drive the selection of the automation tool. While tools are the driving agents for automation, they are designed for specific environments. Basing an automated testing effort on using only capture tools has its drawbacks. Using a framework approach provides the basis of test automation and simplifies the automation effort. A framework is an integrated system that sets the rules of automation of a specific product.

Automation framework is not a tool to perform specific tasks, but is an infrastructure that provides the solution where different tools can plug itself and do their jobs in an unified manner. This system integrates the function libraries, test data sources, object details and various reusable modules. These components act as small building blocks which need to be assembled to represent a business process.  The effort required to setup the automation in the first place can be greatly mitigated through framework driven automation.

Framework driven automation takes a great deal of work and time to build and maintain the test automation tools that drive the process and contribute to the results. The benefits are not immediately realized. Companies take advantage of frameworks built by other companies to mitigate the effort required in the development of a framework.

Check out the white paper on test automation.

This post is a continuation of QTP code snippets. You can check QTP Code Snippets – Part 1 here.

  • Formatting the date and time value

FormatDateTime() function returns an expression formatted as date and time. The function has Date part and NamedFormat part. Example: If the application returns the time stamp and we need only date and not time then we can use the function as shown:

createdTime = FormatDateTime(“06/05/2009 10:15 AM”,2)

Msgbox(CreatedTime)

Output

06/05/2009

  • Comparing difference in date

DateDiff() function returns the number of intervals between two dates

DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])

Example: We are going to compare the present date with the date passed through FormatDateTime() function to check if it Today’s date.

createdTime = FormatDateTime(“06/05/2009 10:15 AM”,2)

If DateDiff(“d”,createdTime,date) = 0 Then

Msgbox(“Its Present Date”)

Else

Msgbox(“Its not Todays date, its another day”)

End If

  • Passing parameter from one action to another

Before passing a parameter from one action to another input parameter needs to be created for the action which is going to accept a value as input from another action. Lets take Action 2 is going to get an value from Action 1 as a parameter, then first create an input parameter for the Action 2. This can be done by right clicking on the Action 2 Action Properties à Clicking on Properties Tab and Clicking the “+” sign to create a parameter. Now lets say we are going to pass an integer variable from Action 1 to Action 2, hence I can create a number parameter in the input parameter of Action2. The code snippet will look like the following:

Action1

a = 10

b= 20

c= a+b

RunAction “Action2″, oneIteration,c

 

Action2

d = 10

result = Parameter(“c”)

e = result+d

msgbox(e)

Note: Set c as input parameter in Action2

More code snippets in the next post.

Extensive software testing before the product hits the market is essential for any company to maintain its brand and position among clients and partners. With the increasing adoption of agile methodologies, frequent number of revisions makes testing more sophisticated over time and becomes a larger proposition as the product nears completion. Reusable test automation frameworks coupled with test automation tools are key to shrink test cycle times. Such frameworks ensure consistency of testing, maximize re-usability and provide an outline of overall test structure.

Frameworks are built at each level of testing. Before building a test automation framework, detailed analysis for the need for automation based on the scope in order to define the expectant results, is necessary. In this newsletter, the focus is on  defining the test automation / framework objectives and looking at some of the best practices towards choosing the best tools or test automation frameworks for the project at hand.

  • Define automation framework / objective – Designing a framework for test management including test design, automation, execution, test report management and test data generation. The framework should be easy to use, encourage re-usability, make maintainability easy and reduce the total execution time.
  • Identify testing scope – Based on the nature of product under test, scope for the framework is defined. The need for automation for the product is also analyzed.
  • Choosing the tool – Based on the scope and type of testing involved, feature checklist for the shortlisted tools is prepared while ensuring that the automation objectives are met.

Based on the functional comparison of the tools the best suited tool can be chosen to architect the framework. The tool selection and framework design pave the path towards test automation. Implementation (and the team that does the implementation) is the key towards successful test automation. CI has leveraged its years of product testing experience, its expertise on automation tools and created an easy to use automation framework.

(Reference: Software Test Automation Book by Mark Fewster and Dorothy Graham)

Enterprises see access to applications on the go as means to operational efficiency and better customer focus. Security and mobile application development rarely appear in the same sentence. Occasionally mobile development is a side project of an enterprise IT developer that is looking to put a tick for the mobile option checkbox. Though the security features for mobile application are same as desktop applications, the security risks and security considerations differ depending on the hardware model. Some of the security considerations relevant to mobile applications are:

  • Data – How the Mobile OS allows different applications to access data?
  • Cryptography – How secure is the connection that is being set?
  • Key Management – One of the main components of cryptography. How is the key being dealt with?

Secure mobile application is not an oxymoron but it’s up to the development team to take on the challenge and apply security throughout the development lifecycle.

Read a success story of the mobile work force management system developed by CI here.

One of the other business units in CI has achieved the ‘Sage Development Partner GOLD’ status.  Gold Tier status is a new Sage Developer certification program that is aimed at giving clients and business partners a level of consistency, predictability, and confidence when selling third-party products within Sage’s software accounting market.

Also one of the flagship products of CI ‘Mobile SalesPerson’ is now Sage Certified Solution. Mobile SalesPerson had to pass a stringent certification process provided by Lionbridge Inc, the world’s largest and best-known software product testing authority. It has certified tens of thousands of products on behalf of major certification programmes, including Certified for Microsoft Windows, Microsoft Windows Server, and many others.

Also CI’s business partners and clients had to complete a survey to ensure that CI’s products and support continually maintains high levels of customer satisfaction.

This is a reward for all the hardwork put forth by the Mobile Team and all the Growth Managers (the term that we use for our Delivery Managers).

This is a proof for the good quality work being done by CI’ians and ability to keep the clients happy.

Great Work guys!!!

Product testing and application testing seem similar. There is not much of a difference in terms of the skill set required by the tester. But in the case of product testing, the criteria and the testing methodologies are different. When we think of product testing it focuses more on thinking like an end user and testing the product. So the focus is on computability, usability, stress and regression testing with the frequent product releases.

The quality assurance team is an integral part of product quality. I was talking to some of my friends in Quality Assurance. One of them said that: While most of the testers are equipped with knowledge about creating test plans, test environment, execution of the test plans and test result status, the drive is now towards focusing on user acceptance testing, testing software controls & the adequacy of security procedures, testing new technologies and testing software products developed by other organizations, which I felt in a way was true. Considering the fact that there is cut throat competition in the market for software products, these factors would make a huge difference on the product quality in the long run.

At CI, we completed certification of the quality assurance team this month.

Well!!! Create Value –> Deliver Value