Pages

Friday, 16 August 2013

Software Testing

                                              
Þ Why did you choose this Course?

*          1. Scope of getting job is very high.
            2. No need to depend up on any technologies.
3. Testing remains forever
4. I want to be consistent through out my life

ÞWhy explicitly the s/w companies are recruited the test engineers?

  1. One person cannot efficiently perform two tasks at a time
  2. Sentimental attachment.

ÞWho can do the course?

   Any graduate can do this course at this point of time

Þ What exactly we require to get a job?
1.    Stuff
2.    Communication skills
3.    Confidence
4.    Dynamism

Þ Project:

      Project is some thing that is developed based on the particular customers requirements and used by that customer only ( E.g.: Marriage laddu)


ÞProduct:
            It is some thing that is developed based on the companies specification and used by the multiple customers  (e.g.: Thirupathi laddu)
ÞQuality:

Classical definition for quality: - Quality is defined as justification of all the requirements of customer in a product.
NOTE: Quality is not defined in the product; it is defined in the customers mind

Defect: - Defect is defined as deviation from the requirements

Latest definition for quality: - quality is defined as not only the justification of requirements but also the presence of value (User friendliness)
Þ Testing:
            Testing is processes, in which the defects are identified, isolated, subjected for rectification & ensure that the product is defect free. In order to produce the quality product in the end and hence customer satisfaction.



Þ Software Development Life Cycle (SDLC):-
            SDLC contains six phases they are
1.      Initial phase or requirements phase.
2.      Analysis phase
3.      Design phase
4.      Coding Phase
5.      Testing Phase
6.      Delivery & Maintenance Phase.                                                     
I. Initial Phase or Requirements Phase :
(a) Tasks: Interaction with the customer and gathering the requirements.
(b) Roles: Business Analyst (B.A), Engagement Manager (E.M)
ÞProcess: First of all the business analyst will take an appointment from the customer, collects the templates from the company, meets the customer on appointed day, gathers the requirements with the help of template and comes back to the company with the requirements documents.
                        Once the requirement document has come to the company the engagement manager will check whether the customer gives any extra requirements or confused requirements. In case of extra requirements he deals the excess cost of the project. In case of confused requirements he is the responsible for prototype demonstration and gathering the clear requirements.
ÞProof: The proof document of this phase is Requirements Document. This is called with different names in different companies.
1.      FRS (Functional Requirements Specification)
2.      CRS (Customer Requirement Specification)
3.      URS (User Requirement Specification)
4.      BDD (Business Design Document)
5.      BD (Business Document)
6.      BRS (Business Requirement Specification)
Some companies may maintain the over all business flow information in one document and the detailed functional requirement information in the other document
ÞTemplates: It is a pre defined format, which contains the predefined fields, and used for preparing a document in an easy, comfort and perfect manner.
ÞPrototype: -Defined as a roughly & Rapidly developed model which is used for demonstrating to the client, In order to gather the clear requirements and to win the confidence of a customer.
II.     Analysis Phase:
(a) Tasks:
                                                       1.Feasibilty Study
2.Tentative planning
  1. Technology Selection
  2. Requirement Analysis
(b) Roles: System Analyst, Project Manager, and Team Manager.
Process
  1. Feasibility Study: - It is detailed study of the requirements in order to check weather the requirements are possible or not.
  2. Tentative Planning: In this section the resource planning and the time planning (scheduling) is done temporarily.
  3. Technology Selection: - The list of all the technologies that are required to accomplish this project. Successfully will be analyzed and listed out in this section.
  4. Requirement Analysis: - The list of all the requirements that are required to accomplish this project. Successfully will be analyzed and listed out here in this section.
 SRC- System requirement specification

Proof: - The proof of this phase is system Requirement specification.
III.    Design Phase: -
Tasks:
1.      High level designing
2.      Low level designing
Roles: High-level designing is done by the chief Architect & Low level designing is done by the Technical Lead
Process: The Chief architect will be drawing some diagrams using unified modeling language in order to divide the whole project in to modules.
            The Technical lead will also draw some diagrams in order to divide the modules in to sub modules.
            The technical lead will also develop the PSEUDO code in order to make developers comfortable while de3veloping the actual code.
Proof: The proof document of this phase is Technical design document.
IV.     Coding phase:
(a) Task:  Developing or Programming
(b) Roles: Developers or Programmers
Process: Developers will develop the actual code by using the technical design document as well as following the coding standards like Proper indentation, color coding, proper commenting and etc..,
Proof: The proof document of this phase is source code Document.
E.g.: The programmer will develop some programs every one will develop his program in different colors but the soft ware companies will ask the developers to develop the program according to the company standards using proper color, coding, commenting. So as to understand it easily.
V.        Testing Phase:
(a) Task: Testing
(b) Roles: Test engineers
Process:
1.      First of all the test engineers will collect the requirements document and try to understand all the requirements
2.      While understanding it at all they get any doubts they will list out all of them in a review report.
3.      They will send the review report to the author of the requirements document for clarifications.
4.      Once the clarifications are given and after understanding all the requirements clearly, they will take the test case template and writes the test cases.
5.      Once the first build is released then they will execute the test cases
6.      If at all any defects are found. They will list out all of them in a defect profile template then
7.      They will sent the defect profile document to the development department and then will be waiting for the next build to be released.
8.      Once the next build is released then they re-execute the test cases.
9.      If at all any defects are found they will update the profile document and sent it to the development department and will be waiting fro the next build to be released .
10.  This process continuous till the product is defect free.
Proof: The proof of the testing phase is Quality Product.

ÞTest Case: (def) Test case is an idea of a test engineer based on the customer’s requirements in order to test a particular feature or a function.




VI.      Delivery & Maintenance Phase:
 Delivery:
(a) Task: - Installing the application in the client’s environment
(b) Rolls: -Deployment engineer or Senior test engineers.
Process: - The senior test engineer or deployment engineer will be going to the clients place and install the application in their environment with the help of the guidelines provide in the deployment document.
Maintenance:
                      After delivering the soft wate while using if at all any problem  occurs then that problem becomes a task, based on that problem corresponding rolws will be appointed, the roles will defined the process and solve that problem.
          Some clients may request for the continuous maintenance in such situations a group of people from the software company will be continuously working on the clients place and taking care of the soft ware.


************************^^^^^^^^^^^^^^^^^^^************************
ÞWhere exactly the testing comes in to picture?
ÞWhich sort of testing you are expecting?
ÞHow many sorts of testing are there?
Þ There are two sorts of testing….
1.     Un-conventional testing
2.     Conventional testing
1.Un-conventional Testing: -Unconventional testing is a sort of testing done by the quality assurance people, in which they test each and every out come document right from initial phase of the SDLC (Soft ware development life cycle)
2.Conventional Testing: It is sort of testing done by the test engineers on the application in the testing phase of SDLC.



ÞTesting Methodology or Testing techniques:
 There are three methods of testing
                                                                        (a) Black-Box Testing
(b) White-Box Testing
(a)   Grey-Box Testing

(a)   Black-Box Testing: If one performs testing only on the functional part of an application with out having any structural knowledge then tat method of testing is known as Black-Box testing, usually the test engineers perform it.
(b)   White-Box Testing: If one performs testing on the structural part of an application then that method of testing is known as white box testing, usually the developers or white box testers perform it.
(c)    Grey-Box Testing: If one performs testing on both the functional part as well as the structural part of an application then that method of testing as known as gray box testing using the test engineers who have structural knowledge will perform gray- box testing.

ÞLevels of Testing:
There are five levels of testing
1.      Unit Level Testing
2.      Module Level Testing
3.      Integration Level Testing
4.      System Level Testing
5.      User Acceptance Testing (U.A.T)
1.Unit Level Testing: -
            It is a level of testing in which one will perform testing on the units. It is a white box testing and usually developers or white box testers will perform.
2.Module Level Testing: -
Module: Module is defined as a group of related functionalities to perform a major task
It is a level of tasting in which one will perform testing on the modules. It is a black box testing and usually test engineers perform it.

3.Integration Level Testing: -
            It is a level of testing in which the developers will develop some interfaces to integrate the modules and test whether the interfaces are working fine or not. It is  a  white box testing usually developers or white box tasters perform.
            The developers may follow one of the following approaches while integrating the modules.
            1.Top-down approach
            2.Bottom –up approach
            3.Hybrid or Sandwich approach
            4.Bigbang approach
1.Top-down approach: - In this approach one will develop the parent modules first and then integrate them with the related child modules
2.Bottom-up approach: - In this approach one will develop the child modules first and integrate them to the parent modules
3.Hybrid approach Or Sandwich approach:- This is a mixed approach of both the top down and bottom up approaches
4.Big bang approach:-In this approach one will wait till all the modules are ready and finally they will integrate all the modules at a time
ÞSTUB: - While integrating the modules in top down approach if at all any mandatory module is missing then that module is replace with a temporary program known as STUB
ÞDRIVER: -While integrating the modules in bottom up approach. If at all any mandatory module is missing then that module is replaced with a temporary program known as DRIVER
4.System Level Testing: 
            It is a level of testing in which one will install the complete application in to the environment and then perform testing on it. At this level different types of testing will be done one among those is system integration testing.
5.System integration Testing: -
          It is a type of testing in which once the complete application is developed one will perform an action at one module and checks for the reflections at the corresponding modules. It is a black box testing and usually test engineers perform.

6.User- Acceptance Testing: -
          It is the level of testing in which one will perform the same system testing in the presence of the user in order to make him accept the application. It is a black box testing and usually Test engineer performs it.
 Environment: - Environment is a combination of three layers    (e.g.: Yahoo)
a.      Presentation layer
b.      Business layer
c.       Data base Layer