Thu, 11 Mar 2010

Home arrowSoftware Testing & Validation
Software Testing PDF Print E-mail
Image

Testing & Validation Services

Ensuring software reliability is one of the most difficult challenges in building a software product. NewCreationIT’s Quality Assurance & Testing team’s experience and abilities can help meet those challenges. Our team of Testers will validate an application's conformance to a specification for features, correctness, performance, security, etc. Furthermore, our testing team has experience and expertise in writing test cases, and in testing techniques such as test generation, coverage analysis, regression testing and in generating test reports.

Our testing teams can also assist our clients in selecting and using off-the-shelf and open source tools. Where required our development team can develop specific testing tools for complex applications.

Our testing and validation services include:

  • Validating an application’s conformance to ensure features, functionality,correctness, security, and performance are according to a specification.
  • Performing regression testing and test coverage analysis.
  • Developing tools for our clients who want to perform specification checking.
  • Writing random test generation tools.

Our testing teams work with software systems across platforms, architectures and technologies. As needed our QA/Testing professionals can be sent to work on-site at our customer’s premises.


Software Verification And Validation


Verification


Verification answers the question, "Are we building the system right?" The review of interim work steps and interim deliverables during a project to ensure they are acceptable. To determine if the system is consistent, adheres to standards, uses reliable techniques and prudent practices, and performs the selected functions in the correct manner.

Verification is an iterative process that determines if the products produced at each iteration/phase/step of the development/enhancement effort:

  • Fulfill the requirements placed upon them by previous iterations/phases/steps
  • Are internally complete, consistent, and sufficiently correct to adequately support the next iteration/phase/step

Verification answers the question, "Are we building the system right?"


Validation


Validation is the process of examining and exercising the complete application (software, hardware, procedures, and all else) to determine if all of the stakeholders' requirements are met.

Validation is done at least twice:

  • At or near the beginning of the effort, to ensure that we are going in a direction that has a good probability of eventually satisfying the needs and wants of the stakeholders.
  • At the end of the effort, to ensure that we have created a solution that truly meets the latest requirements of the stakeholders (regardless of how many times these requirements may have changed during the project).

Validation answers the question, "Are we building the right system?"

Independent Verification and Validation is verification and validation that is performed by an organization other than the developing/enhancing organization." The expected (and experienced) benefits are IV&V:

  • Increased objectivity
  • Earlier detection of errors
  • Reduced effort and cost of removing detected errors
  • Enhanced operational correctness
  • A much more consistent development/enhancement process  

Software Testing Services


Our Software Testing services addresses a wide range of testing needs including White box testing, Black box testing, Functional testing, Regression testing, Usability testing, Compatibility testing, Ad-hoc testing, and Load/Performance testing.

Functional Testing


Functional testing verifies that the application performs its intended tasks as defined by a stated set of specifications. The specifications of an application are the benchmark of what the application should do. Functional correctness is determined by performing a functional test, that is, if a particular action is taken then a particular result should be shown. The goals of these tests are to verify proper data acceptance, processing, and retrieval, and the appropriate implementation of the business rules. This type of testing is based upon black box techniques, that is, verifying the application (and its internal processes) by interacting with the application via the GUI and analyzing the output (results).This testing is done at the Form, Module level.

Data And Database Integrity Testing


This type of testing ensures that the correct data is being populated in the respective tables (database) as intended. For this we need to know about the relationship between different tables and how they are associated.

User Interface Testing


User Interface testing verifies a user’s interaction with the software. The goal of UI Testing is to ensure that the User Interface provides the user with the appropriate access and navigation through the functions of the target-of-test. In addition, UI Testing ensures that the objects within the UI function as expected and conform to corporate or industry standards.

Usability Testing


Usability Testing: Testing for 'user-friendliness'. The application must be easy to use. This includes things like navigation, clarity, and understandability of the information provided by the application. Usability can be validated and usually involves the following.

  • Ensuring that the GUI is correct.
  • Ensuring that the application is easy to use and understand.
  • Ensuring that the users know how to interpret and use the information delivered from the application.
  • Ensuring that the navigation is clear and correct
  • Ensuring that the appropriate messages are displayed.

Compatibility Testing


Compatibility testing ensures that application functions correctly on multiple browsers.

Adhoc Testing


The main purpose of this type of testing is to discover defects that have not been found with other types of testing.Ad hoc testing is most often used as a complement to other types of testing.

System Testing


System testing examines the web application as a whole and with other systems Once the whole system is ready then it can tested as a whole and make sure that system as a whole is working correctly. Also ensure that the values are correctly reflected in the database for each of the transactions.

Business Cycle Testing


Business Cycle Testing should emulate the activities performed on the system over time. A period should be identified, such as one year, and transactions and activities that would occur during a year’s period should be executed. This includes all daily, weekly, monthly cycles and events that are date sensitive, such as ticklers.

Performance Profiling


Performance profiling is a performance test in which response times, transaction rates, and other time sensitive requirements are measured and evaluated. The goal of Performance Profiling is to verify performance requirements have been achieved. Performance profiling is implemented and executed to profile and tune a target-of-test's performance behaviors as a function of conditions such as workload or hardware configurations. Transactions refer to “logical business transactions.” These transactions are defined as specific use cases that an actor of the system is expected to perform using the target-of-test, such as add or modify a given contract.

Load Testing


Load testing is a performance test which subjects the target-of-test to varying workloads to measure and evaluate the performance behaviors and ability of the target-of-test to continue to function properly under these different workloads. The goal of load testing is to determine and ensure that the system functions properly beyond the expected maximum workload. Additionally, load testing evaluates the performance characteristics (response times, transaction rates, and other time sensitive issues).

Stress Testing


Stress testing is a type of performance test implemented and executed to find errors due to low resources or competition for resources. Low memory or disk space may reveal defects in the target-of-test that aren't apparent under normal conditions. Other defects might results from competition for shared resource like database locks or network bandwidth. Stress testing can also be used to identify the peak workload the target-of-test can handle.

Volume Testing

Volume Testing subjects the target-of-test to large amounts of data to determine if limits are reached that cause the software to fail. Volume testing also identifies the continuous maximum load or volume the target-of-test can handle for a given period. For example, if the target-of-test is processing a set of database records to generate a report, a Volume Test would use a large test database and check that the software behaved normally and produced the correct report.

Security And Access Control Testing


Security and Access Control Testing focus on the following key areas of security:

  • Application-level security, including access to the Data or Business Functions. Application-level security ensures that, based upon the desired security, actors are restricted to specific functions / use cases or are limited in the data that is available to them. For example, everyone may be permitted to enter data and create new accounts, but only managers can delete them. If there is security at the data level, testing ensures that user “type” one can see all customer information, including financial data, however, user two only sees the demographic data for the same client.
  • Security, including logging into / remote access to the system.System-level security ensures that only those actors granted access to the system are capable of accessing the applications and only through the appropriate gateways.(See more on this in Appendix A)

Failover / Recovery Testing


Failover / Recovery testing ensures that the target-of-test can successfully failover and recover from a variety of hardware, software, or network malfunctions with undue loss of data or data integrity.

Failover testing ensures that, for those systems that must be kept running, when a failover condition occurs, the alternate or backup systems properly “take over” for the failed system without loss of data or transactions.

Recovery testing is an antagonistic test process in which the application or system is exposed to extreme conditions (or simulated conditions) to cause a failure, such as device I/O failures or invalid database pointers / keys. Recovery processes are invoked and the application / system is monitored and / or inspected to verify proper application / system / and data recovery has been achieved.

Configuration Testing


Configuration testing verifies the operation of the target-of-test on different software and hardware configurations. In most production environments, the particular hardware specifications for the client workstations, network connections and database servers vary. Client workstations may have different software loaded (e.g. applications, drivers, etc.) and at any one time many different combinations may be active and using different resources.

Installation Testing


Installation testing has two purposes. The first is to insure that the software can be installed under different conditions, such as a new installation, an upgrade, and a complete or custom installation, and under normal and abnormal conditions. Abnormal conditions include insufficient disk space, lack of privilege to create directories, etc. The second purpose is to verify that, once installed, the software operates correctly. This usually means running a number of the tests that were developed for Function testing.

NewCreationIT leverages its offshore software development center in Bangalore, India to deliver world-class solutions and services at amazingly low costs for its customers globally. To learn more about our company, our services and how we can assist your business, please contact us: This e-mail address is being protected from spam bots, you need JavaScript enabled to view it   or submit a request online.

 
© 2008 New Creation IT / email: info@newcreationit.com / Offshore Software Development Outsourcing