By Yaron Sinai TechNewsWorld Part of the ECT News Network
07/08/09 4:00 AM PT
Application-testing and quality-assurance managers are under the gun. They must not only put out top-notch applications, but also deliver them fast. Effective communication between team members and across the IT department is a key component of achieving this, and some of the software to facilitate that communication is in the cloud.
Adaptability is the name of the game in our fast-paced society. In order to remain on top, every company needs to adapt to the market in which it participates.
Software and application developers (actually, the entire IT department, if you want to get technical) are particularly affected by this fast pace of change. With mobile phones, netbooks and smartbooks, as well as social networking, there are new platforms and competitors emerging every day. As a result, developers are being pressured to quickly release new, interesting and effective programs.
This means that the testing managers and QA (quality assurance) managers charged with maintaining quality and standards need to know what their teams are working on, what bugs exist and in what stages, and what (if any) feedback is coming in from clients. Furthermore, the testers themselves need to be aware of the entire project, not just the portion they are working on.
To get to the point, everyone involved in a particular project needs to know that the applications are being tested in an efficient and timely manner and are not being released to the public with any bugs or other outstanding issues. With all the variables bouncing around, it's fairly apparent that we've moved way beyond the days when a basic spreadsheet (or email!) was sufficient for tracking the development lifecycle.
Why Testing Matters
In such a competitive market, any company releasing buggy or otherwise faulty software is likely to see their customers move to the next company in line offering a similar product or service. In real-time systems such as banks, hospitals and airplanes, releasing buggy software can cause severe damage to a company's reputation, to say nothing of the damage caused to the actual people who rely on these software systems.
Imagine if the hospital program that held patients' medical details crashed because of a bug? That isn't just a PR disaster; it's a real-life disaster.
This is where a tightly monitored testing process comes into play. Performing test cases on each function of the application or software system ensures that the program performs as designed, and that each function produces the desired results prior to public release.
Testing managers, responsible for ensuring that software is released to the public without any bugs, need to be able to efficiently organize, control and oversee the testing process so each test case is completed both quickly and precisely. Having an organized and transparent testing process is also more efficient -- and, as we all know, the company first to market with the best and cheapest product wins!
Talking to Your Peers
Complicated systems have complicated testing processes. That's just the way it is. There are team leaders, testing managers, quality assurance managers, project managers and more -- all working on the same product to get it out the door as quickly as possible, and in working order. Any testing manager needs a quick and efficient way to communicate with everyone involved in the testing process. When analyzing the tests, details on previous testers, past test results and processes used to generate those results are integral in comparing functionality of the feature in all its iterations.
If a bug is found, a separate method is needed for tracking and fixing the issue. Keeping track of these bugs and their current status is necessary in order to complete the testing, as is communicating with the tester or developer on the other end of the process. In an ideal world, any tools used for bug tracking and test case tracking would be integrated, allowing easy transfer of information from one data set to the other.
Additionally, testers need to be able to see what their peers are doing in order to make critical decisions regarding their own tasks. If the developers and testers are able to easily communicate and view results from other team members, they can incorporate feedback and bug fixes quickly and efficiently.
Each tester also needs to know which step their colleagues are at in the testing process, what results have been achieved, and how far along the overall testing is. Testing managers want to do everything they can and use every tool at their disposal in order to facilitate communication between and among teams. Continuous feedback on bug and issue status and individual test case steps during the testing process can greatly reduce the amount of time a software system spends in development. As the saying goes, time is money!
The Process
Running the testing process according to schedule -- and making sure that each function has been properly tested -- can be difficult for a testing manager if the status of each test isn't easily accessible and apparent. For a detailed and organized test case scenario, it's useful to have data like test case ID and description, expected output, actual output, results, remarks, steps, related requirements, test category, author, and time spent on hand.
However, it's a time-consuming process to list the input, expected output, preconditions and post conditions in detail. Testing managers can increase efficiency and decrease frustration by having a system in place to preserve this information for future and related tests.
One way to track test cases is by keeping a detailed and constantly updated spreadsheet with test case methods, statuses and results. While this is fine for small-scale projects, it isn't a reasonable or even feasible method for most software and application development teams -- particularly those operating on a large scale. Email is also often used as a more proactive, albeit less organized, method of tracking test cases.
Both of these methods utilize existing infrastructure and often don't require any additional cost. However, if you add up the time spent by developers and testers in looking for files and searching for data, these methods don't always measure up to tools made for tracking the software development life cycle.
There are many software options available, both Web-based and not, which provide an organized testing environment. However, with the Software as a Service (SaaS) field growing so rapidly, some companies may still opt to build their own testing database and software, but many more are now frequently turning SaaS solutions.
SaaS providers not only host the management software, but are responsible for maintaining, updating and securing it. Additionally, some providers offer a range of integrated applications for the software development life cycle, which let users link test cases to bugs or help desk issues.
Shifting maintenance and time-consuming upgrades to the provider allows the development team to focus on their product and business growth. Which tracking solutions you choose for your projects depends on your company and development needs.
Companies that have multiple projects in various phases at various times, with developers and managers spread across the globe, tend to find that the most effective solution is one that will offer a detailed and organized test case scenario, easy archiving and reporting, and fluid communication between groups.
Current Trends
New platforms for development, a sinking economy encouraging companies to cut back on IT spending, and changing business models in the software and service delivery market are sure to change the way that software development and testing is conducted -- even more than these factors already have.
Additionally, as companies are once again realizing that they need to innovate in order to stay afloat, social networking is being worked into even the most elementary of business functions.
What this means for the software development process is that software testing, a process that has hardly changed in almost two decades, is fast on its way to becoming a fully collaborative effort, based in the cloud.
Yaron Sinai is the founder and CEO of Elementool, a developer of Software as a Service project management tools.
Your Web App, Their Experience: Load Testing 2.0 July 07, 2009
Traditional load-testing methodologies can measure the strength of an enterprise's internal infrastructure. However, if external, third-party components aren't delivering snappy Web application performance, customers likely won't care whose fault it is -- they'll just go away. Load testing 2.0 is a way to assess your Web app's performance from the customer's point of view.
Related Stories
The Making of an Open Source Developer Hero January 07, 2009
Cisco is holding a contest for Linux developers as a way to familiarize them with its Network as a Platform concept. The goal is to generate applications to run on Cisco's Application Extension Platform and to create a Linux developer network.
Terra Soft to Merge With Japanese Cell Developer Fixstars November 11, 2008
Yellow Dog Linux developer Terra Soft Solutions has been bought by Fixstars, a Japanese company specializing in software for the Cell Broadband Engine. Terra Soft will maintain its product line, while its former CEO will serve as COO. The merger occurs just two months shy of Terra Soft's 10-year anniversary.
Developer Aims to Unlock iPhone's VoIP Potential August 12, 2008
Technology that allows phones to use the Internet rather than traditional networks to place and receive calls could be coming to the iPhone. Global IP Solutions says it will make its VoIP technology available to developers writing iPhone apps. iPhone VoIP applications would presumably function only with a WiFi connection rather than an EDGE or 3G cellular data signal.
Related News Alerts
More by Yaron Sinai
Management From Afar: Coaching a Team of Remote Workers October 05, 2009
Many jobs that once required employees to show up at a common office every day can now be done from the employee's own home. Managing such a team requires a unique set of skills and technologies. Supervising a group of workers that is geographically diverse is a great challenge, but it doesn't have to be difficult if the right tools are used.