Software Testing :Software Testing Software Testing is a process of evaluating a system by manual or automation means and verifying that it satisfies the specified requirements
Slide 2:The purpose of software testing is to
Detect the existence of defects
Purpose of Testing :Purpose of Testing “The purpose of testing is to discover errors. Testing is the process of trying to discover every conceivable fault or weakness in a work product.”
“The purpose of testing is to ensure the customers spoken and unspoken expectations are met.”
Purpose of Testing :Purpose of Testing Detect the existence of defects
Ensure functionality and usability
Increase customer satisfaction
Reduce legal liability
Ensure compliance with government regulations
Purpose of Testing :Purpose of Testing Find and fix all critical defects prior to release
Verify boundary conditions are not exceeded on a given field
To reduce support calls on new product releases by 25% over previous years
Types of Testing :Types of Testing Manual
&
Automation
Manual Testing :Manual Testing It is the oldest and most rigorous type of Software Testing. Manual testing requires a tester to perform manual test operations on the test software without the help of Test Automation
Manual Testing Cont’d.. :Manual Testing Cont’d.. Manual Testing is done by Writing Test Cases without the help of any tools
Automation testing :Automation testing The type of testing that uses Automation tools
Quality :Quality The quality of a product or service refers to the perception of the degree to which the product or service meets the customer's expectations.
What is Quality ? :What is Quality ? Quality can be defined as
Degree of excellence - Oxford dictionary
Fitness for purpose - Edward Deming
Best for the customer’s use and selling price - Feigenbaum
The totality of characteristics of an entity that bear on its ability to satisfy stated or implied needs - ISO
cont’d.. :cont’d.. How a Product developer will define quality - The product which meets the customer requirements.
How Customer will define Quality - Required functionality is provided with user friendly manner.
Quality Assurance :Quality Assurance Test and QA activities start early in the software development life cycle.
Quality is built into the solution: “Do it right the first time.”
Each step or phase is validated before moving ahead to the next step or phase.
Repeatable processes are established and used by all like projects.
Processes are continuously reviewed and improved
Slide 14:Software testers are referred as
Quality Assurance Analyst
When to start Testing :When to start Testing Testing early in the life cycle reduces the errors. Test deliverables are associated with every phase of development.
Specifications are the largest bug producer.
When to stop Testing? :When to stop Testing? "When to stop testing" is one of the most difficult questions to a test engineer.
The following are few of the common Test Stop criteria:
All the high priority bugs are fixed.
The rate at which bugs are found is too small.
The testing budget is exhausted.
The project duration is completed.
The risk in the project is under acceptable limit.
Goal of a Tester :Goal of a Tester The goal of Software Tester is to find bugs, find them as early as possible, and make them sure they are fixed
Quality Control :Quality Control It is the process by which product quality meets applicable standards and the action taken when non-conformance is detected.
Quality Tools :Quality Tools Problem Identification Tools
1. PARETO ANALYSIS
2.CAUSE AND EFFECT DIAGRAM ( FISHBONE DIAGRAM)
PROBLEM ANALYSIS TOOLS :PROBLEM ANALYSIS TOOLS CHECK LIST
CONTROL CHARTS
HISTOGRAM
SCATTER DIAGRAM /PLOT
STRATIFICATION
SOFTWARE PROCESS :SOFTWARE PROCESS Plan
Do
Check
Action
Slide 22:Plan: Identify the problem
Analyze the problem
Do: develop a solution and implement the solution
Slide 23:Check: Evaluate the results
Action : Standardize the solution
various types of reviews :various types of reviews Management Reviews,
Technical Reviews,
Inspections,
Walkthroughs and Audits.
Test Standards :Test Standards SEI = ‘Software Engineering Institute’ at Carnegie-Mellon University; initiated by the U.S. Defense Department to help improve software development processes.
Standards Cont’d.. :Standards Cont’d.. CMM = ‘Capability Maturity Model’, developed by the SEI. It’s a model of 5 levels of organizational ‘maturity’ that determine effectiveness in delivering quality software. It is geared to large organizations such as large U.S. Defense Department contractors.
Standards Cont’d.. :Standards Cont’d.. Level 1 - characterized by chaos, periodic panics, and heroic efforts required by individuals to successfully complete projects.
Level 2 - software project tracking, requirements management, realistic planning, and configuration management processes are in place; successful practices can be repeated.
Standards Cont’d.. :Standards Cont’d.. Level 3 - standard software development and maintenance processes are integrated throughout an organization
Level 4 - metrics are used to track productivity, processes, and products. Project performance is predictable, and quality is consistently high.
Standards Cont’d.. :Standards Cont’d.. Level 5 - the focus is on continuous process improvement. The impact of new processes and technologies can be predicted and effectively implemented when required.
Std cont’d.. :Std cont’d.. ISO = ‘International Organization for Standards’ - The ISO 9001, 9002, and 9003 standards concern quality systems that are assessed by outside auditors, and they apply to many kinds of production and manufacturing organizations, not just software. The most comprehensive is 9001, and this is the one most often used by software development organizations. It covers documentation, design, development, production, testing, installation, servicing, and other processes.
HLD & LLD :HLD & LLD High Level Designing:
SYSTEM DESIGNING
SCREEN SHOTS
Low level Designing:
Entity Relationship
Logics, codings
Why TMM :Why TMM The TIM will contain a set of maturity levels through which an organization can progress toward testing process maturity, a set of recommended practices at each level of maturity, and an assessment model that will allow organizations to evaluate and improve their testing process.
Slide 33:A set of defined testing policies.
A test planning process.
A test life cycle.
A test group.
A test process improvement group.
A set of test-related metrics.
Tools and equipment.
Controlling and tracking.
Product quality control.
TMM Levels :TMM Levels Level 5:Optimization, Defect Prevention, and Quality Control
Level 4:Management and Measurement
Level 3:Integration
Level 2:Phase Definition
Level 1:Initial
Software Development life cycle :Software Development life cycle Different models :
Waterfall model
V-model
Spiral Model
Rapid Application development
Water Fall MODEL :Water Fall MODEL The waterfall model is a sequential software development model (a process for the creation of software) in which development is seen as flowing steadily downwards (like a waterfall) through the phases of requirements,Design, Development, testing (validation), implementation and maintanence.
Spiral model :Spiral model The spiral model, also known as the “Spiral lifecycle model”, is a systems development method (SDM) used in information technology (IT). This model of development combines the features of the prototyping model and the waterfall model. The spiral model is intended for large, expensive, and complicated projects.
Rapid Application Development :Rapid Application Development
V-Model :V-Model
Static Testing :Static Testing Static testing is a form of software testing where the software isn't actually used. This is in contrast to dynamic testing. It is generally not detailed testing, but checks mainly for the sanity of the code, algorithm, or document. It is primarily syntax checking of the code or and manually reading of the code or document to find errors.
Static Testing :Static Testing The Verification activities fall into the category of Static Testing. During static testing, you have a checklist to check whether the work you are doing is going as per the set standards of the organization
Dynamic Testing :Dynamic Testing Dynamic Testing involves working with the software, giving input values and checking if the output is as expected
Management Concepts :Management Concepts Configuration Management
Requirement Management
Project Management
Project Management :Project Management Project Planning
Project monitoring and control
Software requirements
Risk management
Software process
Problems in software projects
Slide 45:The process of project compliance with policies and procedures is quality Audits
Slide 46:The processes includes all activities of the performing organization that determines policies and responsibilites of a project is
Project quality management
Testing levels :Testing levels Unit testing
Integration testing
System testing
User Acceptance Testing
Black Box Technique :Black Box Technique A software testing technique whereby the internal workings of the item being tested are not known by the tester.
Black Box Cont’d… :Black Box Cont’d… For example, in a black box test on software design the tester only knows the inputs and what the expected outcomes should be and not how the program arrives at those outputs
Black Box Testing Techniques :Black Box Testing Techniques 1) Boundary Value Analysis
2) Equivalence Partitioning
Boundary Value Analysis :Boundary Value Analysis Boundary Value Analysis is a technique of black box testing in which input values at the boundaries of the input domain are tested.
Equivalence Partitioning :Equivalence Partitioning Equivalence Partitioning is designed to minimize the number of test cases by dividing tests in such away that the system is expected to act the same way for all tests of each equivalence portion. Test inputs would be selected from each partition.
White Box Technique :White Box Technique Statement Coverage: Execute all statements at least once.
Decision Coverage: Execute each decision direction at least once.
Condition Coverage: Execute each decision with all possible outcomes at least once.
Decision/Condition Coverage:Execute all possible combinations of condition outcomes in each decision. Treat all iterations as two-way conditions exercising the loop zero times and one time.
Grey Box technique :Grey Box technique Grey box testing is a software testing technique that uses a combination of black box testing and white box testing. Gray box testing is not black box testing, because the tester does know some of the internal workings of the software under test. In grey box testing, the tester applies a limited number of test cases to the internal workings of the software under test. In the remaining part of the grey box testing, one takes a black box approach in applying inputs to the software under test and observing the outputs.
Incremental Testing :Incremental Testing Incrementally integration testing can be split in to a) Top-down Testingb) Bottom-up Testingc) Sandwich (Hybrid) Testing
Top-down Testing: :Top-down Testing: In Top-down Testing, higher level modules are tested. If lower modules required to make up the system are not yet available then, stubs are used to simulate their activity.
Stub: Small software placed in to a program that provides a common function.
Bottom-up Testing: :Bottom-up Testing: In Bottom-up testing, lower level modules are tested. If the higher level modules required to make up the system are not yet available then, drivers are used to simulate their activity.
Driver: Drivers are simple program designed specifically for testing that make calls to these lower layers.
Sandwich Testing: :Sandwich Testing: Sandwich testing is a hybrid between Bottom-up and Top-down testing. It will test the user interface in isolation using Stubs and test the very lowest functions using drivers.
Verification & Validation :Verification & Validation Software Verification is the process of ensuring that software being developed or changed will satisfy functional and other requirements (validation)
VERIFICATION PROCESS :VERIFICATION PROCESS In-Process Reviews – look at the product during a specify time period of a life cycle, such as during the design activity
Decision-point or Phase-end Reviews – look at the product for the main purpose of determining whether to continue with planned activities. They are held at the end of each phase, in a semiformal or formal review format.
Slide 61:Post Implementation Reviews are held after implementation is complete to audit the process based on actual results. Post-implementation reviews are also known as “postmortems”, and are held to assess the success of the overall process after release and identify and opportunities for process improvement
Slide 62:Validation is the process in which each step in the process of building the software yields the right products (verification)
Good Test Case :Good Test Case A Good Test Case is one that has a high probability to find an error
Software Testing Life Cycle :Software Testing Life Cycle Software testing life cycle identifies what test activities to carry out and when to accomplish those test activities.
Software Testing Life Cycle :Software Testing Life Cycle Test Planning,
Test Analysis,
Test Design,
Construction and verification,
Testing Cycles,
Final Testing and Implementation
Post Implementation.
TEST PLAN :TEST PLAN This is a document stating the overall approach of the testing activity
Slide 67:Objective/goal
Strategy
Roles and responsibilities
Time schedule
Risk analysis
Resources
Test environment
Communication approach
Risk Analysis :Risk Analysis Software Risks
Business Risks
Testing Risks
Premature Release Risk
Risk Methods
Test log :Test log A chronological record of all relevant details about the execution of a test.
Test reports :Test reports Eight Interim Reports:
Functional Testing Status
Functions Working Timeline
Expected verses Actual Defects Detected Timeline
Defects Detected verses Corrected Gap Timeline
Average Age of Detected Defects by Type
Defect Distribution
Relative Defect Distribution
Testing Action
Three Objectives: :Three Objectives: Define Scope of Testing
Present Test Results
Draw Conclusions/Recommendations
Two Goals: :Two Goals: Provide Data for Determination of Readiness by Customer
Provide Data for Long Term Detection of Problem Functions
Defect Tracking: :Defect Tracking: This is very important to ensure the Quality of the end Product. As test cases are executed at various levels defects if any are found in the Software being tested. The Defects are logged and data is collected.
Defect tracking :Defect tracking Defect ID number
Defect name/type
Defect severity
Defect priority
Defect status
Program or component where defect was found
Person assigned to correct the defect
Date and Time tracking defects
Severity Vs Priority
Bug life cycle :Bug life cycle The duration or time span between the first time bug is found(‘New”) and closed successfully (‘closed’),rejected, postponed or deferred is called as “Bug/Error Life Cycle’.
Metrics: :Metrics: A standard of measurement. Software metrics are the statistics describing the structure or content of a program.
Test Metrics :Test Metrics A metric is a mathematical number that shows a relationship between two variables. It is a quantitative measure of the degree to which a system, component or process possesses a given attribute. Software Metrics are measures that are used to quantify the software, software development resource and software development process.
Testing Principles :Testing Principles Purpose of Software Testing
Testing Defined
Testing Concepts/techniques
Requirements
Test Scenarios
Test cases
Test scripts/procedures
Strategies for Software Testing
Black box/Glass box/Gray box testing
Documentation :Documentation Test plan
Test design specification
Test case specification
Test procedure specification
Test status
Test logs
Test incident reports
Test summary reports
Test plan :Test plan Define testing scope and objectives
Testing methodology
Identify required resources
Identify the features and functions to test
Identify risk factors
Establish testing schedule
Test log :Test log The purpose of the test log is to provide a chronological record of details about execution of test.
Test summary report :Test summary report To summarize the results of the designated testing activities and to provide evaluation based on the results
Slide 83:Special testing types
Performance Testing: :Performance Testing: Performance testing is a class of tests implemented and executed to characterize and evaluate the performance related characteristics of the target-of-test such as the timing profiles, execution flow, response times, and operational reliability and limits.
Benchmark testing :Benchmark testing Compares the performance of new or unknown target-of-test to a known reference standard such as existing software or measurements.
Load testing :Load testing The test used to validate the operational limits of a web application under varying workloads while the system-under-test remains constant
Stress testing :Stress testing The test used to evaluate how the web application responds under abnormal or extreme conditions. Stresses on the web application may include extremely high number of users and resources
Acceptance testing :Acceptance testing Testing to ensure that the system meets the needs of the organization and the end user
Performance testing :Performance testing We evaluate the performance of the software or web applications through various techniques. Some of the key procedures adopted are
Load/Stress Testing
Performance Monitoring & Tuning
Endurance & Soak Testing
Scalability and Volume Testing and Other non functional testing
Usability testing :Usability testing Providing the most easy to use application, with greater look and feel, enhancement suggestions etc... we can also direct your attention to the speed and manner on which the page downloads thus creating an upscale version of your solution and making it more efficient.
Security testing :Security testing Security loop holes available in applications are identified; most of the cases that create a vulnerable situation are the resultant of poor habits in programmers. These are practice generated mistakes that are consistently observed.
Disaster recovery testing :Disaster recovery testing Disaster recovery planning need not me maintained only for large scale companies with Data Center level setups, it also applies for small and medium scale enterprises as any data that becomes a vital information should never be lost.
Business continuity testing :Business continuity testing Disaster Management and Recovery
Walk through testing
Scenario testing
Communication testing
Web and lab testing :Web and lab testing Any web solution has one element in common i.e. they are not bound by boundaries. Web applications are accessed through various browsers and at different bandwidth speeds. The application as such comprises of the multi media or the design graphics, contents and functional aspects associated with them.
Web and lab testing :Web and lab testing We provide you with test results on most popular to least known but very persistent usage environments and help make your solutions accessible from any where in the same level of quality and conformity everywhere
Web Based Testing: :Web Based Testing: Web testing is the name given to Software Testing that focuses on Web Applications, and is one of the fastest growing areas of software testing.