0% found this document useful (0 votes)
3 views

Lect 2 Fundamentals

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Lect 2 Fundamentals

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 24

SOTWARE TESTING

INSTRUCTOR: Mehwish
Specification
“if you can’t say it, you can’t do it”

• You have to know what your product is before you


can say if it has a bug.
• A specification defines the product being created
and includes:
– Functional requirements that describes the features
the product will support. E.g., on a word processor
• Save, print, check spelling, change font, …
– Non-functional requirements are constraints on the
product. E.g,
• Security, reliability, user friendliness, platform, …
A software bug occurs when at least one
of these rules is true
• The software does not do something that the specification
says it should do.
• The software does something that the specification says it
should not do.
• The software does something that the specification does not
mention.
• The software does not do something that the product
specification does not mention but should.
• The software is difficult to understand, hard to use, slow …
Most bugs are not because of mistakes in
the code …

• Specification (~= 55%)


• Design (~= 25%)
• Code (~= 15%)
• Other (~= 5%)
Relative cost of bugs
“bugs found later cost more to fix”

• Cost to fix a bug increases exponentially (10x)


– i.e., it increases tenfold as time increases
• E.g., a bug found during specification costs $1 to fix.
• … if found in design cost is $10
• … if found in code cost is $100
• … if found in released software cost is $1000
Bug Free Software
• Software is in the news for the wrong reason
– Security breach, hackers getting credit card information,
etc.
• Why can’t software engineers develop software that
just works?
– As software gets more features and supports more
platforms it becomes increasingly difficult to make it create
bug-free.
Discussion …
• Do you think bug free software is unattainable?
– Are their technical barriers that make this impossible?
– Are we missing technology or processes?
Goal of a software tester
• … to find bugs
• … as early in the software development processes as
possible
• … and make sure they get fixed.

• Advice: Be careful not to get get caught in the


dangerous spiral of unattainable perfection.
What to look for when interviewing someone
for the position of software tester
• Are they explorers?
• Are they troubleshooters?
• Are they relentless?
• Are they creative?
• Are they perfectionists (within reason)?
• Do they exercise good judgment?
• Are they tactful and diplomatic?
• Are they persuasive?
You now know …
• … what is a bug
• … the relationship between specification and bugs
• … the cost of a bug relative to when it is found
• … the unattainable goal of perfect software
• … the goal of the software tester
• … valuable attributes of a software tester
The Software
Development Process
Software is …
• requirements specification documents
• design documents
• source code
• test suites and test plans
• interfaces to hardware and software operating
environment
• internal and external documentation
• executable programs and their persistent data
Software effort
• Specification
• Product reviews
• Design
• Scheduling
• Feedback
• Competitive information acquisition
• Test planning
• Customer surveying
• Usability data gathering
• Look and feel specification
• Software architecture
• Programming
• …
Discussion …
• What is software engineering?
• Where does testing occur in the software
development process?
Customer requirements
• The software development team must determine
what the customer wants.
• How can you do this?
– Guess?
– Collect detailed information from surveys?
– Get feedback from a previous version of the software?
– Read reviews in magazines?
– Get information about the competition?
– Other ways?
• The collected data is used to guide the specification
effort.
Specification
“If you don't know where you're going any road will take you there”

• The specification takes the data from the


customer requirements and other sources and
defines:
– The features of the software (functional requirements).
– The constraints on these features (non-functional
requirements).
• Specifications can be:
– formal (e.g., aerospace industry), rigid
– informal (e.g., a .com start up), on a cocktail napkin or
a whiteboard.
Schedules
• The goals of scheduling are to know:
– What work needs to be completed?
– How much work is left to do?
– When will the work be finished?
– Who will finish each task?
– Other measurable queries.
• A Gantt chart is a popular type of bar chart that
illustrates a project schedule.
Gantt Chart
Design
• Before coding begins on non-trivial software
projects, a set of design documents are created to
serve as blueprints.
– Software Architecture
– Data flow diagram
– State transition diagram
– Flowchart
– Commented code
Source code … of course
• The ultimate specification of the software!
• ‘Code is king’ philosophy is still dominant.
• Many programming languages and tools to choose
from.
Test documents
• Test plan
– Quality objectives, resource needs, schedules,
assignments, methods, etc.
• Test cases
– Inputs and expected outputs.
• Bug reports
– E.g., the Bugzilla web-based bug tracker.
• Test tools and automation
• Metrics, statistics, and summaries
– Number of unresolved bugs, mean time to repair a bug,
etc.
Software Project Staff
• Project managers
– Write product specification, manage the schedule, critical decision
tradeoffs
• Software architects, system engineers
– Design the software, work closely with programmers
• Programmers, developers, coders
– Write code, fix bugs
• Testers, quality assurance staff
– Find bugs, document bugs, track progress of open bugs
• Technical writers
– Write manuals, on line documentation
• Configuration managers, builders
– Packaging and code, documents, and specifications
Software Development Lifecycles
• Code and Fix
• Waterfall
• Spiral
You now know …
• … what is software
• … what is software engineering
• … what is the composition of a software
development organization
• … what are the major phases of a software
development project
• … how major phased are organized

You might also like