Software testing lacking serious effort
Summary: Understanding impact of software failure on business an essential step in planning and doing testing, but companies typically seldom make the effort, leaving it to last minute.
In today's digital era, prior testing before software goes live is imperative, as its failure could damage a company's business and reputation. Considering fleeting brand loyalty today, negative user reactions can lead to user migration as well.
These potential consequences carry more significance than the technical malfunction, said observers who unanimously stressed the importance of software testing.
The approach of "test early, test often" is unfortunately not adhered to by most companies, and test efforts are usually left to the last minute, said Jeff Findlay, senior solution architect, Asia-Pacific and Japan at Micro Focus. Companies hence struggle to test critical functionalities and transactions before the software's release date.
Ray Wang, principal analyst and CEO of Constellation Research, added that even if companies acknowledge that getting software right is critical, they do so in "faster, better, cheaper" mode. This limits the possibility of software failure but also the foresight and preparation for unexpected glitches in real life.
"Testing has to be elevated into a science and not an art", Wang said, adding that only a handful of companies actually get this point of integrated, agile development. These companies build test plans side by side with functional specs, which takes more time to plan, but results in fewer bugs and errors, the analyst said.
"Just because you've counted all the trees doesn't mean you've seen the forest," said Rameshwar Vyas, CEO of Ranosys Technologies which offers software testing services. Companies should always bear this in mind while making a testing roadmap for any software release. Change management and risk management are also integral parts of the overall plan, so that all test cases regarding what the software is not supposed to do are covered as well, he advised.
Findlay emphasized that companies must ensure that what they test meets business requirements, which should be clearly defined, validated by all the stakeholders and kept in a central repository. Companies usually write disparate documents describing requirements differently and multiple times, resulting in a variety of interpretations which in turn leads to application failure and expensive rework, he explained.
These comments come after U.S. trading company Knight Capital Group made a trading loss of US$440 million after a botched software update made several erroneous orders on the New York Stock Exchange (NYSE) last Wednesday--and had to be bailed out with a financial lifeline. Barely a week later in Asia, the Tokyo Stock Exchange (TSE) experienced a computer failure in its backup systems which halted derivatives trading for 95 minutes on Tuesday.
How much is enough
How companies should gauge the amount and length of software testing to avoid such incidents boils down to how they associate the risk with a particular functions of the application, said Findlay.
It is important to understand the impact of failure on the business, and working backwards, mitigate those risks by ranking each test as early as possible so as to align these tests with the business requirement that drives them, the Micro Focus executive explained.
When transactions are critical to business success, they must be thoroughly tested from both a functional and nonfunctional perspective, he noted. This is to see if the application correctly performs the transaction in a timely fashion for all users, regardless of how they access the application.
Tests associated with non-critical aspects of an application don't require the same rigor and less testing is acceptable, since the business will not be seriously impacted in the event of failure, he added.
Even after the software goes live, continuous and regular testing of its critical transactions is important, Findlay noted. To facilitate this, automated tests should be developed as early as possible and re-run regularly to ensure development efforts don't break the application. These automated tests should cover the developer's code, functionality of key transactions and application performance, he advised.
Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.
Talkback
Testing as an Art or Science?
Use proven methodology
Where many companies fail is not using proven testing methodology, or simply cutting Q&A short in the original project plan. A good methodology involves a managed plan where testers are provided scripts and specific instructions in how to test and what to look for. A lot of consumer-grade software often just does "open testing", unmanaged where beta customers play with software and hopefully provide feedback on what is broken. Results from such a plan are often inconsistent and incomplete; reflected in a final product that shows a lack of diligence.
The problem is too many companies stress so much about
If we only gave enough money...
This is how a cell phone is created. The design guys come up with a plan. The engineers make up a CAD plan, then they make a thousand for testing. When that passes, they send the phone to software, who send it to the lab to reverse engineer which lines so what so they can start writing software for it. When that's done in a month or so, they begin writing the software.
One day, someone asked "Hey, didn't we make this phone? does anyone know what line does what already?" You guessed it, they did. However, it was too late for the company. They're no longer designing phones in the USA.
The moral of the story? A bureaucracy working harder with more money always looses to just having brighter people without a bureaucracy.
"Open Testing" & Accelerating Test Plan Driven Testing
Where you do use more structured testing approaches - I think the big challenge with Agile development is timelines are accelerated and Testing gets squeezed. So, how do you test smarter or get your existing testing organization to be more efficient?
Article conveys no information
It's a blog
Thanks for highlighting importance of QA
PushToTest is different!
I'm an intern at PushToTest. I can see you're all frustrated with software testing. I encourage you to try our product. TestMaker enables you to run the test by yourself. Check us out, we're always looking for constructive criticism.
www.pushtotest
Testing is necessary for beneficial implementation
http://www.kualitatem.com