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