Saturday, December 3, 2011

SDLC PHASES notes by Lokre !!

PRODUCT - > May be Generic

PROJECT -> May be Bespoke/Custom/COTS (Commercial of the Shell)

PRODUCT: Developed based on manufacturer’s Specification and used by multiple/many users.

PROJECT: Developed based on Customer’s Specification and used by particular Customers.


S/W Process: The set of activities whose goal is to develop a application or Evaluation of Software.








PHASES & ROLES


1. REQUIREMENT PHASE -- >
Role: Business Analyst (CRS/BRS->Customer/Business Requirement Specifications)

KICK- OFF MEETING
Project Manager sends initiation note to CEO.


TASK OF THE ENGAGEMENT MANAGER

i. Deals with the excess cost of the project.
ii. Responsible for Prototype demonstration

Protype - It is roughly & rapidly developed model.

Input Document-> BRS





2.ANALYSIS -- >
Role: System Analyst/Project Manager/Team managers.

TASK:


FEASIBILITY STUDY:
A Detailed study of requirements in order to check whether they are feasible or not.

TENTATIVE PLANNING:
The Resources as well as time temporarily planned. (Fixing Target date to accomplish project)


TECHNOLOGY SELCTION:
What are all the technologies that are required for accomplish given project successfully.


REQUIREMET ANALYSIS:
The Requirements that are required to accomplish the project successfully.



Output  SRS/FRS Document (System/Functions Requirement Specification). This document contains functional requirements to be developed and system requirements to be used)

What makes a Good SRS?

Environment of S/W
Project requirements in SRS
Protyping Demonstration

Characteristics/ Features of SRS:

1. Independent
2. Easy to Validate
3. Verifiable
4. Complete
5. Consistent
6. Traceable
7. Modifiable







3. DESIGN

Role: Chief Architect/ Technical Lead

They convert all the requirements into well defined Modules.

TASK

They are doing this design in 2 ways:

1. HLD – High level Design (The overall view of S/w from root functionality to leaf functionality.)
The Process of dividing modules usually done by Chief Architect.
This design is also called as “EXTERNAL DESIGN/ARCHITECTURAL DESIGN”.


2. LLD – Low level Design
The Process of dividing modules into sub-modules in order to check internal logic of each program structure. This is usually done by Technical Lead’s

This design is also called as “INTERNAL DESIGN/DETAILED DESIGN”.

It contains some data flow diagrams and Psuedo Code.
http://en.wikipedia.org/wiki/Data_flow_diagram

Output  TDD (Technical Design Document)
TDD->Flow Diagrams + Psuedo Code




4. CODING/DEVELOPMENT/IMPLEMENTAION-

Role: Developers

TASK:

The Programmers/Developers write coding with respect to customer specified technology.

Developers are using pseudo code & following coding standards, proper indentation(Eg. Alignments while designing web page username/pwd field.) And color coding etc..

Output Source code Document/Application





5. TESTING

Role: Test Engineers/Testers

TASK:

The testers detecting the defects from the application.

Process:

Prepare the Review Report

After understanding all the requirements clearly testers take test case template and write test cases.

After receiving a s/w build or application from developers. Testers will execute all the test cases on that application.

If they find any defects, they will report to the developer. After receiving modified build, then again testers will check for side effects. This method will repeats/continues till defect free product comes.

Output Application or Quality Product





6. RELEASE & MAINTENANCE


Role: Deployment Engineer/Senior Test Engineer

TASK:

Release the software to customer.

Process:

The Deployment engineer will display the application into the client environment following the guide lines given in the deployment document.

Maintenance

After releasing S/W, if at all any problem during the utilization of S/W, then that problem become a task for maintenance team.

Depending upon that problem the corresponding team/role will be appointed and he defines the process based on the issue and resolves it.



Thursday, December 1, 2011

LEVELS OF TESTING - Lokre !!



NOTE : CLICK ON IMAGES FOR LARGE VIEW.

LEVELS OF TESTING




I) UNIT TESTING

In this phase, the programmers check the internal logic of each program structured by using White Box Techniques (WBT) techniques.

II) INTEGRATION TESTING

After Unit testing, the programmers integrate all the individual modules to make it has a complete software or Application.

They are following below approaches to integrate all the modules that are completed.


TOP-DOWN APPROACH




In this approach testing is conducted from main module to sub module. if the sub module is not developed a temporary program called STUB is used for simulate the sub module. STUB is also known as CALLED program.











BOTTOM-UP APPROACH






In this approach testing is conducted from sub module to main module, if the main module is not developed a temporary program called DRIVERS is used to simulate the main module. This Driver is also known as CALLING program.










BI-DIRECTIONAL (Or) SANDWICH (Or) HYBRID APPROACH

Combination of Top down and Bottom up Approach.


SYSTEM APPROACH (Or) BIG-BANG THEORY

Grouping all the main and sub modules to make it as complete software or Application.





III) SYSTEM TESTING:

After Integration testing the developers delivers the Software build to the testers to detect the defects. Such a Software build is called as “AUT”.

AUT  APPLICATION UNDER TEST.

Then the test engineers apply system testing on AUT in 3-ways:

1. USABILITY TESTING
2. FUNCTIONAL TESTING
3. NON- FUNCTIOANL TESTING



USABILITY TESTING

1. USER INTERFACE TESTING Or COSMETIC TESTING
2. MANUAL SUPPORT


USER INTERFACE TESTING  Look & Feel (Attractiveness)
 Easy to Use (Understandable)
 Speed in Interface (Short Navigation)



The purpose of Functional & Non Functional Testing is to check the
Requirements
Correctness
Completeness


After completion of User Interface Testing on every screen of our application. The test engineers concentrate on requirements, Correctness and Completeness by using BBT (Black Box Testing) techniques.


WHAT IS BBT TECHNIQUES?


1. Boundary Value Analysis (BVA)
2. Equivalence Class Partition(ECP)
3. Error Guessing
4. Decision Table
5. State Transition Diagram



Functional Test is done in 2 – ways:

1. Functionality Testing
2. Sanitation Testing

Functionality Testing:

In general test engineers start functional testing with functionality testing by following below approaches.

1. GUI Coverage/ Behavioral Coverage

The Valid Changes in the properties of objects in a window.

2. Error handling

The Prevention of wrong operations with meaningful errors.

3. Input Domain Coverage

The range & type of input in terms of VALID/INVALID

4. Manipulation Coverage

The Correctness of existing output.

5. Order of Functionality – Eg) TAB BUTTON

The Correctness of existing order with respect to customer requirement.

6. Database Coverage/Backend Coverage

The impact of front end screen operations on backend table content.






SANITATION TESTING

During this testing, the testers are finding extra functionalities which are not in customers specifications/BRS.

This Testing is also called as “GARBAGE TESTING”

Eg)

User Name Field
Password Field

Ok button Submit button

In the above example, there is no need of extra button called Submit or OK..



NON – FUNCTIONAL TESTING:

After completing of functional testing, the test engineers concentrate on Non-Functional testing. It is also an important testing phase in system testing.

But, It is very complex to conduct and it is expensive.

1. Platform Independent
2. Reliable/Scalability.





3. Compatibility/Portability.
4. Installation/Uninstallation.
5. Data Volume(Storage Testing)
6. Performance -> Load (How many concurrent users are using) Stress, Efficiency.
7. Security (For Authentication) – Eg. Encryption and Decryption.

Encryption -- @#$njg$#$#
Decryption -- ABCDEF




IV) UAT (USER ACCEPTANCE TESTING)

After system testing, the software developers concentrate on UAT in 2-ways:

(α)Testing (Alpha-Testing)  During this testing, the developers invites the customer to organization/firm & conducts training sessions & get the feedback.

(β) Testing (Beta-Testing)  During this testing, the developers or responsible team will go to customer place and they will explain about the product and get the feedback.