Chapter 6 SW Testing
Chapter 6 SW Testing
ASSURANCE
(BISE 3033)
CHAPTER 6
Software Testing
Integration Testing
Integration testing is an intermediate phase
between unit testing and system testing
Involves testing the modules in executable
combination (exe file)
Is an iterative process involving the testing of sub-
B C D E
F G H I J K
L M
User Interface Testing
User Interface Validation
paper prototypes made early are great
Random Testing
automated random key/mouse presses
What's the problem?
http://homepage.mac.com/bradster/iarchitect/color.htm
Dialog Boxes
Cognitive Walkthroughs
Participants
real end user - sits at keyboard and performs tasks
evaluator - takes notes and asks questions, mostly quiet
developer - probably hidden or watches video
Results
effectiveness
Will the user associate the next action with the appropriate
interface control?
Will the user notice an action is available?
If the correct action is performed, will the user see that
progress is being made toward solution of the task?
Heuristics
Simple and natural dialogue
Aesthetic and minimalist design
Speak the user's language
Minimize user memory load
Recognition rather than recall
Consistency
Feedback
Visibility of system status
User control and freedom
Clearly marked exits
Shortcuts and Flexibility
Good error messages
Help users recognize, diagnose, and recover from errors
modified from http://en.wikipedia.org/wiki/Heuristic_evaluation
Validation Testing
Alpha Testing
Beta Testing
Alpha Test Beta Test
development.
Regression Testing Retesting
Regression testing is a type of software Retesting is done to make sure that the
testing that intends to ensure that tests cases which failed in last
changes like defect fixes or execution are passing after the defects
enhancements to the module or against those failures are fixed.
application have not affecting
unchanged part.
Regression testing is not carried out on Retesting is carried out based on the
specific defect fixes. It is planned as defect fixes.
specific area or full regression testing.
In Regression testing, you can include In Retesting, you can include the test
the test cases which passed earlier. We cases which failed earlier. We can say
can say that check the functionality that check the functionality which was
which was working earlier. failed in earlier build.
Regression test cases we use are Test cases for Retesting cannot be
derived from the functional specification, prepared before start testing. In
the user manuals, user tutorials, and Retesting only re-execute the test cases
defect reports in relation to corrected failed in the prior execution.
problems.
Regression Testing Retesting
Automation is the key for regression You cannot automate the test cases for
testing. Retesting.
Manual regression testing tends to get
more expensive with each new release.
Regression testing is right time to start
automating test cases.
Defect verification is not comes under Defect verification is comes under
Regression testing. Retesting.
what
when
where
how
Test Plan Considerations
What are the critical or most complex modules?
make sure they get integration tested first
probably deserve white-box attention
http://en.wikipedia.org/wiki/Test_Plan
Test Items
Requirements Specification
Design
Modules
User/Operator Material
the user interface
User Guide
Operations Guide
Features
response time, data accuracy, security, etc
System Validation
alpha and beta testing
The V-Model
The V-Model of software development illustrates
when testing activities should take place
The test at each level exercise the corresponding
development activity-the same principles apply
no matter what software life cycle model used
The most important factor for successful
application of the V-Model is the issue of when
the test cases are designed
The test design activity always find defects in
whatever the tests are designed against
26
The V-Model (cont..)
For example:
Designing acceptance test cases will find defects
in the requirement
Designing system test cases will find defects in the
functional specification
Designing integration test cases will find defects in
the design
Designing unit test cases will find defects in the
code
If test design is left until the last possible
moment, these defects will only be found
immediately before those tests would be run,
when it is more expensive to fix them
27
The V-Model (cont..)
28
Tool Support for Life-Cycle
Testing
Tool support is available for testing in every
stage of the software development life cycle
It helps to derive test inputs or test data
29
Progress….
Pre-Project Activities
how will we define quality
contract review
writing a plan for quality assurance
Development Activities
Formal Reviews, Peer Reviews, unit testing, integration testing
Test plan You are here
Infrastructure Needs and Management Tasks
Procedures and Work Instructions
Training
Configuration Control
Tracking Progress
Preventative Actions
CMM
Thank You