Title: Test Principles and Concepts
1Test Principles and Concepts
2Key Components
- Why do we test software
- Understanding the testing challenge
- Structural versus functional techniques
- Quality principles
- Life cycle testing
- The people challenges of software testing
3Why Do We Test Software?
- What is a defect?
- What is quality software?
- ITs view - means meeting requirements
- Users of software view - means fit for use
- The two software quality gaps
- User gap
- IT gap
- What is a defect to a software tester?
4Why Does a Development Process Produce Defects?
- Variability is the enemy of quality the
concepts behind maturing a software development
process is to reduce variability. - What does it mean for a process to be in or out
of control? - Special causes of variation
- Common causes of variation
5Reducing the Frequency of Defects in Software
Development
- Five levels of maturity
- Ad hoc
- Control
- Core competency
- Predictable
- Innovative
- Testers need to understand process maturity
6An Effective Development Process that Minimizes
Defects Incorporates
- The concept of quality
- Reducing variability
- Reducing or eliminating defects
7PDCA View of a Process
- P - Devise a plan
- D - Execute (do) the plan
- C - Check the results
- A - Take the necessary action
8Workbench View of a Process
- Each workbench is built on the following two
components - Objective why the process exists
- People skills roles, responsibilities and
associated skill sets needed to execute a process
9Workbench Components
- Inputs
- Procedures
- Deliverables
- Standards
- Tools
10Why do we test software The Answer
- We test software because the processes to build
software are defect-prone - Traditional way of software testing identifies
where the specification has been incorrectly
implemented, incompletely implemented or is
missing - Software testing compensates for the fact that
the software development process does not
identify the true needs of the user
11- Software testing can add significant value to the
IT organization. - Finding defects early costs considerably less
- Remove defects before going into production
- Identify weaknesses in development process so
that those processes can be improved - Mature processes produce software more
effectively and efficiently
12Understanding the Testing Challenge
- Test Objectives
- A testing Goal
- Enable test manager and project manager to gauge
testing progress and success - Enhance communication within and without project
team by defining scope of test effort - Statement of the objective expected results
- Created from system requirements document
- Use a checklist to ensure process is followed
13Strategic Risks
- A risk is a condition that can result in a loss
- We cannot eliminate risks, but we can reduce
their occurrence and/or impact of the loss - One of the most effective methods to reduce
computer system strategic risk is testing
14Economics of Testing
- Most problems associated with testing occur from
one of the following causes - Failing to define testing objectives
- Testing at the wrong phase of the life cycle
- Using ineffective test techniques
15Testing Policy
- Definition of testing
- Testing system
- Evaluation
- Standards
16What Are You Testing For?
- Why are defects hard to find?
- Not looking
- Looking, but not seeing
- Corrected condition causes another defect
- Life cycle testing
17Verification and Validation
- Verification ensures that the system (software,
hardware, documentation and personnel) complies
with the organizations standards and processes - Answers question Did we build the right system?
- Validation physically ensures that the system
operates according to plan by executing the
system functions through a series of tests that
can be observed and evaluated - Answers question Did we build the system right?
18Functional and Structural Testing
- Functional testing
- Advantages
- Simulates actual system usage
- Makes no system structure assumptions
- Disadvantages
- Potential of missing logical errors in software
- Possibility of redundant testing
- Structural testing
- Advantages
- You can test the softwares structure logic
- You test code that you wouldnt use if you
preformed only functional testing - Disadvantages
- Does not ensure that youve met user requirements
- Its tests may not mimic real-world situations
19Testing Techniques
- White-box testing
- Statement coverage
- Decision coverage
- Condition coverage
- Decision/condition coverage
- Multiple condition coverage
- Black-box testing
- Equivalence partitioning
- Boundary analysis
- Error guessing
- Incremental testing
- Top-down
- Bottom-up
- Thread testing
- Independent testing
- Regression testing
-
20Reviews and Inspections
- Three types of reviews
- In-process
- Decision-point or phase-end
- Post implementation
- Three classes of reviews
- Informal or peer
- Semiformal or walkthroughs
- Formal or inspections
21Structural System Testing Techniques
- Stress
- Execution
- Recovery
- Operations
- Compliance (to process)
- Security
22Functional System Testing Techniques
- Requirements
- Regression
- Error handling
- Manual support
- Intersystem
- Control
- Parallel
23Quality Principles
- What is Quality?
- Five perspectives of quality
- Transcendent I know it when I see it
- Product-based Possesses desired features
- User-based Fitness for use
- Development- and manufacturing-based Conforms
to requirements - Value-based At an acceptable cost
24Definitions of Quality
- Frequently defined as meeting the customers
requirements the first time and every time - Conformance to a set of customer requirements
that, if met, result in a product that is fit for
its intended use - Much more than the absence of defects
- Requires controlled process improvement
- Can only be seen through the eyes of the
customers
25Why Quality
- Cost of poor quality
- Quality philosophies
- Deming philosophy
- Michael Tveites regrouping of Demings 14 points
- Jurans ten steps to quality improvement
- Cost of quality
- Prevention costs
- Appraisal costs
- Failure costs
26Quality Assurance versus Quality Control
- Definitions
- Quality assurance is a planned and systematic set
of activities necessary to provide adequate
confidence that products and services will
conform to specified requirements and meet user
needs. Staff function. - Quality control is the process by which product
quality is compared with applicable standards,
and the action taken when nonconformance is
detected. Line function
27Life Cycle Testing
- Requirements
- Design
- Program (build/construction)
- Test process
- Installation
- Maintenance
28Quality Factors
- Correctness
- Authorization
- File Integrity
- Audit Trail
- Continuity of Processing
- Service Levels
29Developing a Test Plan
- Select and rank quality factors
- Identify the system development phases
- Identify the business risks associated with the
system under development - Place risks in the matrix
30Type of Development Methodology Impacts the Test
Plan
- Traditional system development (and most major
changes to existing software systems - Iterative development/prototyping/CASE
- System maintenance
- Purchased/contracted software
31People Challenges of SoftwareTesting
- Negative view of testing and testers
- Testers hold up implementation
- Top ten people challenges
- Training in testing
- Relationship building with developers
- Using tools
- Getting managers to understand testing
- Communicating with users about testing
- Making the necessary time for testing
- Testing over the wall software
- Trying to hit a moving target
- Fighting a lose-lose situation
- Having to say no
32Raise Management Awareness of the Importance of
Testing
- Calculate costs of testing and ensure the costs
are understood by management - Show management ways that the testing costs can
be reduced by using more effective techniques - Relay other benefits of testing
- Show that test training is built into your own
personal goals and objectives, and discuss your
training needs with your immediate supervisor - Collect and distribute articles about testing
- Inquire about the budget for testing
- Use creative means to enlighten management
33Model for Test Process Improvement
- Examine the organizations needs and business
goals - Conduct assessment
- Initiate process improvement
- Analyze assessment output and derive action plan
- Implement improvements
- Confirm improvements
- Sustain improvement gains
- Monitor performance