Transcript shaimaa

CS4472A : Specification,
Testing and Quality Assurance
Instructor: Shaimaa Ali
What is this course all about
• Computers and software systems are becoming ubiquitous
in modern society.
• Worldwide users rely on individual and interconnected
computers to fulfill their needs for
–
–
–
–
information processing,
storage,
search,
and retrieval.
• All these needs are met with the support of the underlying
software.
• This reliance requires a quality the software
What is this course all about
• This high quality need to be satisfied
through various Quality Assurance
activities
• Claims for high quality need to be
supported by evidence based on concrete
measurements and analyses.
Textbook
Software Quality
Engineering: Testing,
Quality Assurance, and
Quantifiable
Improvement
Jeff Tian
ISBN: 978-0-471-71345-6
February 2005, ©2005,
Wiley-IEEE Computer
Society Press
Quality expectations
Our (as developers) objective is to deliver software
system that...
• does what it is supposed to do
– needs to be “validated“
• does the things correctly
– needs to be “verified“
• show/demonstrate/prove it
– modeling/analysis needed
Meeting Quality Expectations
• Difficulties in achieving good quality:
–
–
–
–
•
size: MLOC products common
complexity
environmental stress/constraints
flexibility/adaptability expected
Other difficulties/factors:
– product type
– cost and market conditions
– Others .. (discussed in Part III of the book)
• No silver bullet", but...
– SQE (software quality engineering) helps
Contents
• Part I
– Overview and basics
• Part II
– Testing
– Perhaps the most important QA mechanism
Contents
• Part III
– Other Alternatives for QA
•
•
•
•
defect prevention
inspection, review, analysis
formal verification
defect containment
– Comparison of different alternatives, including testing.
• Part IV
– Analysis and improvement
• overall mechanism
• measurements/models
Background
• Math/statistics pre-requisite:
– used in modeling/analysis.
– discrete math; logic, graph, etc.
– probability and statistics
Background
• Background knowledge in CS/SE:
– computer systems and programming
• Java, C or C++
– fundamentals of computing
– general SE knowledge and experience
• CS3307 is prerequisite
Marking scheme
• 40% assignments
– 1 assignment per part
– 10% each
• 10% in-class and online participation
– In-class assessment and participation activities
– Online activities (on course’s website)
– Some of the in-class activities will be posted online so
that students can catch up.
Marking scheme
• 20% mid-term exam
– tentatively Oct. 28th
– Covering parts I and II
• 30% final exam
In class activity #1
(take 5 to 10 mins to answer these questions)
• Your experience as a developer
– What programming experience do you have?
(e.g. course project, internship ... Etc.)
– What language did you use?
– What level of quality you think it had?
– How did you assure it’s quality?
In class activity #2
(take 5 to 10 mins to answer these questions)
• Your experience as a customer
– What software do you use and think it is a good
software?
– Why do you think it’s good?
• Looks good, fast, accurate … etc.
– How did you measure it’s goodness?
– Can you compare it to other similar software?
In class activity #3
(take 5 to 10 mins to answer these questions)
• Your experience in management
– Did you work in a team for developing a
software before? What was it?
– What was your role in the team?
– Was there any team member responsible for
QA?
– How did you divide QA tasks amongst team
members?
– What can you do to enhance management of
your team with regards to QA activities?
Your expectations?
What do you expect to learn in this
course?