The Importance Of Software Testing And Not Just Software Programming

Welcome. Please Login, Register, Or Activate! 
type your username and password to login
Date: November 24, 2009, 06:14 PM
432012 members and 298969 Topics
Latest Member: Sabamaxia
Nairaland [Nigerian Forum] Home Help Search Who is currently online? Login Register
Nairaland Forum  |  Technology  |  Programming  |  The Importance Of Software Testing And Not Just Software Programming
Pages: (1) Go Down Send this topic Notify of replies
Author Topic: The Importance Of Software Testing And Not Just Software Programming  (Read 1433 views)
blacksta (m)
The Importance Of Software Testing And Not Just Software Programming
« on: April 01, 2008, 07:26 AM »

I seem to read always on Nairaland where people brag about their programming skills the question is " Does your program meet it is core functional business need    I doubt it ".  The Uk Information Technology companies spend roughly about 30 - 40 billion pound sterling on software development and about  30 to 75 percent of this budget is spent on software testing a lot of this testing is done inhouse and about 15 % is outsourced.  Trends shows that these companies would rather have independent software testing team.  I am sure you know the old saying " developers only see what they want to see and are  not critical with their work"

The Standish Group reports that around 30% of IT projects will be cancelled. Around 52% of projects will cost 189% of their original estimates.  Only 16% are completed on-time and on-budget. In larger companies, the news is even worse: only 9% of their projects come in on-time and on-budget.

What is software testing?

Software Testing  is the process used to help identify the correctness, completeness, security, and quality of developed computer software. Testing is a process of technical investigation, performed on behalf of stakeholders, that is intended to reveal quality-related information about the product with respect to the context in which it is intended to operate. This includes, but is not limited to, the process of executing a program or application with the intent of finding errors. Quality is not an absolute; it is value to some person. With that in mind, testing can never completely establish the correctness of arbitrary computer software; testing furnishes a criticism or comparison that compares the state and behaviour of the product against a specification. An important point is that software testing should be distinguished from the separate discipline of Software Quality Assurance (SQA), which encompasses all business process areas, not just testing.


Types of Testing

•   COMPATIBILITY TESTING. Testing to ensure compatibility of an application or Web site with different browsers, OSs, and hardware platforms. Compatibility testing can be performed manually or can be driven by an automated functional or regression test suite.
•   CONFORMANCE TESTING. Verifying implementation conformance to industry standards. Producing tests for the behavior of an implementation to be sure it provides the portability, interoperability, and/or compatibility a standard defines.
•   FUNCTIONAL TESTING. Validating an application or Web site conforms to its specifications and correctly performs all its required functions. This entails a series of tests which perform a feature by feature validation of behavior, using a wide range of normal and erroneous input data. This can involve testing of the product's user interface, APIs, database management, security, installation, networking, etcF testing can be performed on an automated or manual basis using black box or white box methodologies.
•   LOAD TESTING. Load testing is a generic term covering Performance Testing and Stress Testing.
•   PERFORMANCE TESTING. Performance testing can be applied to understand your application or WWW site's scalability, or to benchmark the performance in an environment of third party products such as servers and middleware for potential purchase. This sort of testing is particularly useful to identify performance bottlenecks in high use applications. Performance testing generally involves an automated test suite as this allows easy simulation of a variety of normal, peak, and exceptional load conditions.
•   REGRESSION TESTING. Similar in scope to a functional test, a regression test allows a consistent, repeatable validation of each new release of a product or Web site. Such testing ensures reported product defects have been corrected for each new release and that no new quality problems were introduced in the maintenance process. Though regression testing can be performed manually an automated test suite is often used to reduce the time and resources needed to perform the required testing.
•   SMOKE TESTING. A quick-and-dirty test that the major functions of a piece of software work without bothering with finer details. Originated in the hardware testing practice of turning on a new piece of hardware for the first time and considering it a success if it does not catch on fire.
•   STRESS TESTING. Testing conducted to evaluate a system or component at or beyond the limits of its specified requirements to determine the load under which it fails and how. A graceful degradation under load leading to non-catastrophic failure is the desired result. Often Stress Testing is performed using the same process as Performance Testing but employing a very high level of simulated load.
•   UNIT TESTING. Functional and reliability testing in an Engineering environment. Producing tests for the behavior of components of a product to ensure their correct behavior prior to system integration.

What are some recent major computer system failures caused by software bugs?

1.   A September 2006 news report indicated problems with software utilized in a state government’s primary election, resulting in periodic unexpected rebooting of voter check-in machines, which were separate from the electronic voting machines, and resulted in confusion and delays at voting sites. The problem was reportedly due to insufficient testing.
2.   In August of 2006 a US. government student loan service erroneously made public the personal data of as many as 21,000 borrowers on it’s web site, due to a software error. The bug was fixed and the government department subsequently offered to arrange for free credit monitoring services for those affected.
3.   A software error reportedly resulted in over-billing of up to several thousand dollars to each of 11,000 customers of a major telecommunications company in June of 2006. It was reported that the software bug was fixed within days, but that correcting the billing errors would take much longer.
4.   News reports in May of 2006 described a multi-million dollar lawsuit settlement paid by a healthcare software vendor to one of its customers. It was reported that the customer claimed there were problems with the software they had contracted for, including poor integration of software modules, and problems that resulted in missing or incorrect data used by medical personnel.
5.   In early 2006 problems in a government’s financial monitoring software resulted in incorrect election candidate financial reports being made available to the public. The government’s election finance reporting web site had to be shut down until the software was repaired.
6.   Trading on a major Asian stock exchange was brought to a halt in November of 2005, reportedly due to an error in a system software upgrade. The problem was rectified and trading resumed later the same day.
7.   A May 2005 newspaper article reported that a major hybrid car manufacturer had to install a software fix on 20,000 vehicles due to problems with invalid engine warning lights and occasional stalling. In the article, an automotive software specialist indicated that the automobile industry spends $2 billion to $3 billion per year fixing software problems.
8.   Media reports in January of 2005 detailed severe problems with a $170 million high-profile US. government IT systems project. Software testing was one of the five major problem areas according to a report of the commission reviewing the project. In March of 2005 it was decided to scrap the entire project.
9.   The latest to the list  The Heathrow terminal 5 ( I am very sure it  is costing BA millions every day)


Why do so many IT projects fail?

It is a fact of life that as many as 80-90% of IT projects run over budget or are terminated prematurely.  And even those that reach some sort of completion often fall far short of meeting user expectations and business performance goals.



What is the problem?

Common problems nominated in failed projects are:
•   lack of user involvement in the design
•   lack of management involvement
•   lack of a clear scope

The single major reason for the failure of most projects is simple: 

These projects fail because they have attempted to automate an ill-defined process
The method used to develop in-house IT systems consists of "paving the cowpath": taking an existing process and automating it.  That's fine if you have a nice straight, mapped, cowpath.
When business analysts from IT turn up at a user department, they are often faced with users who have only a vague idea of the actual process which is in place.  Different users will have different ideas of the same process.  Process steps will be ill-defined and often ignored by those operating the process.
Inevitably, the analysts will come back with a user requirements statement which represents what they have been told, plus perhaps what they themselves imagine the user needs.  With no other input but their own (faulty) recollection of the process, users are often more than happy to sign off on this.
None of this is the fault of the IT methodology, or the analysts themselves, or even the users interviewed.  The fault is in the gap between operations and IT.
Hammer's "Business Process Re-Engineering" tries to solve the problem by ignoring the users (and the cowpath) altogether and building roads where IT thinks they should go.  Unfortunately (as Hammer admits), this often fails.


Alternative


  It's very simple: 

Before you start, document the processes that you want the system to automate



Conclusions

How do you avoid failure in a software implementation project? 

The key is to have in place, before you start the system specification phase, a clearly defined and accurately documented set of business processes and procedures.  If you have these, you will have:

•   a precise appreciation of business needs and expectations; this will enable you to see the way ahead
•   a firm basis for the development of the software specification; this ensures that the software will come as close as possible to meeting the business needs sooner, and ensure a smooth transition for the business
•   an ideal platform for continuous improvement of business processes, either during the implementation, or after
•   an accurate outline of the project on which you can base your implementation plan and monitor project progress
•   a readily adaptable set of parameters on which to base system testing
•   a vastly improved appreciation of business needs and expectations against which you can gauge the success of the project





Software testing is a critical component of the software development cycle. And software testing procedures are critical to the success of the testing phase. Software remains in a perpetual state of change which is why software testing, whether manual or automated, is so vital to a software product’s success. Typically, 30 – 40% of the software engineers employed at larger software development companies work on software testing and each of these individuals needs to understand his or her role in this ongoing process. Software testing procedures help ensure that they do.

Source – Testing brain, wikipedia,



Who we are

I  am senior test consultant at N Gold Consulting www.ngold-consulting.co.uk A specialist independent provider of software and systems testing consultancy to enterprise and mid market companies. N Gold specialises in testing alone; its in-depth experience with all leading testing tools and methodologies. We embrace a methodology that provides an entire coverage of all required testing activities, regardless of the size of the project.

what are we doing  at present

We are introducing our  testing service to the Nigerian IT market and should be up and runing by mid august 2008.


What we propose.

I strongly believe that we should have segement of nairaland that deals with Software testing, re- engineering. tools and methodology




SayoMarvel (m)
Re: The Importance Of Software Testing And Not Just Software Programming
« #1 on: April 01, 2008, 09:30 AM »

NIce information there. more of an advert though. Huh
my2cents (m)
Re: The Importance Of Software Testing And Not Just Software Programming
« #2 on: April 01, 2008, 11:38 AM »

Software testing is indeed something which, at least based on posts I see on Nairaland, is lacking.  I am on the web dev side of things, but it is still applicable.  One need only to check out a site and see the broken links, forms that don't work, etc.  On the software development side, how many of us in here (not a knock, just asking) performing unit tests?

Granted, for the most part, programming jobs are a one-man affair with one person doing everything including the kitchen sink, we should still set aside time to do some testing of some sort.  Does this mean we won't make mistakes? Nope.  We are human and besides, any programmer who tells you they get it right on the first try is a liar.  That being said, I firmly believe we can eliminate at least critical defects if we just carved out a section of our time to do some quality testing.

If cost is a factor, I suggest time for testing be put into the development plan and its cost built in to our estimates.

As always, my 2 cents.
candylips (m)
Re: The Importance Of Software Testing And Not Just Software Programming
« #3 on: April 01, 2008, 12:14 PM »

 What automated software testing tools do u guys use
blacksta (m)
Re: The Importance Of Software Testing And Not Just Software Programming
« #4 on: April 02, 2009, 08:10 PM »

?
SubMacGun (m)
Re: The Importance Of Software Testing And Not Just Software Programming
« #5 on: May 26, 2009, 07:56 PM »

Quote from: candylips on April 01, 2008, 12:14 PM
What automated software testing tools do u guys use

All the mercury suite and rational robot
dueal (m)
Re: The Importance Of Software Testing And Not Just Software Programming
« #6 on: May 27, 2009, 01:12 AM »

Going through the threads on this forum i ran unto this topic and had a lil laugh. 'The importance of software testing'. Like popular saying , Software that hasn't been tested simply does not work. You must continously with emphasis go through the iterative process of analysis,design,implement ,test.your work ain't done yet till u r convinced each stage has been considered to a depth. You don't need to be a rocket scientist to decipher that. Ha ha!
Ghenghis (m)
Re: The Importance Of Software Testing And Not Just Software Programming
« #7 on: May 27, 2009, 08:34 AM »

Quote from: dueal on May 27, 2009, 01:12 AM
Going through the threads on this forum i ran unto this topic and had a lil laugh. 'The importance of software testing'. Like popular saying , Software that hasn't been tested simply does not work. You must continously with emphasis go through the iterative process of analysis,design,implement ,test.your work ain't done yet till u r convinced each stage has been considered to a depth. You don't need to be a rocket scientist to decipher that. Ha ha!

@dueal Software testing is much more than unit tests or the typical tests that a development team might integrate into the Software dev life-cycle.

To put it in perspective, how many programs or applications have you written and is certain is fail safe or fail hard ?
There was this Greek thing, about "if a Builders work collapses and kills the tenants son, then the builder's son too must be killed" .Can you imagine the number of people that would sign-out of software development if such things were still in practice ?  Shocked

Software fails!!! simple ,
How can the customer get some level of comfort that business critical processes would not end in catastrophe ? How can the developer give this assurance ? (Its not by saying, "we did unit tests throughout the SDLC).

Hint : Quality assurance !
so @blacksta's mix of testing and Project management is okay, but that's not the whole story
Solid testing suites and practices cannot by itself deliver projects, so i'm wondering how reference to the, now famous, Standish group report is relevant. Huh
dueal (m)
Re: The Importance Of Software Testing And Not Just Software Programming
« #8 on: May 27, 2009, 09:33 PM »

@Ghenghis. I don't remember saying that software doesn't fail if that's wat your assumption is. Software is always infested with flaws no matter how much effort u put to testing or how large your development team might be. The essence of software programming is to deliver a product that satisfys(no mob reaction if something fails) its customer and there is no implied 100% assurance that it will not show its quirks. The developer can only give his/her customer some measure of assurance that the most disastrous things won't occur from their reliance on the product( like the total loss of data). Even the Giants give no 100% assurance but we still use those products they provide (no developer or his kid gets killed). If they did then we won't have the issue of getting new service packs for an already delivered product. I only made my previous post becos i was surprised that we programmers here have to be told of the importance of software testing by the starter of this thread. If that's the case then we all shouldn't be give the title of a programmer (what's a programmer if he doesn't test).i'm certain testing is a node in the software development tree .So what's the use of a topic like 'The importance of software testing and not just software programming'. What do u think?
dueal (m)
Re: The Importance Of Software Testing And Not Just Software Programming
« #9 on: May 27, 2009, 09:33 PM »

The measure of the reliability/fail saftyness of a software system is a function of many factors in which even the design of the programming language used is one.
Ghenghis (m)
Re: The Importance Of Software Testing And Not Just Software Programming
« #10 on: May 27, 2009, 10:34 PM »

@dueal i agree with you perfectly  Grin
but imagine a life support system that would require service pack 14.8.19p  Shocked

Software failures in some areas are actually so critical that even you the developer might be reluctant to release the product.

So lets imagine you develop a Life support system; how much time and after what activities would you be ready to tell the customer to give you your money (cause you're done  Cheesy)

software dev no eazee o ,
dueal (m)
Re: The Importance Of Software Testing And Not Just Software Programming
« #11 on: May 27, 2009, 10:49 PM »

I agree with u my brother, e no easy at all, but that hardened end of it gives us our job security cause not everyone has wat we have to remain in this business (die hard determination and a craftmans sense).
 Difference Between Db_flashback_retention_target And Retention Policy  Collection Of Nigerian Programming Gurus  Printing With Vb6  Page 2
Pages: (1) Go Up Send Topic to Friend by E-mail Reply 


Sections: Autos/Cars (2) Jobs/Vacancies (2) (3) Career Talk Education General(2) Politics Romance Computers Phones Travel
Sports Fashion Health Religion Celebrities TV/Movies (2) Music/Radio (2) Books Webmasters Programming

Links: Page1 Page2 Page3 Page4 Page5 Page6 Page7 Page8 Page9 Page10

Nairaland is owned by Oluwaseun Osewa. See also: Nairalist Classified Ads
Nairaland Forum | Powered by SMF 1.0.12.
© 2001-2005, Lewis Media. All Rights Reserved.