Helping early-stage companies turn great ideas into even greater products Rapid scale-up and dependable delivery with unsurprassed passion and experience Swift and predictable results combined with quality and cost performance
banner

Archive for the ‘Quality Assurance and testing’ Category

Automation testing

Friday, August 14th, 2009

Everyone knows how important testing is, and, successively, everyone actually involved in software development does test the software that they release. But even a simple application often has so many different possible behavior patterns that some only take place in rather unusual circumstances. Thus, automation testing is a big deal even if a project is not very big but split into many iterations.

Here at Cogniance, we have a bright team of automation and performance testers working together for 2.5 years on different projects. Average experience is 5+ years in target area per team player.

We work(ed) with the following software tools:

TestComplete, Quick Test Pro 9.2, Selenium, SilkTest for automation testing tasks and JMeter for performance testing.

TestComplete (licensed for us) and QTP (licensed for our customers) are our primary tools, while Selenium and SilkTest used specially for legacy projects and for comparison purposes. Below is the list of features of TestComplete:

  • Script-free keyword testing for ease of use
  • Scripted testing for total flexibility
  • Windows and Web testing
  • .NET, Java and Ajax support
  • Flex, Flash, WPF and Silverlight support
  • Internet Explorer 8 and Firefox 3 support
  • Windows Mobile, Win CE, Smartphone support
  • Windows NT, 2000, XP, Vista 32-bit and 64-bit support
  • Open APIs,

which basically justified our choice of TC as a primary platform. As script language we use JavaScript.

QTP is mostly used for Flex application testing on costumer projects. Main advantages of QTP are:

  • It has lots of plug-ins: such as ActiveX controls, Web Applications, VisualBasic, Microsoft .NET, Adobe Flex
  • Keyword and Expert view modes
  • Great object identification mechanism
  • Centralization scripts running from the Quality Center

For performance testing tasks on all projects we use Jmeter, which is free and has following advantages:

  • Complete portability and 100% Java purity
  • Full Swing and lightweight component support
  • Full multithreading framework allows concurrent sampling by many threads and simultaneous sampling of different functions by seperate thread groups
  • Careful GUI design allows faster operation and more precise timings
  • Caching and offline analysis/replaying of test results

Often we use remote script running (on the server where system is installed or in the same LAN area) to avoid connection latency issues and see real server performance and stress reduction ability.

JMeter has beanshell module, which allows writing java code that enables creating complicated projects (not only for regression testing) for different tasks and applications.

Regarding target platforms for web-automation tasks, we use IE7 and FF3 as the primary for automation testing, and manual scenarios for Mac and Chrome, if requested by costumer. Automation test development under Mac platform possible but not in strong demand for it yet.

Written by Sergey Lyakhov

Mobile Applications Testing (Part 2)

Tuesday, August 11th, 2009

No surprise that testing of mobile applications is a much more painful task than testing the Web ones. Mobile phones can differ from one another dramatically, and this will radically change the way people see and use mobile applications and websites. There are a lot of different cases and dependencies that need to be considered for every single mobile device. I’ll point out several of them to cast some light on the problem scale.

First of all, it’s all about the application type – it can be native, cross-device, sms-powered, and a web application. Then, we need to consider carrier, handset manufacturer, model, OS and a browser. All these can give us the information about screen size (small vs. large), screen layout (portrait vs. landscape), input device (numeric keypad, QWERTY keypad, touch-screen), etc.
dfxgfxng_4pffwr7c9_b
Here, at Cogniance, we experience each type of mobile applications testing, but the most exciting and bright experience was with Native applications development/testing. The application under test was Brew Mobile Client connected to the social network. It was developed for a predefined range of devices under Verizon Wireless carrier. I’m not going to describe the whole testing process and methodology, but the main bottlenecks were numerous certifications, signature files, application testing under a real network, using DeviceAnywhere Studio to cover required set of devices, and a lot of other extremely expensive procedures.

I would suggest moving towards the mobile Web applications. Think about it: If you’re creating a website, you don’t have to get permission from a carrier. You don’t have to get something certified by anyone. You don’t have to beg for being placed on the deck, and you don’t have to pay half your revenue to a reseller. In fact, the carriers, handset and OS vendors probably won’t even be aware of your existence. It will just be you and the user, communicating directly.

The business of making native apps for mobile devices is dying, crushed by a fragmented market and restrictive business practices. The problems are so bad that the mobile web, despite its many technical drawbacks, is now a better way to deliver new functionality to mobiles. I think this will drive a rapid rise in mobile web development, largely replacing the mobile app business. This has huge implications for mobile operators, handset companies, developers, and users.” Michael Mace, a product planning and marketing executive in Silicon Valley.

Written by Alexey Koval

Mobile applications testing (Part 1)

Thursday, June 11th, 2009

Under the current subject there will be series of posts prepared by Cogniance experts involved into mobile applications testing and end-to-end scenarios verification process.

First one is mostly about iPhone applications because at this moment it is the hottest trend in mobile development and testing.

iPhone applications testing iphone-applications-testing1

Cogniance has been a trusted end-to-end software contractor and technology services partner in Mobile and Web 2.0 space since 2006. As an expertise consultant and QA team crew member at Cogniance, I’ve seen how mobile projects are getting progress and complex as more and more mobile applications that are new arise on mobile phones day by day. Three years ago, projects for mobile platform had very low ratio with web in about 1 to 6. Today it changes for 1:2 and even more frequently the target platform for mobile testing is iPhone OS. I will focus on such projects here.

First of all iPhone OS has strong support as integrated development environment, simulator, special tools suite like performance instruments, interface builder, etc. But the main basis of popularity projects for iPhone OS is Apple’s App Store, precisely this are few clicks effort from user to get wanted application directly to iPhone.

Apple’s App Store does not have any test services like dedicated QA (staging) servers or some closed App Store for developers to testing purpose. So to perform full test cycle for iPhone’s projects, especially to test application installation directly to iPhone device we use Mobile Provision Profiles approach to add application under test into iTunes and then synchronize with iPhone. It’s not official and legal way to add applications into iPhone, but it is one as simple and effortless approach.

How are you currently testing your iPhone’s application? How are you making sure correct installation through Apple’s App Store before release? I’d love to hear about your projects or thoughts on this post.

Written by: Anton Derkach – Senior Software Tester/QA Engineer at Cogniance

Test-driven development and pair programming – still rock!

Friday, March 27th, 2009

We at Cogniance are huge funs for test-driven development and use this approach from our early days – almost 4 years (well, looks like a bit of time now!). We also appreciate the usefullness of pair programming – it is especially convenient for code-review and getting_up_2_speed sessions. At the same time we start hearing from our fellow programmers from other shops that these techniques are…well, almost obsolete now and hardly useful. Fortunately, it seems to be not the case not only with us, but with other guys as well. Here’s an extract from one of recent posts at Twitter blog:

“Twitter has learned to be much more test-driven … By always implementing diligent test coverage, our defect rate lowers significantly.” And here what they say on pair programming:

“The Pivots [contractors, working for Twitter] as they like to be called, quickly became cultural role models for pair programming—a methodology in practice at Twitter today. Pair programming has helped us achieve more than just higher quality code and better code readability. This methodology is also about more intense and focused work sessions, automatic code reviews, and better tests. Pair programming also develops better personal relationships and improved communication which has meant a lot.”

As you see, TDD (test driven development) and pair programming are among key techniques at Twitter team.

Here’s the master source on their blog:  http://tinyurl.com/cuhzo5 .

Interviewing testers and QA engineers

Wednesday, March 4th, 2009

It is always quite complicated task to prepare and conduct a good interview for IT specialists, and for testers particularly. I used to spend lots of time preparing for interview and evaluating candidates, because the price of mistake here is extremely high, as you know.

Last days, going through the web I found amazing resource with the huge  collection of interview questions for QA engineers and testers. Its located here

For about 75% those questions might satisfy seekers and interviewers.

Highly recommended.