You require Adobe Flash Player to view this content.
Download Flash Player

Testing Services

What is Software Testing?

The goal of the testing activity is to find as many errors as possible before the user of the software finds them. We can use testing to determine whether a program component meets its requirements. To accomplish its primary goal (finding errors) or any of its secondary purposes (meeting requirements), software testing must be applied in a systematic fashion. Testing involves operation of a system or application under controlled conditions and evaluating the results.

Verification and Validation

Verification and Validation (V & V) is a Software Testing activity to enhance quality of the software being built. It is planned and conducted systematically through out the software lifecycle.

  • Verification is the checking or testing of items, including software, for conformance and consistency with an associated specification. Software testing is just one kind of verification, which also uses techniques such as reviews, analysis, inspections and walkthroughs.
  • Validation is the process of checking that what has been specified is what the user actually wanted. Validation activity may begin when most or all software functions as per customer expectations. Validation testing provides final assurance that the software meets all functional, behavioral and performance requirements. Usually Black-box testing is used for this activity.

Verification: Are we building the Project right?

Validation: Are we building the right product?

Debugging vs Testing

The term bug is often used to refer to a problem or fault in a computer. There are software bugs and hardware bugs.

Software testing should not be confused with debugging. Debugging is the process of analyzing and locating bugs when software does not behave as expected. Although the identification of some bugs will be obvious from playing with the software, a methodical approach to software testing is a much more thorough means of identifying bugs. Debugging is therefore an activity, which supports testing, but cannot replace testing. However, no amount of testing can be guaranteed to discover all bugs.

Common Problems

  • Poor requirements – if requirements are unclear, incomplete, too general, or not testable, there will be problems
  • Unrealistic schedule – if too much work is crammed in too little time, problems are inevitable
  • Inadequate testing – no one will know whether or not the program is any good until the customer complains or systems crash
  • Requirements change – requests to pile on new features after development is underway are common
  • Miscommunication – if developers don’t know what is needed or customers have erroneous expectations, problems are guaranteed
  • Poorly documented code – sufficient comments not built into the source code, requirement changes not updated in the impacted documents

Solutions

  • Solid requirements – clear, complete, detailed, cohesive, attainable, testable requirements that are agreed to by all players use prototypes to help nail down requirements.
  • Realistic schedules – allow adequate time for planning, design, testing, bug fixing, re-testing, changes, and documentation; personnel should be able to complete the project without burning out.
  • Adequate testing - start testing early on, re-test after fixes or changes, plan for adequate time for testing and bug-fixing.
  • Stick to initial requirements as much as possible – be prepared to defend against excessive changes and additions once development has begun, and be prepared to explain consequences. If changes are necessary, they should be adequately reflected in related schedule changes. If possible, use rapid prototype during the design phase so that customer can see what to expect. This will provide them a higher comfort level with their requirements decisions and minimize changes later on.

Communication

Require walkthroughs and inspections when appropriate; make extensive use of group communication tools - e-mail, groupware, networked bug-tracking tools and change management tools, intranet capabilities, etc.; ensure that information/documentation is available and up-to-date - preferably electronic, not paper; promote teamwork and cooperation; use prototypes early on so that customers' expectations are clarified.

Copyright © 2010
A Global RIA and Mobile Application Solutions Company
.
Interact
  • Twitter
  • Facebook
  • Linked-in
  • Videos
Sign up for our eMail Newsletter