Tuesday, 18 October 2011

The Software life cycle

What Manual Testing?
Testing activities performed by people without the help of Software Testing Tools.

What is Software Quality?
It is reasonably bug free delivered on time with in the budget, meets all requirements and it is maintainable.

1. The Software life cycle

All the stages from start to finish that take place when developing a new Software.



·   Feasibility Study
– What exactly is this system supposed to do?
·   Analysis
– Determine and list out the details of the problem.
·   Design
– How will the system solve the problem?
·   Coding
– Translating the design into the actual system.
·   Testing
– Does the system solve the problem?
– Have the requirements been satisfied?
– Does the system work properly in all situations?
·   Maintenance
– Bug fixes

 

  















§  The software life-cycle is a description of the events that occur between the birth and death of a software project inclusively.
§  SDLC is separated into phases (steps, stages)
§  SLDC also determines the order of the phases, and the criteria for transitioning from phase to phase


Change Requests on Requirement Specifications
Why Customer ask Change Requests
§  Different users/customers have different requirements.
§  Requirements get clarified/ known at a later date
§  Changes to business environment
§  Technology changes
§  Misunderstanding of the stated requirements due to lack of domain knowledge
How to Communicate the Change Requests to team
§  Formal indication of Changes to requirements
§  Joint Review Meetings
§  Regular Daily Communication
§  Queries
§  Defects reported by Clients during testing.
§  Client Reviews of SRS, SDD, Test plans etc.
§  Across the corridor/desk (Internal Projects)
§  Presentations/ Demonstrations 
Analyzing the Changes
§  Classification
-        Specific
-        Generic
§  Categorization
-        Bug
-        Enhancement
-        Clarification etc.
§  Impact Analysis
-        Identify the Items that will be effected
-        Time estimations
-        Any other clashes / open issues raised due to this?

Benefits of accepting Change Requests
1.     Direct Benefits
         Facilitates Proper Control and Monitoring
         Metrics Speak for themselves
         You can buy more time.
         You may be able to bill more.
2.     Indirect Benefits:
         Builds Customer Confidence.
What can be done if the requirements are changing continuously?
§  Work with project stakeholders early on to understand how the requirements might change. So that alternative test plans and strategies can be worked out in advance.
§  It is helpful if the application initial design has some adaptability. So that later changes do not require redoing the application from scratch.
§  If the code is well commented and well documented. Then it is easy to make changes for developers.
§  Use rapid prototyping whenever possible to help customers feel sure of their requirements and minimize changes.
§  Negotiate to allow only easily-implemented new requirements into the project, while moving more difficult new requirements into future versions of the application.


1.1 Feasibility Study:







                 












The feasibility report

§   BRS (Business Requirement Document) 
§   Applications areas to be considered (Stock control, banking, Accounts etc)
§   System investigations and  System requirements for each application
§   Cost estimates
§   Timescale for implementation
§   Expected benefits

1.2 Systems Analysis:






  • The process of identifying problems, resources opportunities, requirements and constraints
  • System analysis is the process of investigating a business with a view to determining how best to manage the various procedures and information processing tasks that it involves.


1.2.1 The Systems Analyst

  Performs the investigation and might recommend the use    
    of a computer to improve the efficiency of the
    information system.

1.2.2 Systems Analysis

  The intention to determine how well a business copes 
    with its current information processing needs
  Whether it is possible to improve the procedures in order
    to make it more efficient or profitable.
                                                                
                                                          The (BRS, FRS and SRS) Documents Bridge the communication                                                                     
                                                           Gap between the client, user, developer and Tester                          
                                                                  

 


 The System Analysis Report
§   SRS(Software Requirement Specification)
§   Use Cases( User action and system Response)
§   FRS(Functional Requirement Document) Or Functional specifications
§   [These 3 are the Base documents for writing Test Cases]  
§   Documenting the results
¨      Systems flow charts
¨      Data flow diagrams
¨      Organization charts
¨      Report
Note
¨      FRS contains Input, Output, process but no format.
¨      Use Cases contains user action and system response with fixed format. 

 
 












































1.3 Systems Design:

The business of finding a way to meet the functional requirements  within the specified constraints  using the available technology

§  Planning the structure of the information system to be implemented.
§  Systems analysis determines what the system should do
§  Design determines how it should be done.

























System Design Report consist of
  • Architectural Design
  • Database Design
  • Interface Design     
Design Phases
¨      High Level Design
¨      Low Level Design

High Level Design
1.     List of modules and a brief description of each
2.     Brief functionality of each module
3.     Interface relationship among modules
4.     Dependencies between modules
5.     Database tables identified with key elements
6.     Overall architecture diagrams along with technology details
Low Level Design
  1. Detailed functional logic of the module, in pseudo code
  2. Database tables, with all elements, including their type and size
  3. All interface details
  4. All dependency issues
  5. Error MSG listing
  6. Complete input and output format of a module

Note: HLD and LLD phases put together called Design phase

1.4 Coding:

 










                                        



Coding Report
§   All the programs, Functions, Reports that  related to System
 
 




1.5 Testing:


      1.5.1 What Is Software Testing?
  • IEEE Terminology: An examination of the behavior of the program by executing on sample data sets.
  • Testing is Executing a program with an intention of finding defects
  • Testing is executing a program with an indent  of finding  Error/Fault and Failure.
            Fault : It is a condition that causes the software to fail to perform its
                         required function.
            Error : Refers to difference between Actual Output and Expected
                        output.
F F       Failure : It is the inability of a system or component to perform
                            required function  according to its specification
 











                          







. 
IEEE Definitions
§  Failure: External behavior is incorrect
§  Fault: Discrepancy in code that causes a failure.
§  Error: Human mistake that caused fault
Note:
§  Error is terminology of Developer
§  Bug is terminology of Tester             
W

No comments: