Artifacts & Defects


Test Artifacts comparises

  • Test  Plan
  • Test Case
  • Test Script
  • Test Data
  • Test Suite
  • Test Harness
  • Test Report


Test Defects

  • Defects
  • Defect Severity
  • Defect Probability
  • Defect Priority
  • Defect Life Cycle
  • Defect Report

A software Test Plan is a document describing the testing scope and activities. It is the basis for formally testing any software /product in a project.

Test plan is a document describing the scope,approach,resource and schedule of intended test activities.  It identifies amongst others test items, the features to be tested, the testing tasks, who will do each task, degree of tester independence, the test environment, the test design techniques and entry and exit criteria to be used, and the rationale for their choice, any risks requiring contingency planning. It is a record of the test planning process.

  • Master test plan: A test plan that typically addresses multiple test levels.
  • Phase test plan: A test plan that typically addresses one test phase.

 

Reference:  http://www.softwaretestingfundamentals.com/defect/

 

Defect management video :

Test Techniques


There are following three type of testing.

Black box Testing: Involves testing of functional part of the application. This is generally conducted by the testing analyst. For conducting black box testing, tester need not have any formal structural knowledge of the code.

Black box testing, also called  functional testing and behavioral testing, focuses on determining whether or not a program does what it is supposed to do based on its functional requirements. Black box testing attempts to find errors in the external behavior of the code in the following:

 (1) incorrect or missing functionality;

 (2) interface errors;

 (3) errors in data structures used by interfaces;

 (4) behavior or performance errors;   and (5) initialization and termination errors.

Through this testing, we can determine if the functions appear to work according to specifications.

However, it is important to note that no amount of testing can unequivocally demonstrate

the absence of errors and defects in your code.

It is best if the person who plans and executes black box tests is not the programmer of  the code and does not know anything about the structure of the code. The programmers of the code are innately biased and are likely to test that the program does what they programmed it to do.

As a result, most organizations have independent testing groups to perform black box testing.

These testers are not the developers and are often referred to as third-party testers. Testers should just be able to understand and specify what the desired output should be for a given input into the program.

Blackbox

Blackbox

 A black box testing takes into account only and output of the software without regard to the internal code of the program

 

White Box testing

White Box testing

White box Testing: known as glass box testing or sometimes clear box testing. This involves testing on the structural part of the application. for performing white box testing, in-depth knowledge of the code is essential, hence generally the code developers do this type of testing.

Gray box Testing: this involves testing of functional part as well as the structural part of the application. for performing gray box testing, knowledge of the code is required, hence experienced testers having good knowledge of code development are best suited for performing gray box testing.

It is the combination of black box and white box testing, the intention of this  tesing  is to find out defects related to bad design or bad implementation of the system.

Read more – >

Test Classification


There are numerous types of testing , howerver in the parlance of Software Testing following  five classes have been defined and practiced by the software testing community.

  • Methodology
  • Conventions
  • Level
  • Technique
  • Intent

A brief description of the same is as under:

A)   Methodologies wise there are two ways of  Software Testing

  1. Manual Testing
  2. Automated Testing

Manual Testing is a process in which all the phase of software testing life Cycle like Test Planning, Test Development. Test Execution, Result Analysis, Bug Tracking and Reporting are accomplished till successful completion by manual means i.e with human efforts.

There are few drawbacks of Manual Testing such as

  • More people are required
  • It is more time consuming
  • It renders less accuracy
  • It is strenuous
  • Simultaneous actions are difficult
  • Repetitive tasks are difficult to perform

Automation Testing is a process in which majority of drawbacks of manual testing gets addressed properly and it provided speed and accuracy to the existing testing phase.

It must be remembered that automation testing is not a replacement for manual testing. It is in fact a continuation of manual testing aimed to provide speed and accuracy to the testing effort.

Automation testing primarily uses an automation tool, which is assistance to the test engineers. An automation tool works on the basis of instructions and information.

  • Functional tool  (like Hp quickest, IBM RFT)
  • Management tool  (like HP quality center)
  • Peformance tool ( like Load Runner & WinRunner)

The are few drawbacks of Automation Testing : Such as

  • More expensive
  • We can not automate all the areas
  • Manual testing can not be fully eliminated

B) Conventionally there are following two types of testing.

 SOAP testing Tools

Unconventional testing : It is a sort of testing in which quality assurance engineer checks each out come deocument right from the initial phase of the SDLC.

Conventional testing : It is a sort of testig in which the testing engineer tests the application in the testing phase of SDLC.

C) Levels of testing:

  • Unit Level Testing : refer to the testing carried out on small software units.  This is a type of white box testing genenally proformed by the code developers.
  • Module level testing refers tot he testing carried out on a module.  This is a type  of  black box testing generally performed by the test engineers.
  • Integration level testing : during the process of developement, lot many modules are developed along with their respective interfaces, which are used for integrating these modules.     While integration the developers checks and ensure the perfect working of all such interfaces. This falls under the category of  white box testing.
  • System level testing: performed on the application after its development in its actual environment is termed as system level testing. This fall under the category of black box testing. 

                1.    System  integration Testing       2. Load Testing     3. Perfomance testing      4. Stress Testing

  •  User acceptance level testing :  it is nothing but a system level testing with the only difference that it is carried out in the presence of the user.  It falls under the category of black box testing generally conducted by the Testing Engineer.

D) Technique, there are following three type of testing.

  • Black box Testing: Involves testing of functional part of the application.  This is generally conducted by the testing  analyst.  For conducting black box testing, tester need not have any formal structural knowledge of the code.
  • White box Testing: known as glass box testing or sometimes clear box testing.  This involves testing on the structural part of the application.  for performing white box testing, in-depth knowledge of the code is essential, hence generally the code developers do this type of testing.
  • Gray box Testing: this involves testing of functional part as well as the structural part of the application.  for performing gray box testing, knowledge of the code is required, hence experienced testers having good knowledge of code development are best suited for performing gray box testing,

E)  Intent Wise there are the following four types of testing

  • Acceptance Testing
  • Performance Testing
  • Loading Testing
  • Regression Testing

 

Test Models


There are many models used in software testing;

Definitions of these models will differ, however the fundamental principle are agreed on by experts and practitioners alike.

Verification and validation (V&V), the V-Model and briefly discuss a Rapid Application Development (RAD) approach to testing.

V&V – Verification is defined by BS7925 as the process of evaluating a system or component to determine whether the products of the given development phase satisfy the conditions imposed at the start of that phase i.e have we built the correct product?

Validation and verification : Software testing can be defined as ‘a process of execution a computer program and comparing the actual behaviour with the expected behaviour’.

There are many models used to describe the sequence of activities that make a Systems Development Life Cycle (SDLC) is used to described activities of both development and maintenance work.

Three models are worth mentioning.

  • Sequential – the traditional waterfall model
  • Incremental – the function incremental model
  • Spiral- the incremental, iterative, evolutionary, Rapid Application Development, prototype  model

I am concentating on three test models

  • Water Fall Model
  • V Model
  • Agile Model

There are other methodology like :

  • Clean Room  Model
  • Iterative
  • RAD
  • RUP
  • Spiral
  • TDD   (Test-driven development)

Read more ->

VIDEO

Integration Testing


Is a level of  the software testing process where individual units are combined and tested as a group.

The purpose of this level of testing is to expose faults in the interaction between integrated units.

It occur after unit testing and before validation testing, the purpose of integration testing is to verify functional, performance, and reliability requirement placed on major design items.

Test drivers and test stubs are used to assist in integration Testing.

Note: The definition of a unit a debatable and it could mean any of  the following:

  1. the smallest testable part of a software
  2. a ‘module’ which could consist of many of ‘1’
  3. a ‘component’ which could consist of many of  ‘2’

Integration testing definition, Analogy, Method, Tasks, Details, Approaches, Tips:

The purpose of integration testing is to  detect any inconsistencies between the software units that are integrated together called ‘assemblages’