Thursday 3 November 2011

Software Testing

Software Testing
Testing is the process of exercising or evaluating a system or a system components by manual or automated means to verify that it satisfies specified requirement.
                                           or
To detect the difference between existing and required condition is called testing
                                           or   
Testing is the process of executing a program with the intent of finding errors.
                                                             (Or)
Verifying and validating the application with respect to customer requirements.
                                                              (Or)
Finding the differences between customer expected and actual values.
Quality
Quality is defined as not only the justification of the requirement but also the present of value (user friendly).
·         IT’s view of quality software means meeting requirements.
·         User’s of software view of quality software means fit for use.


Why do we Test Software?
·         To produce a quality product, which is defect free, and also to make sure all the requirements are satisfied and the best design system architecture is used.
·         Customers/user satisfaction (customers are the king).
·         To make sure the software is:
Ø  Correct
Ø  Reliable
Ø  Portable
Ø  Efficient
Ø  Interoperable
Ø  Usable
Ø  Maintainable
Ø  Re-usable
Ø  Secure
Ø  Flexible
·         To achieve the goals of an organization as well as to make profit.
·         To reduce the possible risks associated with the software, then reduce the loss, which might happen when/if the software is released with defects included.
                                                                                                                                      
SQA: Software Quality Assurance
The Monitoring & Measuring the strength of development process is called SQA (Software Quality Assurance).


Software Development Life Cycle
It contains 6 phases.
Ø    Initial phase / Requirement phase.
Ø    Analysis phase.
Ø    Design phase.
Ø    Coding phase.
Ø    Testing phase.
Ø    Delivery and maintenance phase.

 

 

Initial Phase

Task:                Interacting with the customer and gathering the requirements.

Roles:              BA (Business Annalist)

                        EM (Engagement Manager)
Process:                   First of all the business analyst will take an appointment from the customer, collects the templates from the company meats the customer on the appointed date gathers the requirements with the support of the templates and comeback to the company with a requirements documents. Then the engagement manager will check for the extra requirements if at all he fined any extra requirements he is responsible for the excess cast of the project. The engagement manager is also responsible for prototype demonstration in case of confused requirements.
Template:                   It is defined as a pre-defined format with pre-defined fields used for preparing a document perfectly.
Prototype: 
                   It is a rough and rapidly developed model used for demonstrating to the client in order to gather clear requirements and to win the confidence of a customer.

Proof:

                        The proof of this phase is requirements document which is also called with the following name

FRS         -  (Functional Requirement Specification)
BRS         -  (Business Requirement Specification)
CRS         -  (Client/Customer Requirement Specification)
URS         -  (User Requirement Specification)
BDD        -  (Business Design Document)
BD           -  (Business Document)

Note:               Some company’s may the over all information in one document called as ‘BRS’ and the detailed information in other document called ‘FRS’. But most of the company’s will maintain both of information in a single document.

 

Analysis  Phase:

Task:               Feasibility study.

                        Tentative planning.
                        Technology selection.
                        Requirement A\analysis.

Roles:              System Analyst  (SA)

                        Project Manager (PM)
                        Team Manager   (TM)
 Process:
 Feasibility study:
It is detailed study of the requirements in order    to check whether all the requirements are possible are not.
Tentative planning:

The resource planning and time planning is temporary done in this   section.

(I)      Technology selection:

The lists of all the technologies that are to be used to accomplish the project successfully will be   analyzed listed out hear in this section.

(IV) Requirement analysis:

The list of all the requirements like human resources, hardware, software required to accomplish this project successfully will be clearly analyzed and listed out hear in this section.
Proof:    The proof of this phase is SRC (Software Requirement Specification).
Design phase

Tasks:              HLD (High Level Designing)                        

                        LLD (Low Level   Designing)

Roles:              HLD is done by the CA (Chief Architect).

                        LLD is done by the TL  (Technical Lead).

Process:   The chief architect will divided the whole project into modules by drawing some diagrams and technical lead will divided each module into sub modules by drawing some diagrams using UML (Unified Modeling Language).

The technical lead will also prepare the PSEUDO Code.
Proof:          The proof of this phase is technical design document (TDD).

Pseudo Code:      It is a set of English instructions used for guiding the developer to develop the actual code easily.

Module:       Module is defined as a group of related functionalities to perform a major task.


Coding Phase

Task:     Programming / Coding.

Roles:    Developers / Programmers.

Process:  Developers will develop the actual source code by using the PSUEDO Code and following the coding standards like proper indentation, color-coding, proper commenting and etc…

Proof:     The proof of this phase is SCD (Source Code Document).
Testing Phase
Task:  Testing.
Roles:     Test Engineer.

Process:  First of all the Test Engineer will receive the requirement documents and review it for under studying the requirements.

        If at all they get any doubts while understanding the requirements they will prepare the Review Report (RR) with all the list of doubts.
      Once the clarifications are given and after understanding the requirements clearly they will take the test case template and write the test cases.
      Once the build is released they will execute the test cases.
      After executions if at all find any defects then they will list out them in a defect profile document.
      Then they will send defect profile to the developers and wait for the next build.
      Once the next build is released they will once again execute the test cases
      If they find any defects they will follow the above procedure again and again till the product is defect free.
      Once they feel product is defect free they will stop the process.
Proof:                   The proof of this phase is Quality Product.
Test case:        Test case is an idea of a Test Engineer based on the requirement to test a particular feature.
Delivery and Maintenance phase
Delivery
Task:        Installing application in the client environment.
Roles:       Senior Test Engineers / Deployment Engineer.

Process:  The senior test engineers are deployment engineer will go to the client place and install the application into the client environment with the help of guidelines provided in the deployment document.

Maintenance:
               After the delivery if at all any problem occur then that will become a task based on the problem the corresponding roll will be appointed. Based on the problem role will define the process and solve the problem.



No comments:

Post a Comment