Showing posts with label Testing Basics. Show all posts
Showing posts with label Testing Basics. Show all posts

Friday, October 8, 2010

Difference between re-testing / Regression Testiing?


Re-testing is testing the application again and again with the intent of finding the bugs.

Regression Testing is testing a new build to check whether bug fixes have resulted in any new bugs, basically you are checking a new build for presence of any bugs.

Wednesday, September 29, 2010

What is Quality Control?

Quality control measures a product against existence of a required attribute
•  Checks whether the product conforms to defined standards and procedures
•  Quality control is a detection activity
•  Testing is an example of QC

What is Quality Assurance?

•  Set of activities which establish processes and sets up measurement programs to evaluate the processes.
•  Processes "assure" the same level of quality in all the products produced by that process
•  It is oriented towards 'prevention'.
•  Training is an example of QA

What is unit testing

Testing of individual units or groups of related code is known as Unit Testing.Unit tested with a Unit Test Plan (UTP)

           Unit testing is testing of smallest testable part of the software. It can be an individual program or a group of programs, forming a unit. The definition of  ‘unit’ can be left to the project team. In some cases one single program can be considered as a unit or in some other cases, a set of related programs can be considered as a
unit. This discretion can be left to individual project teams. In some cases it is also referred as component
testing.

             It is very important that unit testing needs to be carried out with a help of a unit test plan. Note that this unit test plan should have been prepared during the detail design stage and not after coding! The reason behind it is that if you prepare a unit test plan based on your code, any defect in the code will creep into the unit test plan too defeating the very purpose of unit testing

Three Tier Architecture

In three-tier client/server, the processing is divided between two or more servers, one typically used for
application processing and another for database processing.This is common in large enterprises.
It decomposes an application into three sets of services: UI, business, and data. In this architecture UI resides in
Client, business logic resides in business logic server and data in database server.

A three-tier architecture introduces a server (or an "agent") between the client and the server. The role of the
agent is manifold.It can provide translation services (as in adapting a legacy application on a mainframe to a
client/server environment), metering services (as in acting as a transaction monitor to limit the number of
simultaneous requests to a given server), or intelligent agent services (as in mapping a request to a number of
different servers, collating the results, and returning a single response to the client).

What is two tier architecture ?

A two-tier architecture is where a client talks directly to a server, with no intervening server. It is typically used in
small environments.

For example you may have a database talking to a thick client machine

When automation is prefferred ?

Complex and time-consuming tests
  • Tests requiring a great deal of precision
  • Tests involving many simple,repetitive tests
  • Tests involving many data combination

What is alpha and Beta testing?

  • Forms of Acceptance testing .
  • Testing in the production environment
  • Alpha testing is performed by end users within a company but outside development group
  • Beta testing is performed by a sub-set of actual customers outside the company

What is Sanity Testing?

Sanity Testing Is a type functional system testing with
  • Very basic minimal number of tests to verify the product for the feature / protocol compliance
  • Typically an initial testing effort to determine if a new software version is performing well enough to accept it for a major testing effort

What are drivers?

Drivers are simple programs designed specifically for testing the calls to lower layers.Test drivers permit generation of data in external form to be entered automatically into the system.

What is a stub?

Stubs are pieces of code which have the same interface as the low level functionality.
They do not perform any real computation or data manipulation

Tuesday, September 28, 2010

Integration Testing Explained

Once the Unit Testing is complete, the modules are integrated together and testing done to check if the integration is seamless is called Integration Testing. This may again be done by the developers themselves or independently amongst them. Integration between modules / systems can happen in different ways:

1. Program-to-program integration (Intra-module interface)
2. Module (set of programs)-to-module integration (Inter-module interface)
3. System-to-system integration (External interface)

What Is Integration Testing ?

Integration Testing
• Combining and testing multiple components together
• Integration of modules, programs and functions
• Tests Internal Program interfaces
• Tests External interfaces for modules

What consitutes system testing?

Interface Testing – Focusing on the client application
Server Testing – To test the attribute of the server
Middleware Testing – To assure that middleware is capable to interact all the machines connected in the network
Network Testing – to check if the network is capable of load of the application

These are the types of system testing.

Monday, September 27, 2010

What is a test oracle ?

An oracle is a mechanism used by software testers and software engineers for determining whether a test has passed or failed.[1] It is used by comparing the output(s) of the system under test, for a given test case input, to the outputs that the oracle determines that product should have. Oracles are always separate from the system under test.

Common oracles include:

* specifications and documentation
* other products (for instance, an oracle for a software program might be a second program that uses a different algorithm to evaluate the same mathematical expression as the product under test)
* an heuristic oracle that provides approximate results or exact results for a set of a few test inputs,
* a statistical oracle that uses statistical characteristics,
* a consistency oracle that compares the results of one test execution to another for similarity,
* a model-based oracle that uses the same model to generate and verify system behavior
* or a human being's judgment (i.e. does the program "seem" to the user to do the correct thing?).

What is equivalence partitioning ?

Systematic process of identifying a set of input conditions to be tested.The two distinct steps involved:
  • Identify equivalence classes
  • Identify test cases
Equivalence Partitioning technique is used to reduce the no. of test cases to an optimum no. and to select the right kind of test cases to encompass the maximum coverage.Though in very rare cases this technique is also applied to outputs of a component,typically it is applied to the inputs of a tested component.

V-Model For Testing

What is Black Box Testing ?

Black box testing is derived from functional design specifications, without regard to the internal program structure. This test is done without any internal knowledge of system / product being tested. Functional tests examine the observable behavior of software as evidenced by its outputs, without any reference to internal functions. This is the essence of  ‘black box’ testing.

• Black box tests better attack the quality target. It is an advantage to create the quality criteria from this point of view from the beginning.

• In black box testing, software is exercised over a full range of inputs and the outputs are observed for correctness. How those outputs are achieved, or what is inside the box are immaterial.

• Black Box testing technique can be applied once unit and integration testing is completed i.e. each line code has been covered through white-box testing

Explain Static Testing

In Static Testing, the requirement specification, design, code or any document may be inspected and reviewed against a stated requirement and for some standards against some guideline/checklist. It is part of verification
technique that is not necessarily restricted to testing phase of project lifecycle.


Static Testing includes:

Walk-through: Code reading and inspections with a team

• Reviews: Formal techniques for specification and design, code reading and inspections.

 Guidelines for conducting a code walkthrough:

•Have review meeting chaired by the project manager.            
•The programmer presents his/her work to reviewers.
•The programmers walk through the code in detail, focusing on the logic of the code.
•Reviewer asks to walk through specific test cases.             
•The chair resolves the disagreements if the review team cannot reach agreement among themselves
and assign duties, usually to the programmer, for making specific changes.                                               
•A second walk through is scheduled.

Many studies show that the single most cost-effective defect reduction process is the classic structural test - the
code inspection or walk-through. Code inspection is like proof-reading - it can find the mistakes the author
missed - the "typo's" and logic errors that even the best programmers can produce.

What is dynamic testing ?

The one which involves execution of code is typically done in  ‘dynamic testing’.