Wednesday, 17 September 2014

Manual Testing class - 01

                                                   MANUAL TESTING

Introduction:

Software:

It is a set of instructions or programs grouped to Performa specific task for the end user.

It is categorized into 2:

A)     System software:

It is Also called as operating system software, which works as an interface between the application and the 
hardware components.
It sets a platform to work with any application software.

Ex: windows, Linux, UNIX, Solaris

B) Application software:

Which is developed to work as an interface between the end user and the database.
 m
Ex: ms office, google, gmail, hotmail, calculator....
                                     
----------------------------------------------------------------------------

Testing:

It is the process of identifying the defects in the software system constructed.

Or

It is a verification and validation process to ensure the completeness and correctness of the system.

Or

It is the process of identifying the unidentified defects the system.

----------------------------------------------------------------------------

Manual testing:

Human interacting with the developed system to check it's completeness and correctness is called as manual
 testing.

Defect:

Is considered as deviation from the expectation (customer requirements)

Any defect identified should be reported to the development team for it's rectification.

Benefits of testing:

1. Will improve the quality of the software that is constructed.

   2. Will improve the customer satisfaction

3. Will reduce the cost and efforts .

------------------------- ---------------------------------------------------

Testing objective:

The objective of testing is to identify the defects in the software system constructed.

Quality:

A software application which is relatively maximum bug free and which is developed in the specified time and 
cost limits and meets the customer expectations, then that software is called as a quality software.

The factors affecting the quality are;





A) meeting the customer requirements or expectation
B) time
C) budget/cost
----------------------------------------------------------------------------

Software engineering:

It is the process of developing/constructing a software application by implementing/following different stages
 is collectively called as software engineering.

Software development life cycle( SDLC ):

It is the collection of various stages in implementing a software application.

It is otherwise called as a general model, which is a

Combination of 6 stages:

1. Requirement collection:

It is Also called as as requirements gathering, where a group of experts will visit the customer's site and analyze
 the business performed and will collect the documents & requirements.

People involved are like project and test analysts or leads

There can be two types of requirements collected and documented.

A) Business Requirements:
It is the collection of all the business processes or business transactions performed.
All the high level activities captured and document along with the business rules framed by the customer is
 called as "business requirement specification"(BRS)

B) Functional Requirements:
These are otherwise called as system or software requirements.

It is a detailed document which describes every individual transaction that is documented in BRS document.

It is consists of all the functional and non functional components that are required in constructing the current 
system.

It can be a combination of flow charts and dataflow diagrams as well as use cases.
All the above would help in understanding the requirements better.

The functional requirements are inputs for any type of an activity performed in constructing the system.

2.     2. Feasibility analysis:
3.      
Feasibility: it is the possibility of implementing/developing the software.

It is Also called as business commit, where the customer and the vendor will commit a business or come to an
 agreement in constructing the software.

As part of business commit, the project managers and the business analyst would be involved in getting the
 base requirements of the business performed by the customer and the project managers would be involved
 in analyzing the

Following things:

A)     Domain:

It is the common set of features or functionalities performed in a business grouped together is called as a 
domain

Ex: banking, finance, retail, telecom, logistics, health care, stock, networking, web, investments...

The study is made on the business performed by the customer.

B) technology:
A detailed technical study is made in analyzing the technology required to implement the software

Ex: programming language and database skills

C,c++,vc++,java, ejbs, struts, .net, asp, along with sql.....

C) resources:
There are three kinds of resources:

I)hardware resources:
The system configurations along with network and server resources, which are required are analyzed.

Ii) software requirements:
The software required to implement the application
Ex: operating system, database
Windows, linux... Oracle, sql server....

Iii) human resources:
The man power required to implement the software is also analyzed with the sufficient experience and the
 technical skills.

D) time and budget:
The total time and the amount of cost that would be incurred in implementing the software.

All the above are analyzed and documented which are considered as project proposals or estimates and would 
be sent to the customer for evaluation.
If customer approves the proposal, then business commit is considered to be completed and the implementation
 phase will be started.

3. Design:

Designing the architecture as well as the interfaces and database is called as design.

This is carried by the design architects, which is done in 2 phases after the requirement collection.

A) HLD ( high level design ) :
It is Also called as architectural design, where the complete application or system architecture is designed.

B) LLD ( low level design ) :
It is Also called as detailed design, where both the interface(user interface), as well as the database 
components are designed.

As part of the interface, the components or the unit in a screen or a page are designed.

As part of back end, the tables required, data types, constraints and relations between the tables are designed.

4. Coding:
It is Also called as implementation phase where the set of instructions or source code is developed based on
 the requirements and the design documents.

This is where the static application is converted to dynamic, it is responsibility of a programmer to develop the
logic(source code)

5. Testing:
After the application is constructed, it should be validated for it's completeness and correctness, and the
 process of doing it is called as testing, where a test engineer, developers, clients, third party people are 
involved.

6. Release and maintenance:
Release:
Is the process of delivering the software constructed and tested to the customer by the vendor for further usage is called as release

This is otherwise called as go-live or production.

Maintenance:
It is the support that is extended by the vendor's team, in helping the customer if customer faces any challenges in accessing the software for a specific time frame as per the
Initial agreement is called as maintenance.

Cost of defect repair graph:

The cost of fixing the defects will be increased stage by stage, if they are identified early the cost is minimal.


Manual Testing class - 02

Development life cycle models or process models:

Based on the customer and the requirements, there can be different approaches in implementing a 
software application, the approach is know as a model. There are several models proposed, and they
 can be categorized into two Types:

A) One iteration model Or Sequential Model:

Where all the stages in SDLC are implemented once.

I) Waterfall model
II) V-model

B) Iterative models Or Incremental Model :

In this all the stages in the SDLC are implemented multiple times in constructing a software application.

I) RAD model
II) Prototype model
III) Spiral model
IV) Agile model

I) One iteration model Or Sequential Model:

1) Waterfall model:

It is Also called as linear sequential model, which was proposed by "royce" in 1970s'

All the stages in waterfall model are independent, every stage will commence only after it's previous 

stage is completed and there is no overlapping between the stages.

Testing starts only after coding is completed.


                  Phases
 Who Involved

Requirements Gathering And Analysis
(BRS , SRS , FRS )


Business Analyst

Planning
(Project Planning & Test Planning )


PM / PL
TM / TL

Design
( HLD & LLD )


System Analyst

Coding
( SW-Application )


Developer

Testing
( Bug Tracking & Reporting )


Test Engineer

Delivery & Maintenance 

Production Support Team



Advantages:
1. It is simple and easy to maintain
2. It is less expensive
3. It Works well if the requirements are static.

Disadvantages:
It will not support large applications and the    dynamic requirements.

2) V-Model

In This Model Also All Implementation Activities Will be Carried out one after Another For the Whole 
Application .This is suitable for small Projects where the requirements are not clear .As the requirements
 are not clear both static testing and Dynamic Testing are applicable for these model Projects.

            As the Flow of Activities Look like a V Shape it is Titled as “V-Model”. 

            V stands For Verification & Validation

Phases

1)    User Requirements
2)    System Requirements
3)    HLD
4)    LLD
5)    Coding
6)    Unit Testing
7)    Integration Testing
8)    System Testing
9)    UAT ( User Acceptance Testing )

Note : 

1)we are Conducting Static Testing on 
User Requirements
SAQ32`                                                                               ystem Requirements
HLD
LLD
2)we are Conducting Dynamic Testing on 
Unit Testing
Integration Testing
System Testing
UAT

II) Iterative models Or Incremental Model:

These Models are Recommended Only For Big Projects , Where the Application Development Will be
 planned Cycle By Cycle.


1) RAD ( Rapid Application Development ) model:

It is also an iterative model, but there would be only one release for all the iterations performed.

This is preferred for large or complex applications which has to be developed in shorter span of time.

The application will be split into modules and all the individual modules will be constructed and tested
 independently for their stability and then grouped(integrated) to form a system.

Advantages:
1. It is used in implementing complex applications in shorter span of time.

Disadvantages:
1. It will not support dynamic requirements
2. It requires lot of human resources in implementation
3. Defects in integration might take lot of efforts and cost to rectify, as there would be lot of 
dependency between the features or modules.

2) Prototype model:

Prototype:
It is structure or the static images or screens which are developed with one or tow features
 implemented.

This is also an iterative model
The prototypes developed by the vendor's team.

After the feasibility and requirement collection, there would be a prototype developed and it should
 be evaluated by the customer, if customer approves the prototype, then actual software will be
 implemented, tested and released to the customer, else the prototype should be redesigned and it 
should be evaluated by the customer again ,
This is a continuous process.

Advantages:

1. Probability of high quality software as there would be customer interaction with the s/w before it is 
constructed.

2. Accepts dynamic requirements.

3. Supports both projects and products.

Project:  If You Develop an S/W  Application According to a Client Requirements That Application is
 Called Project .

Product :  If You Develop a S/W  Application According to Market Requirements That Application is 
Called Product.

Disadvantages:

1. Might be expensive in designing multiple prototypes.
2. Time consuming factor if multiple prototypes have to be designed.

3) Spiral model:

It is an iterative model, which consists of "risk analysis" phase where a detailed study would be
 conducted by the "domain" and "technology" experts, in analyzing the risk in implementing the 
software.

Risk analysis can be done only after the complete requirements are collected and documented.

Risk analysis phase will decide whether to continue with further implementations or not.

Advantages:
1. It supports huge complex and mission Critical projects, in which domain and technical
 implementations are very complex

2. It supports dynamic requirements.

Disadvantages:

1. It is a very huge time consuming and    expensive process.
2. The success rate of the project is completely    dependent on the risk analysis phase.

4)Agile Model or Extreme programming:

In This Model Requirements Will be Given to the Tester First and Later to the Developer. Tester 
Prepare test Prefer ability Automation Test , Soon After a Requirement is Developed. Then test it 
with the help of already Prepared Test Cases immediately . Based on tester feedback Developer 
Modify the Requirements if Needed. Then it will be given to the Customer For User Acceptance Testing.
 
Rules framed for agile process:

A) there should be a build deployed for testing from 1 day to max of 4 weeks.

B) Every single feature implemented should be  tested, if approved only the new    implementation
 should be carried out.

C) team size should be often between 2 to 6

D) the development and test teams should be    closely associated and should be effective    
communication between the teams.

Advantages:
1. Very widely used in products or multiple release applications.
2. Probability of high quality software, due to rigorous testing and effective defect removal at the
 initial stages of the implementation.

Disadvantages:
1. It is tidies job to perform.
2. Very strict deadlines and should be met.
3. No chance of proper documentation, due to    strict targets (dead Lines).
4.