Chapter 1.1
Basics of Software Testing
OK. Let’s start with the concepts of Software Testing. Here we are going to find out proper answers for the following questions that always mystifying in our mind.
· What is testing?
Testing is one of the most important phase of Software Development Life Cycle (SDLC). We cannot launch any product successfully without testing. Even the product designed by best of the best developers needs to be tested and verified under various circumstances.
Software testing is a process used to help identify correctness, completeness and quality of developed computer software.
What is the expected behavior of the system? Testing is to check if there is no difference between actual output and expected output.
Testing is an exercise to simulate a system or program operation. It helps the program to achieve the required goal.
Testing is to establish a confidence that a system does what it is supposed to do and even if it “misbehaves” it should not crash, it should do it decently.
In other words, testing is not a debugging or preventing process, it is only to ensure that within an application I have found/detect these many number of bugs and rest debugging/fixing of bugs is done by developers.
· Why to do testing?
As we discussed earlier, even though we have best developers developing the product still there may be flaws somewhere due to misconception, due to lack of understanding in integrating modules of 2 great developers and so on. Testing, if done poorly, defects are found during operation, it results in high maintenance cost and user dissatisfaction. So here are the most common software problems leading to software testing a vital role in SDLC.
The 20 most Common Problems
ü Incorrect calculations
ü Incorrect data edits
ü Ineffective data edits
ü Incorrect coding/implementation of business rules
ü Inadequate software performance
ü Confusing or misleading data
ü Software that is difficult to use
ü Obsolete software
ü Inconsistent processing
ü Difficult to maintain and understand
ü Unreliable results or performance
ü Inadequate support of business needs or objectives
ü No longer supported by vendor
ü Incorrect or inadequate interfaces with other systems
ü Incorrect matching or merging of data
ü Data searches that yields incorrect results
ü Incorrect Processing of data relationships
ü Incorrect file and data handling
ü Inadequate security controls
ü Inability to handle production data capacities
Note: Testing at earlier stage is much cheaper than testing at later stage. If client find bugs which were uncovered earlier then we losses credibility and may lose business as well.
· Software Testing Definitions
I think you got a rough idea of importance of software testing in a software development Life Cycle. Now we will see some definitions for software testing.
Software testing is the
Def-1
Process of evaluating a system by manual or automatic means and verify that it satisfies specified requirements. (IEEE 83a)
Def -2
Process of executing a program with the intent of finding errors.
Def -3
Process of establishing confidence that a program or system does what it is supposed to do.
Def -4
Testing is an activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results.
· How to know the product is successful?
A product is successful only when it is adding some value to customer business, only if it increases its revenue, credibility in the market and so on.
To develop a product we set a target time for completion and released to customer. If we can stick to that time without increasing budget and scope of the product then the product is successful.
Using the developed product, true business goals should be met else the product developed can be a failure leading to customer satisfaction loss, finance loss and loss of business further from that client as well as associates.
Look and feel should be accepted by user who will be the end user of the product.
No comments:
Post a Comment