Upload
rosalind-stanley
View
228
Download
0
Tags:
Embed Size (px)
Citation preview
Functional & Automation TestingRajesh Charles, Project Manager
Batch No:Date: jan-12-2014
Agenda (Complete Course)IntroductionTesting MethodologiesManual TestingPractical WorkshopAutomation TestingPractical WorkshopPerformance TestingPractical WorkshopSQL for Beginners Quality CenterUNIX for BeginnersInterview Practice and Mock Interview
Agenda (Today’s Class)What is Testing Why do we need TestingWho does the testingWhat has to be testedWhen is testing doneHow often to test?
Batch No:Date: jan-12-2014
Software testing - DefinitionSoftware testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under testWhat is QualitySoftware functional quality reflects how well it complies with or conforms to a given design, based on functional requirements or specifications
Software testing – Requirements govern DesignSoftware RequirementsSoftware Requirements is a description of a software system to be developed, laying out functional and non-functional requirements, and may include a set of use cases that describe interactions the users will have with the software.Requirements to Design -- Example
Project Manager
Developer
Tester
Sample Project – Requirement , Development, Testing
Business Requirement
Add Two numbers and display the Total
Requirement
Design
Design Documentation1 2 Input text box with label Value 1 and
Value 2
2 Input type for Value 1 and Value 2 is numeric
3 Code formula : Value 1 + Value 2
4 Submit button to trigger Total
Lets Tryout Some Live Testing
Question and Answer
Date: 6 January 2015
What is Environment and Why do we need itSoftware environment is the term commonly used to refer to support an application. A software environment for a particular application could include the operating system, the database system, specific development tools or compiler
Software environment is the term commonly used to refer to support an application. A software environment for a particular application could include the operating system, the database system, specific development tools or compilerApplicationApplication is a set of programs designed to perform a specific used purpose
Software environment is the term commonly used to refer to support an application. A software environment for a particular application could include the operating system, the database system, specific development tools or compiler
Software Architecture
1. Single Tier Architecture
2. Two Tier Architecture 3. Three Tier Architecture
A Set of artifacts and relationships between these artifacts, that guide the selection, creation, and implementation of solutions aligned with business goals.
Internet/Intranet
Web Servers
Clients App. Servers
Database Server
Presentation LayerApplication / Business Layer Data Layer
Single Tier ArchitectureSingle tier (or) Monolithic Architecture : When the application is operated by single user it is recommended to go with single tier architecture
Presentation Layer Application / Business Layer / Data
Data Layer
Two Tier ArchitectureTwo tier architecture : When the requirement is sharing data by set of applications, the solution will be two tier architecture.
Three Tier ArchitectureThree tier architecture : In three tier architecture business logic is maintained independent of client application and database. In this case client application is database independent application.
Internet/Intranet
Web Servers
Clients App. Servers
Database Server
Presentation LayerApplication / Business Layer Data Layer
N Tier Architecture
Presentation Layer
Web Server Layer Application Server Layer Database Server Layer
Operating SystemWindowsLinuxUnixWe will discuss about Unix/Linux operating system in details under
Unix/Linux for Beginners session.
Question and Answer
Date: 6 January 2015
Agenda (Today’s Class – Day 2)Types of TestingWhy do we need different types of TestingSoftware Life CycleSoftware Life Cycle ModelsAgile Methodology
Types of Software Testing
TestingTesting
White Box White Box Black BoxBlack Box
Black box testing is a testing technique that ignores the internal mechanism of the system and focuses on the output generated against any input and execution of the system. It is also called functional testing
White box testing is a testing technique that takes into account the internal mechanism of a system. It is also called structural testing and glass box testing
Black Box TestingThere are 4 Type of Black Box Testing:
1. Usability Testing2. Functional Testing3. Integration Testing4.Performance Testing
5. System Testing6. Acceptance Testing7. Regressing Testing8. Beta Testing
Usability TestingThere are 2 Types of Usability Testing:
1. User Interface Testing
2. Manual Support Testing
User Interface Testing
A. Easy to UserB. Look and Feel
B. Quick Interface
User Interface TestingA. Easy to User
6 Thumb Rule from Microsoft
. Control Should be well Defined
. . Control Should Not be Wrapped/Truncated/Overlapped. . . Control Should Provide Complete Description
. . . . INITCAP
. . . . . Spell Checking
. . . . . . System Menu
B. Look and Feel
C. Quick Interface
Manual Support Testing
Functional TestingFunctional testing is a quality assurance (QA) process and a type of black box testing that bases its test cases on the specifications of the software component under testTypes of Functional Testing
1. Positive Functional Testing
2. Negative Functional Testing
Typically, functional testing involves the following steps:•Identify functions that the software is expected to perform.•Create input data based on the function’s specifications.•Determine the output based on the function’s specifications.•Execute the test case.•Compare the actual and expected outputs
Key Factors in Functional Testing that is common to every application are:1. Data Entry - Input2. Data Manipulation3. Data Storage/Retrieval/Output
Let’s Do Some Testing
Question and Answer
Date: 15 January 2015
Integration TestingIntegration testing is testing in which a group of components are combined to produce output. Also, the interaction between software and hardware is tested in integration testing if software and hardware components have any relation. It may fall under both white box testing and black box testing.
Integration Testing (cont’d)Integration testing follows two approach known as ‘Top Down’ approach and ‘Bottom Up’ approach as shown in the image below:
Integration Testing (cont’d) – Top Down Approach Scenario
Current Balance
Transfer
$1000
$500
$500
Integration Testing (cont’d) – Top Down Approach Scenario
Current Balance
TransferDeposit Withdraw
Login1
2
3
4 5
Big - Bang Wait for all modules to be developed
Time Consuming Difficult to trace root cause of Bugs
Integration Testing (cont’d) – Top Down Approach Scenario
Current Balance
Transfer
Modules are tested as and when they are ready
Stub
Current Balance
Transfer
Driver
Integration Testing (cont’d) – Top Down Approach Scenario
Current Balance
TransferDeposit Withdraw
Login
2
3
4 5
Top Down Approach Stub
Integration Testing (cont’d) – Bottom UP Approach Scenario
Current Balance
TransferDeposit Withdraw
Login
4
1
2 3
Bottom Up Approach Drivers
System Testing System testing is concerned with behavior of the system as a whole
Unlike Integration Testing, which focuses on data transfer amongst modules, system testing checks complete end to end scenarios, as the way a customer would use the system.
A good example of Test Case would be
LoginCurrent Balance
Transfer Logout
Apart from Functional, NON-FUNCTIONAL requirements are also checked
Acceptance Testing Acceptance test is usually done at client location by the client
Focus of Acceptance test is not to find defects but to check whether the system meets their requirements.
Acceptance Testing can be done in 2 ways Alpha Testing – A small set of employees of the client
Beta Testing – A small set of customers
This is actually with the clients see’s the requirement which is plain textInto actual working system.
Question and Answer
Date: 19 January 2015
Agenda Software Testing Life Cycle [STLC]
Software Testing Methodologies – Water Fall Model Software Testing Methodologies – Spiral Model
Software Testing Methodologies – Agile Development Agile Methods - Scrum
Software Testing Life Cycle [STLC]
Software Testing Life Cycle refers to a testing process which has specific steps to be executed in a definite sequence to ensure that the quality goals have been met. In STLC process, each activity is carried out in a planned and systematic way. Each phase has different goals and deliverables
Software Development Life Cycle [SDLC]
A Software Development Life Cycle is essentially a series of steps, or phases, that provide a model for the development and lifecycle management of an application or piece of software.
Software Development Life Cycle – cont’d
SUPPOSE, YOU WERE ASSIGNED A TASK TO DEVELOP A CUSTOM SOFTWARE FOR A CLIENT
Software Development Life Cycle – cont’d
Plan the programming language like java, .net, php and database which would be suited for this project
Test the software to verify that the build is as per the specification given by the client
Actually code the software
Gather as much information as possible about theDetails & specification of the desired software from the client
1
2
3
4
Software Development Life Cycle – cont’d
Plan the programming language like java, .net, php and database which would be suited for this project
Test the software to verify that the build is as per the specification given by the client
Actually code the software
Gather as much information as possible about theDetails & specification of the desired software from the client
Requirements
Design
Build
Test
Maintenance
Software Development Life Cycle – cont’dRequireme
nts
Design
Build
Test
Maintenance
Software Development Life Cycle
Waterfall Model
SDLC– cont’d [WATERFALL MODEL]Requireme
nts
Design
Build
Test
Maintenance
Mistake in Requirement
Design to meet
Requirement
Build to meet Design
Wrong Product
You will have to start afresh Project
SDLC– cont’d [WATERFALL MODEL]Requireme
nts
Design
Build
Test
Maintenance
Design to meet
Requirement
Build to meet Design
Wrong Product
You will have to Re-Design to correct Defects
Requirements
$139 $455 $977
$7,136
$14,102
$0
$2,000
$4,000
$6,000
$8,000
$10,000
$12,000
$14,000
$16,000
Requirements Arch & Design Build Test & Implement Maintenance
System Development Phases
Costs of Correcting Defects (Example)Source: IEEE Computer Society
SDLC– cont’d [WATERFALL MODEL]
SDLC– cont’d [V MODEL]
Requirements
FunctionalSpecification
High LevelDesign
Code
Detailed Design/progra
mspecification
User Acceptance Test Plan
System / Functional Test Plan
Integration Test Plan
Unit Test Plan
User Acceptance
Testing
Functional/ SystemTesting
Integration Testing
Unit Testing
SDLCSTLC
SDLC– cont’d [Iterative Model]
Phase 1 Phase 2 Phase 3
Requirement
Design
Build
Test
Requirement
Design
Build
Test
Requirement
Design
Build
Test
Rapid Application
Development
Agile Development
STLCThere are numerous developmentLife cycle model Development model
selected for a project depends on the aim and goal of the Project
Testing is not a stand-alone activity and has to adopt with the development model chosen for the projectIn any model testing
should be performed at all levels(requirements to maintenance)
Question and Answer
Date: 19 January 2015
SDLC – Spiral ModelSpiral Model is a combination of iterative development process model and sequential linear development Model i.e waterfall model with very high emphasis on risk analysisIt allows for incremental releases of the product, or incremental refinement through each iteration around the spiral
SPIRAL MODEL DESIGN
The spiral model has four phases. A software project repeatedly passes through these phases in iterations called Spirals
o Identificationo Designo Construct/Buildo Risk Management
In Spiral Model focus remains in accessing and minimizing project risk by breaking the projects into smaller segments and providing more easy of change in the development process
SDLC – Spiral Model .. cont’d
1.IdentificationThis phase starts with gathering the business requirements in the baseline spiral. In this subsequent spirals as the product matures. Identification of system requirements and unit requirements are all done in this phaseContinuous communication between the customer and the system analyst.
2.DesignDesign phase starts with the conceptual design in the baseline spiral and involves architectural design, logical design of the modules. Physical product design and final design in the subsequent spirals
3. Construct or BuildConstruct phase refers to production of the actual software product at every spiral. In the baseline spiral when the product is just thought of and design is being developed as a POC4. Evaluation and Risk AnalysisRisk analysis includes identifying, estimating and monitoring technical feasibility and management risk, such as a schedule slippage and cost overrun. After testing the build at the end of first iteration, the customer evaluates the software and provides feedback
SDLC – Spiral Model .. cont’d
Disadvantages of Spiral ModelCan be a costly model to useRisk analysis requires highly specific expertise Project’s success is highly dependent on the risk analysis phase.Doesn't work well for smaller projects
Advantages of Spiral ModelHigh amount of risk analysis hence, avoidance of Risk is enhancedContinuous and steady approach minimizes the risk or failuresAssociated with the change in the systemAllows extensive use of prototypesCost estimation is easy and customer has more controlDevelopment can be divided into smaller parts for better risk managementRequirements can be captured more accuratelyGood for large and mission-critical projectsStrong approval and documentation controlAdditional Functionality can be added at a later dateSoftware is produced early in the software life cycle
SDLC – Agile Methodology Agile development is an alternative to traditional project management where emphasis is placed on empowering people to collaborate and make team decisions in addition to continuous planning, continuous testing and continuous integration
10 Key Principles of Agile1. Active user involvement is imperative 2. The team must be empowered to make
decisions3. Requirements evolve but the timescale is
fixed 4. Capture requirements at a high level;
lightweight & visual5. Develop small, incremental releases and
iterate6. Focus on frequent delivery of products7. Complete each feature before moving on to
the next8. Testing is integrated throughout the project
lifecycle – test early and often9. A collaborative & cooperative approach
between all stakeholders is essential
Joshua Book Store
SDLC – Agile Methodology cont’d
SDLC – Agile Methodology cont’d
Iterative Incremental Methodology
Requirements Gather
Product Design
Coding
Testing
SDLC – Agile Methodology cont’d
SDLC – Agile Methodology cont’d
The team (or part of the team including the product owner) meet regularly to "groom the product backlog", in a formal or informal meeting which can lead to any of the following:
removing user stories that no longer appear relevantcreating new user stories in response to newly discovered needsre-assessing the relative priority of storiesassigning estimates to stories which have yet to receive onecorrecting estimates in light of newly discovered informationsplitting user stories which are high priority but too coarse grained to fit in an upcoming iterationIn consultation with the customer or product owner, the team divides up the work to be done into functional increments called "user stories”.
SDLC – Agile Methodology cont’d
ScrumMaster
ScrumTeamTamy
SDLC – Agile Methodology cont’d
SDLC – Agile Methodology cont’d
SDLC – Agile Methodology cont’d
SDLC – Agile Methodology cont’d
SDLC – Agile Methodology cont’d
SDLC – Agile Methodology cont’d
SDLC – Agile Methodology cont’d Benefits of Agile
Time-to-MarketCertaintyIncrease Revenue by Focusing on Customer Value
Manual Testing
Software Testing Life Cycle [STLC]
Test Planning
Requirement Gathering
Test Design
Test Execution
Defect Reporting
Signoff
Development