Course Overview CS 362: Software Engineering II

advertisement
Course Overview
CS 362: Software Engineering II
Outline
•
•
•
•
•
Syllabus
Course Objectives
Schedule
Required Software
About this Course
1
July 24, 2016
Syllabus: Course Website
• http://classes.engr.oregonstate.edu/eecs/winter2015/cs362-501/
2
July 24, 2016
Syllabus: Contact Information
• Dr. Marc Rubin
• Cascades Hall 212 (new office!!)
• marc.rubin@osucascades.edu
3
July 24, 2016
Syllabus: Office Hours
• Cascades Hall 212
• Mondays and Wednesdays, 15:00 – 16:00
• PLEASE COME TO OFFICE HOURS FOR HELP!!
4
July 24, 2016
Syllabus: Textbook
• “Introduction to Software Testing” by Ammann and Offutt
5
July 24, 2016
Syllabus: Grades
• 50% Homework
• 25% Midterm
• 25% Final
• Cheating will NOT be tolerated.
• if you cheat, I WILL report you
6
July 24, 2016
Outline
•
•
•
•
•
Syllabus
Course Objectives
Schedule
Required Software
About this Course
7
July 24, 2016
Course Objectives
• Apply automated tools such as make and CVS in a realistic
setting.
• Describe the cost-benefit trade-offs inherent in the use of
automated tools for building software and configuration
management.
• Describe several techniques for validating and measuring the
quality of software.
8
July 24, 2016
Course Objectives
• Apply testing techniques, including black-box and white-box
techniques, automatic testing activities, and regression testing.
• Use appropriate techniques and tools, including a debugger, to
locate program faults.
• Describe several types of maintenance processes associated
with correcting and enhancing software systems.
9
July 24, 2016
Course Objectives
• Participate effectively in a software inspection.
• Participate effectively in a team environment.
10
July 24, 2016
How to Learn…
11
July 24, 2016
Outline
•
•
•
•
•
Syllabus
Course Objectives
Schedule
Required Software
About this Course
12
July 24, 2016
Schedule
• Detailed course schedule on website
• Software Engineering II: Testing
•
•
•
•
•
•
Graph coverage
Logic coverage
Test inputs
Regression testing
Testing OO vs. web apps vs. GUIs
etc.
• Team-based software project: Blackjack
13
July 24, 2016
Outline
•
•
•
•
•
Syllabus
Course Objectives
Schedule
Required Software
About this Course
14
July 24, 2016
Required Software
• In accordance with Corvallis, we will use Linux
15
July 24, 2016
Required Software
• OSU students get VMWare for free
• via OSU TEACH
• Download the virtual Linux image from course website
• Compatible with VMWare
• http://classes.engr.oregonstate.edu/eecs/winter2015/cs362501/virtual_machine.zip
16
July 24, 2016
Required Software
• Access to a cloud-based git repository
•
•
•
•
github
bitbucket
mercurial
etc.
• You will need this to:
• Subversion team software
• Submit assignments
17
July 24, 2016
Outline
•
•
•
•
•
Syllabus
Course Objectives
Schedule
Required Software
About this Course
18
July 24, 2016
Software Testing
• Essential to producing high-quality software
• NOT just for testing specialists or domain experts
• Developers must test
19
July 24, 2016
Software Testing: Coverage Criteria
• Testing is all about satisfying coverage criteria
• Four types of coverage:
•
•
•
•
graphs
logical expressions
input space
syntax structures
• CS 362: learn about coverage
• Implement a non-trivial program (Blackjack in C++)
• Create automated tests to verify / validate program
20
July 24, 2016
Why this book?
• In the past, software testing was considered a non-engineering
activity
• Limited to users and domain experts
• Little expectation of technical expertise
• Most CS students never have a course ONLY about testing
• At best, a lecture or two
• Book balances theory and application
• Many examples
• Homework to solidify understanding
21
July 24, 2016
Students taking this course
• Goal: learn fundamental principles behind testing
• Expect to use this knowledge for the rest of your career!
• Required knowledge:
•
•
•
•
•
•
Data structures
Discrete math
C++ programming
make / Makefiles
command line
git
22
July 24, 2016
Software
• Defines behavior of many things:
•
•
•
•
•
Networks
Websites
Operating system
User programs
Embedded systems
• Modern househoulds have over 50 processors
• New cars have over 100!
23
July 24, 2016
Software Testing
• Testing is primary method that industry evaluates software
• Design and development are important,
… but testing determines viability of product!
24
July 24, 2016
Software Testing
“Testing is simple, all a tester needs to do is ‘find a
graph and cover it.’”.
- Beizer
25
July 24, 2016
Software Testing
• Graphs are only one type of software testing
• Do not characterize all testing techniques
• Other abstract models are necessary:
•
•
•
•
graphs
logical Expressions
input domain characterization
syntax descriptions
• Testing can be classified into these four categories
• Book / course is about!!
26
July 24, 2016
Software Testing
• Testing is a collection of objective and quantitative activities
• Tests are measurable and repeatable
• Book’s goal: “present concepts in such a way that students or
practicing engineers can easily apply them to any software
testing situation”
27
July 24, 2016
Next Steps
• Download Linux image from course website
• Create a cloud-based git repository
• E.g., bitbucket or github
• Find a teammate
• Start homework 1
• Implement Card and Deck classes
• Create automated tests to validate objects
28
July 24, 2016
Download