Answer & Explanation:Chapter 2 of the book discusses 10 guidelines for program testing. Take any one of these and explain, in your own words, what the guideline says and why it might be important when developing software using the Agile techniques.Make it as simple as possible it is a beginner class for me. and she only wants a paragraph a couple of sentences not more than 5 sentence it355unit02.pptxthe_art_of_software_testing__3rd_edition.pdf
it355unit02.pptx
the_art_of_software_testing__3rd_edition.pdf
Unformatted Attachment Preview
IT355
Unit 2
Fundamentals of Testing
Spring 2016
Dr Diane Murphy
1
Topics
•
•
•
•
•
Software lifecycles
Testing in the SDLC
Assessing risk and scope
The Requirements Specification
Developing test plans from the Requirements
Specification
2
Quiz 1 Terminology
Types of Test
Terms in Testing
Documentation
White box testing
Software Build
Test plan
Black box testing
User interface
Test case
Functional testing
Accountability
Bug tracking system
User acceptance testing
Boundary conditions
Use case
Usability testing
Requirements specification Metrics
Stress testing
SDLC
Problem report
Regression testing
Agile Methodology
Load testing
3
Software Testing is Challenging
• Isn’t it difficult to taste the recipe prepared by
the chef and telling him that he forgot to add
salt?
• Isn’t it difficult to suggest the self-claimed best
painter to use orange instead of blue?
• Isn’t it difficult to find out spelling mistake from
a 200 page long book?
• That is how software testing Is
– It challenges you to be alert, to be well acquainted
and ultimately to be the one whom people like even
if you are finding mistakes in his work
4
Software Lifecycle
• A structured set of activities required to develop a
software system
– Specification
– Design
– Validation
– Evolution
• A software life cycle is an abstract representation of a
development process
• Presents a description of a process from some particular
perspective and many lifecycles have been proposed over
the past 50 years
5
Software Lifecycles
A software life cycle has a number of:
– Distinct activities (phases):
“requirements”,
“implementation”,
“analysis”,
“testing”,
“design”,
“operations”
– Products:
• Requirements specification, feasability study, test plan,
user manaual…
– Rules that complete an activity (phase) and
transition to the next phase
6
Software Life Cycles
Well-known models for the software life cycle:
– The Waterfall model
– Incremental software development
– The Rational model (Rational Unified Process)
– Agile methodologies
7
The Waterfall Model
Requirements
definition
System’s services, constraints and goals
System architecture,
software system functions
System and
Software Design
Implementation
and Unit Testing
Set of programs
or program units
Integration and
System Testing
Units and programs are
integrated and tested
Operation and
Maintenance
8
Waterfall Model Problems
• Inflexible partitioning of the project into distinct stages
makes it difficult to respond to changing customer
requirements
• Model is generally only appropriate when the requirements
are well-understood and changes arefairly limited during
the design process
• Few business systems have stable requirements
• The waterfall model is mostly used for large systems
engineering projects where a system is developed at
several sites
9
Incremental Delivery
• Rather than deliver the system as a single
delivery, the development and delivery is broken
down into increments with each increment
delivering part of the required functionality
• User requirements are prioritized and the
highest priority requirements are included in
early increments
• Once the development of an increment is
started, the requirements are frozen though
requirements for later increments can continue
to evolve
10
Incremental Development
Advantages
• Customer value can be delivered with each
increment so system functionality is available
earlier
• Early increments act as a prototype to help
elicit requirements for later increments
• Lower risk of overall project failure
• The highest priority system services tend to
receive the most testing
11
(Rational) Unified Software
Development Process
• A modern process model derived from the
work on the UML and associated processes
– Inception
• Determines the scope and purpose of the project
• Establishes the business case for the system
– Elaboration
• Focuses requirements capture and determining the
structure/architecture of the system
• Develops an understanding of the problem domain
– Construction: System design, programming and
testing
12
– Transition: product installation and rollout
Rapid Software Development
• Now often the most important requirement for
software systems
– Businesses operate in a fast –changing requirement,
practically impossible to produce a set of stable software
requirements
– Software evolves quickly to reflect changing business needs
• Rapid software development
– Specification, design and implementation are interleaved
– System is developed as a series of versions with
stakeholders involved in version evaluation
– User interfaces are often developed using an integrated
development environment (IDE) and graphical toolset
13
Agile Methods
• Dissatisfaction with the overheads involved in software design
methods of the 1980s and 1990s led to the creation of agile
methods
• These methods:
– Focus on the code rather than the design
– Are based on an iterative approach to software development
– Are intended to deliver working software quickly and evolve this
quickly to meet changing requirements
• The aim of agile methods is to reduce overheads in the
software process (e.g. by limiting documentation) and to be
able to respond quickly to changing requirements without
excessive rework
14
The Principles of Agile Methods
Principle
Description
Customer involvement
Customers should be closely involved throughout the
development process. Their role is provide and prioritize new
system requirements and to evaluate the iterations of the
system.
Incremental delivery
The software is developed in increments with the customer
specifying the requirements to be included in each increment.
People not process
The skills of the development team should be recognized and
exploited. Team members should be left to develop their own
ways of working without prescriptive processes.
Embrace change
Expect the system requirements to change and so design the
system to accommodate these changes.
Maintain simplicity
Focus on simplicity in both the software being developed and
in the development process. Wherever possible, actively work
to eliminate complexity from the system.
15
Agile Method Applicability
• Product development where a software company is
developing a small or medium-sized product for sale
• Custom system development within an organization,
where there is a clear commitment from the
customer to become involved in the development
process and where there are not a lot of external
rules and regulations that affect the software
• Because of their focus on small, tightly-integrated
teams, there are problems in scaling agile methods
to large systems
16
Problems with Agile Methods
• It can be difficult to keep the interest of customers who are
involved in the process
• Team members may be unsuited to the intense involvement
that characterizes agile methods
• Prioritizing changes can be difficult where there are multiple
stakeholders
• Maintaining simplicity requires extra work
• Contracts may be a problem as with other approaches to
iterative development
17
Agile and Software Maintenance
• Most organizations spend more on maintaining existing
software than they do on new software development
– So, if agile methods are to be successful, they have to
support maintenance as well as original development
• Two key issues:
– Are systems that are developed using an agile approach
maintainable, given the emphasis in the development
process of minimizing formal documentation?
– Can agile methods be used effectively for evolving a
system in response to customer change requests?
• Problems may arise if original development team cannot be
maintained
18
Software Development Phases
• All SDLCs follow the process from initiation to
maintenance and five phases are active in
each of the software development processes:
– Planning
– Design
– Coding and Documentation
– Post-Release Maintenance and Enhancements
– System Replacement
19
Planning Stages
• Defining the product but no coding
– Mock-ups
– Prototypes
• Objectives Statement
– Vision of the product
• Requirements analysis
– Features and functions -User language
• Functional description
– Features and functions – Systems language
20
Testing in Planning Stage
Requirements Review
•
•
•
•
•
•
Are these the right requirements?
Are they complete?
Are they compatible?
Are they achievable?
Are they reasonable?
Are they testable?
21
Other Testing in the Planning Stage
• Comparative product evaluations
– What will make this product different from others
already on the market?
– Tester may do this analysis as part of
undestanding the requirements
• Focus groups
– How do specific target groups respond?
• Task analyses
– How will software fit in with task?
22
Prototyping
• Model of system or part of it
• Built as quickly and cheaply as possible
– For Web application, may be only the HTML code
• Usually used to explore user interfaces
• Tester often involved in working with users to
understand role of system and to identify
issues
• Often results in changes to the requirements
• Helps users understand the constraints of the
technology used
23
The Design Stages
• External design
– Describes product from users perspective
• Internal design
– Structural design
• Modular decomposition
– Data design
• Data formats
• Database structure
• Privacy and security
– Logical design
• Complex algorithms
24
Need for Testing During Design
• Need to test design strategies and determine
that they will meet requirements
– Need to get a clear picture of how system is
supposed to work
• Explore:
– Is the design good?
– Does the design meet the requirements?
– Is the design complete?
– Is the design possible?
– How well are errors handled?
25
Testing in the Design Phase
• Review meetings
– Identify problems: not to solve them
– Walkthrough, Inspection, and Technical Review
– Run by Project Manager
• Tester often involved to understand system
design prior to testing
• Needs to be recorded
– Write down every agreement
– Tester may be asked to be recorder
• Pseudocode analyzer can be useful tool
26
The Coding Stage
• Programmer is responsible for coding and initial unit
testing but tester participates in human testing and
computer-based testing processes
• Human testing is more informal testing
– Code inspections
– Code walkthroughs
• Computer-based testing is formal testing
process
– Black-box testing
– White-box testing
27
Testing in Maintenance
•
•
•
•
•
•
Maintenance is about 67% of cost of software
20% is spent fixing errors
35% adapting to new environments
6% fixing documentation
4% spent on performance improvements
42% spent making enhancements requested
by users
• Testers apply human and computer-based
techniques throughout maintenance phase
28
Assessing Risk and Scope
• During a software project, there will always be more
features to test than time you have to test them
• So, how do you determine how much testing you can
do and how much risk is involved in setting limits
• Scope: “Out of everything that I could possibly test,
which features are the right ones to test?“
• Technique and coverage: “For each feature I am
testing, how do I want to test that feature?”
• Different quality criteria will lead to covering
different product elements and different testing
techniques
29
Determining Scope
• Frequent: What features are most frequently used (e.g.,
features the user interacts with, background processes, etc.)?
• Intensive: What features are the most intensive (searches,
features with intensive GUI interactions)?
• Business-critical: What features support processes that need
to work (month-end processing, creation of new accounts)?
• Legal: What features support processes that are required to
work by contract?
• Obvious: What features support processes that will earn us
bad press if they do not work?
• Technically risky: What features are related to technically risky
aspects of the system (new or old technologies, etc.)?
• Stakeholder-mandated: What have we been asked/told to
make sure we test?
30
Features to Focus On
• Structure: This is everything that comprises the physical
product or the specific features (code, hardware, etc.)
• Functions: Everything that the product or feature does (user
interface, calculations, error handling, etc.)
• Data: Everything that the product or feature processes (input,
output, lifecycle)
• Platform: Everything on which the product or feature depends
(and that is outside the project)
• Operations: How the product or feature will be used (common
use, extreme use, handicapped users, etc.
• Time: Any relationship between the product and time
(concurrency, race conditions, etc.)
31
Structuring the Work
• Start by structuring the work in lists or
spreadsheets
• Once you know what to test, think about how
to test it
– Is specialized software needed (like runtime
analysis tools)?
– Will code or data be needed?
• Group the tests
• Tackle whatever obstacles or setup tasks are
needed
• Check software is ready to test
32
Test-Driven Development (TDD)
• Software development process that relies on
the repetition of a very short development
cycle:
– first the developer writes an (initially failing)
automated test case that defines a desired
improvement or new function
– then produces the minimum amount of code to
pass that test
– Finally refactors the new code to acceptable
standards
33
Assignment 1
• Write a memo to attend a conference
• Need to follow the format described in the
assignment
• Memo should be formal and prepared in MS
Word format
– Use the professional template
• Assignment 1 due January 26, 2016 by end of
day, due in Canvas under Assignments
34
www.it-ebooks.info
FFIRS 08/25/2011 11:31:15 Page 2
www.it-ebooks.info
FFIRS 08/25/2011 11:31:15 Page 1
THE ART OF
SOFTWARE
TESTING
www.it-ebooks.info
FFIRS 08/25/2011 11:31:15 Page 2
www.it-ebooks.info
FFIRS 08/25/2011 11:31:15 Page 3
THE ART OF
SOFTWARE
TESTING
Third Edition
GLENFORD J. MYERS
TOM BADGETT
COREY SANDLER
John Wiley & Sons, Inc.
www.it-ebooks.info
FFIRS 08/25/2011 11:31:15 Page 4
Copyright # 2012 by Word Association, Inc. All rights reserved.
Published by John Wiley & Sons, Inc., Hoboken, New Jersey.
Published simultaneously in Canada.
No part of this publication may be reproduced, stored in a retrieval system, or transmitted in
any form or by any means, electronic, mechanical, photocopying, recording, scanning, or
otherwise, except as permitted under Section 107 or 108 of the 1976 United States
Copyright Act, without either the prior written permission of the Publisher, or authorization
through payment of the appropriate per-copy fee to the Copyright Clearance Center, Inc.,
222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600, or on the
web at www.copyright.com. Requests to the Publisher for permission should be addressed
to the Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ
07030, (201) 748-6011, fax (201) 748-6008, or online at www.wiley.com/go/permissions.
Limit of Liability/Disclaimer of Warranty: While the publisher and author have used their
best efforts in preparing this book, they make no representations or warranties with respect
to the accuracy or completeness of the contents of this book and specifically disclaim any
implied warranties of merchantability or fitness for a particular purpose. No warranty may
be created or extended by sales representatives or written sales materials. The advice and
strategies contained herein may not be suitable for your situation. You should consult with a
professional where appropriate. Neither the publisher nor author shall be liable for any loss
of profit or any other commercial damages, including but not limited to special, incidental,
consequential, or other damages.
For general information on our other products and services or for technical support, please
contact our Customer Care Department within the United States at (800) 762-2974, outside
the United States at (317) 572-3993 or fax (317) 572-4002.
Wiley also publishes its books in a variety of electronic formats. Some content that appears
in print may not be available in electronic books. For more information about Wiley
products, visit our website at www.wiley.com.
Library of Congress Cataloging-in-Publication Data:
Myers, Glenford J., 1946The art of software testing / Glenford J. Myers, Corey Sandler, Tom Badgett. — 3rd ed.
p. cm.
Includes index.
ISBN 978-1-118-03196-4 (cloth); ISBN 978-1-118-13313-2 (ebk); ISBN 978-1-118-13314-9
(ebk); ISBN 978-1-118-13315-6 (ebk)
1. Computer software—Testing. 2. Debugging in computer science.
Corey, 1950- II. Badgett, Tom. III. Title.
QA76.76.T48M894 2011
005.1 04—dc23
I. Sandler,
2011017548
Printed in the United States of America
10 9 8 7 6 5 4 3 2 1
www.it-ebooks.info
FTOC 08/25/2011 11:33:28 Page 5
Contents
Preface
vii
Introduction
ix
1 A Self-Assessment Test
1
2 The Psychology and Economics of Software Testing
5
3 Program Inspections, Walkthroughs, and Reviews
19
4 Test-Case Design
41
5 Module (Unit) Testing
85
6 Higher-Order Testing
113
7 Usability (User) Testing
143
8 Debugging
157
9 Testing in the Agile Environment
175
10 Testing Internet Applications
193
11 Mobile Application Testing
213
Appendix Sample Extreme Testing Application
227
Index
233
v
www.it-ebooks.info
FTOC 08/25/2011 11:33:28 Page 6
www.it-ebooks.info
FPREF 08/08/2011 17:19:4 Page 7
Preface
I
n 1979, Glenford Myers published a book that turned out to be a classic.
The Art of Software Testing has stood the test of time—25 years on the
publisher’s list of available books. This fact alone is a testament to the
solid, essential, and valuable nature of his work.
During that same time, the authors of this edition (the third) of The Art
of Software Testing published, collectively, more than 200 books, most of
them on computer software topics. Some of these titles sold very well and,
like this one, have gone through multiple versions. Corey Sandler’s Fix
Your Own PC, for example, is in its eighth edition as this book goes to
press; and Tom Badgett’s books on Microsoft PowerPoint and other Office
titles have gone through four or more editions. However, unlike Myers’s
book, none of these remained current for more than a few years.
What is the difference? The newer books covered more transient
topics—operating systems, applications software, security, communications technology, and hardware configurations. Rapid changes in computer
hardware and software technology during the 1980s and 1990s necessitated frequent changes and updates to these topics.
Also during that period hundreds of books about software testing were
published. They, too, took a more transient approach to the topic. The Art
of Software Testing alone gave the industry a long-lasting, foundational
guide to one of the most important computer topics: How do you ensure
that all of the software you produce does what it was designed to do, and—
just as important—doesn’t do what it isn’t supposed to do?
The edition you are reading today retains the foundational philosophy
laid by Myers more than three decades ago. But we have updated the
examples to include more current programming languages, and we have
addressed topics that were not yet topics when Myers wrote the first
edition: Web programming, e-commerce, Extreme (Agile) programming
and testing, and testing applications for mobile devices.
vii
www.it-ebooks.info
FPREF 08/08/2011 17:19:4 Page 8
vi …
Purchase answer to see full
attachment
You will get a plagiarism-free paper and you can get an originality report upon request.
All the personal information is confidential and we have 100% safe payment methods. We also guarantee good grades
Delivering a high-quality product at a reasonable price is not enough anymore.
That’s why we have developed 5 beneficial guarantees that will make your experience with our service enjoyable, easy, and safe.
You have to be 100% sure of the quality of your product to give a money-back guarantee. This describes us perfectly. Make sure that this guarantee is totally transparent.
Read moreEach paper is composed from scratch, according to your instructions. It is then checked by our plagiarism-detection software. There is no gap where plagiarism could squeeze in.
Read moreThanks to our free revisions, there is no way for you to be unsatisfied. We will work on your paper until you are completely happy with the result.
Read moreYour email is safe, as we store it according to international data protection rules. Your bank details are secure, as we use only reliable payment systems.
Read moreBy sending us your money, you buy the service we provide. Check out our terms and conditions if you prefer business talks to be laid out in official language.
Read more