Вы находитесь на странице: 1из 7

Software:

Set of instructions, programs document to perform specific task in system


Software can be categorized into 2 types:
1. System Software:
Also called as BIOs (Basic Input and Output to system)
These are to provide interface among the system components (i.e.System Booting)
Ex: Device Drivers, OS like Windows, Unix, Linuxetc
2. Application software:
Also called as Front-end applications
These are developed based on customer business transactions
In general application software consist front end or User Interface to
manipulate data into Data Base
Application software can be divided into 2 types
i. Project based:
When we develop the application based on specific client
requirements and that should be deliver that particular client only
Ex: www.mindqsystems.com is a project for Mindq client
ii. Product based:
When we develop the application based on standard
requirements/generic requirements for a particular industry
and that can be sells to any customer in the market
Software Development Life Cycle (SDLC)
It describes development process of software project/product to fulfill the client
requirements within the specified cost and time
Following are the phases involved in SDLC:
Requirements Collection:
In this phase Business Analyst (BA) will collect requirements with an
interaction of client and collected requirements will be documented as BRS/URS/
CRS (Business/User/Client requirement specifications)
BRS describes Core business logic or brief description about client business needs
like who are the users for application and required services for those users
After preparation of BRS they perform feasibility study to check project is
acceptable or not, where as BA will play key role in Feasibility study to analyze
following factors
-Finance Feasibility
-Time Feasibility
-Requirements are reliable or not in terms of technology to develop
If project is acceptable then BA will intimate to the client by releasing Request For
Proposal (RFP) and Service Level Agreement (SLA) doc.
Requirements Analysis:
In this phase System Analyst (SA) will study client business needs which are
specified in BRS and then he will prepare Functional Requirement Specification (FRS)
FRS describes detailed functionality of each component in application
Clear FRS is an essential for successful application implementation
Design:
In this phase Design Architect (DA) will study client requirements which are
described in Requirement documents like BRS & FRS
Then initially he will decide architecture of application like windows or Web
based and then he will select required programming or scripting language and DB technology
Following are the documents will prepared by DA:
i. GUI Design Doc:
It contains dummy screens of application to know the future
implementation of application and to understand navigational flow of functionalities
ii. DB Design Doc:
It describes about DB structure like number of Tables in DB, relation
among those table and Rules implemented in DB
iii. Application Design Doc/Technical Design Doc (TDD)
There are 2 types of documents
a. High Level Design Doc(HLD):
It describes number of modules required in application and relation between those modules
b. Low Level Design (LLD):
For each module there will be individual low-level design doc.
It describes internal logic of each module with help of Data-flow
diagrams and Entity-relative diagrams Coding:
In this phase Developers will write the programs using programming or scripting
languages in order to develop the application
Output of this phase is Source code Doc (SCD) Testing:
After coding programs are available for execution
Initially Developers will perform Unit testing and Integration testing using WBT Techniques
After that separate testing team will perform System testing using BBT techniques
Client also will perform UAT/AT
Release & Maintenance: After system testing and UAT client satisfied on our work product then we
can deliver the application for further usage at live environment is called Go-Live/ Production/Release
While using the application client may identify some defects (i.e. Latent
Defects) or he may required some new features in application then he will send
Change Request (CR) to the development company
Change Control Board (CCB) will work on CR based on initial agreements
and then we deliver modified version to the customer
Note: When project is no longer in use that will be end state for SDLC for that project Common Problems in SDLC:
i. Poor Requirements: when requirements are not clear or incomplete
that will be a problem to develop application
ii. Unrealistic Schedule: if too much of work crammed in a too little time that will be a problem
iii. Inadequate Testing: in present scenario it is difficult to estimate how much testing sufficient to validate application
iv. Dynamic changes: if client continuously sending changes in the requirements
v. Miscommunication: lack of communication among the associated
project members like PM, Domain expert, BA, Developers and Testers
When do defects will arise while developing application?
Scenario-1: Right Requirements- Design to meet requirements Coding to
meet Design Right project/Product
Scenario 2: Right Requirements- Design to meet requirements mistakes in
Coding Coding Defect in project/Product
Scenario-3: Right Requirements- Mistakes in Design Coding to meet Design
Design defects in project/Product
Scenario-4: Wrong Requirements- Design to meet requirements Coding to
meet Design Wrong project/Product
Defect Repair cost w. r. to SDLC phases:
SDLC phases Defect Repair cost (%)
Requirements 0%
Design 10%
Coding 30%
Testing 50%
Maintenance 100%
Note: early stages identified defects will take less cost to resolve those defects
compare to later stages identified defects
Note: S/w testing will help to reduce maintenance cost for a project
Quality Management:
It is a process of preventing defects while developing application to ensure there
are no defects in final product
Quality management is divided into 2 parts:
i. Quality Assurance (QA):
QA team is responsible to define development process of application
in order to prevent defects, where they monitor, measure the
strength of development process if any weakness identified then
they provide suggestion to improve the strength of development process
In general QA team members are Domain expert, Tech. Expert, PMetc
ii. Quality Control (QC)
QC team involve after product is built in order to identify any defects
If any defects are identified make sure those defects should be
resolved before deliver application to the customer
In General White Box testers and Black Box testers involved in QC QA QC
It is a process oriented It is a product oriented
It involve throughout the life cycle
It is a defects preventive approach
Reviews, Auditing are the QA
activities (Outcomes )
It involve after product built
It is defects detective approach
s/w testing is an example for QC activity
SDLC Models:
Based on need of customer and complexity of requirements or functionalities we
can adopt any one of the following SDLC model to develop application
1. Waterfall model
2. Prototype Model
3. Spiral model
4. RAD model
5. Fish model
6. V-model
7. Agile Model/Methodology
1. Waterfall model:
It is also called as linear sequential waterfall model
This model is suitable to develop small applications which have the clear
requirements and routine type of projects (i.e. well known infrastructure of application)
In this model for whole system one phase activities are completed then
only we start next phase activities to develop application
This model contains all the SDLC phases like:
Advantages: It is easy to develop the application
Disadvantages:
i. Early stages identifying defects are not possible due to later stage of testing
ii. This model is not suitable to handle dynamic changes in the requirements
2. Prototype Model:
Prototype: it is a sample application without functionality (i.e. Dummy screens)
Prototype model is preferable when requirements are not clear or incomplete to develop application
In this approach based on initial requirements we develop prototypes and
those are presented to the customer to collect feedback based on that we develop application
Advantages:
i. With help of prototypes we can collect complete requirements before actual coding
ii. With help of prototypes client can estimate strength of development team
Disadvantages:
i. Developing prototypes is an additional task for developers and those
cost to be borne by development team only
ii. Prototypes are not reusable
3. Spiral model\Iterative model\evolutionary model:
This model is preferable for research applications and machine criticality
applications which are not possible to estimate successful implementation at early stages
Ex: Aero space related applications
In this model application divided into modules and then one module
successfully implemented then only they will start next module
implementation activities
Advantages:
i. Quality application we can develop
ii. Less resource required
Disadvantage:Time consuming
4. RAD model:
RADRapid Application Development model
This model is preferable when client required application in an extremely
short span of time like 60-90 days
In this approach we use some pre-defined functionality components in our application
Ex: Date field, Status bar, Mobile No. Edit box from ActiveX controls
Advantage: It quick time we can develop application
Disadvantage:Application may not stable in long run
5. V-Model:
V-stands for verification and validation
In this model application developed in sequential approach
This model is suitable for big projects which have the clear requirements
In this model they provided same weight-age for testing w. r. to
Development activities
Advantages:-testing activities will start early stages with development activities
Disadvantage:-this model is not suitable to handle dynamic changes in the requirements
Note: Meeting point in V-model in Coding
Static Testing:
without executing a program or application finding mistakes is called static testing
Dynamic testing:
while executing a program or application finding mistakes is called dynamic
testing
Ex: verify controls spelling correct or not in www.testingtoolsworld.com
application home page (Static testing)
Ex: verify Training link working correctly or not (dynamic Testing)
Verification:
It is a process to check Are we developing product right or not?
Verification is a static testing approach
In general verification performed on Requirement doc., Design doc., Source code, Test casesetc
Verification techniques are:
Peer Review (Informal Meeting)
Walkthrough (semi-informal meeting)
Inspection (formalized meeting)
Validation:
It is a process to check Are we developed right product or not?
It is a dynamic testing approach
In general validation performed on application source code and functionalities
Validation techniques are:
Unit testing
Integration testing
System testingetc
6. Agile model:
In this approach client closely associates with development team to provide his inputs
In this model application developed like incremental approach
Whenever small unit is implemented that will be delivered to testing
team and client to get an approval before they plan for next unit
implementation, if any changes required in previous unit first they perform
those modification before implementation of next unit
In this model deliverables are expected within a week/2-weeks/3 to 4
weeks this type small life cycles called as Sprits or time boxes
In Agile model followed approaches Scrum and Extreme Programming (XP)
Advantages: -this model is suitable to handle dynamic changes in the requirements-high quality application we can produce
Disadvantage: Strict schedules should be followed
Testing Approaches:
1. Exhaustive testing:
Testing the application with all possible combinations is called Exhaustive testing
In present scenario Exhaustive testing is not possible
2. Optimal Testing:
Testing the application with best possible combinations is called Optimal testing In present scenario we prefer Optimal testing only
Testing methodologies:
To achieve the completeness of source code and functionality validation we following testing methodologies to derive best possible test cases
1. White Box testing:
Using programming knowledge validating source code of application is Called WBT
WBT also called as Open Box testing/Clear Box Testing/Glass Box testing/Structural Testing
In general Developers or White Box testers will use following WBT
techniques to derive test cases in order to validate source code of application
-Statements Coverage
-Path or Branch Coverage
2. Black Box Testing:
It is also called as Closed Box testing
Without any programming knowledge validating application functionalities
using requirements knowledge is called BBT
In general separate Testing team will use BBT Techniques to derive test cases
Following are the BBT techniques:
-Boundary Value Analysis
-Equivalence Class Partition
-Error Guessing
WBT BBT
It is structural and Design based testing
It is internal Logic driven testing It is Business Transaction driven
It will provide code coverage It will provide requirements
Performed by Developers Performed by separate testing team
3. Gray Box Testing:
It is a combination of WBT and BBT
To perform GBT we should have programming knowledge and complete
requirements knowledge
It is specifications based testing
testing coverage