Software Quality Assurance - Spring 2021
Taught by: Wonsun Ahn (wahn at pitt dot edu)
- GitHub username: wonsunahn
Class Time:
- Flex@Pitt (Zoom through Canvas or classroom)
- Section 1100: Mon/Wed 1:15 PM - 2:30 PM @ 202 O'Hara Student Center
- Section 1120: Mon/Wed 11:05 AM - 12:20 PM @ 316 Information Sciences Building
Instructor's Office Hours:
- Chat on Microsoft Teams: Mon-Fri 9:00 AM - 6:00 PM
- Video on Microsoft Teams: On demand while chatting. I guarantee I will be available for video chatting during the following times: Tue/Thu 10:00 AM - 11:30 AM. I should be able to video chat at most times at other times too --- just ask.
Grading TA Information:
- Name: Shubhrika Sehgal (shs253 at pitt dot edu)
- Primary mode of communication: "Regrade Request" on GradeScope
- Secondary mode of communication: Chat on Microsoft Teams
Class GitHub repo: https://www.github.com/wonsunahn/CS1632_Spring2021
Required Texts:
- A Friendly Introduction to Software Testing
- This is a PDF and is freely available by clicking on the link
This course provides students with a broad understanding of modern software testing and quality assurance. Although it will cover testing theory, the emphasis is on providing practical skills in software testing currently used in industry. To that end, it will cover: manual and automated tests, test-driven development, performance testing, and model checking.
This lecture will use the flipped classroom learning model. All lectures (except the introductury lectures and guest lectures) will be pre-recorded and posted on Canvas. It is your responsibility to keep up with the lectures according to the schedule on the Syllabus. There will be eight in-class exercises to apply what you learned during the lectures and to prepare you for the deliverables.
You can choose to either attend classes in-person, synchronously online, or asynchronously online according to the Flex@Pitt model. Synchronous attendance of classes (either in-person or online) is encouraged but not required. If you don't attend the lecture, please view the in-class discussion through Panopto recordings available on Canvas. The class schedule is available on the Syllabus).
- Projects (70%):
- Deliverable 1 - 10%
- Deliverable 2 - 15%
- Deliverable 3 - 15%
- Deliverable 4 - 10%
- Deliverable 5 - 20%
- Midterms (20%):
- Midterm 1 - 10%
- Midterm 2 - 10%
- Participation (10%)
- TopHat lecture questions
- Exercise submissions (satisfactory / unsatisfactory)
- Teams participation
TopHat questions will be provided when the recorded lectures are released. They are expected to be completed during the given time frame (during the week the lectures are listed on the syllabus).
Exercise submissions are unscored (as in your actual score doesn't matter). You will get full credit if you submit "satisfactory" work. By satisfactory, I mean you did not just submit the skeleton code and you put some kind of effort into doing the exercise. Since these are unscored, you are encouraged to learn from your classmates, including by sharing each other's source code.
Exams will NOT be allowed to be made up except with a valid and verified excuse (generally medical - others are left to the discretion of the instructor).
The following grading scale will be used. Note that I generally do not round grades up.
Score | Grade |
---|---|
100.00-93.00 | A (A+ for extraordinary work) |
92.99-90.00 | A- |
89.99-87.00 | B+ |
86.99-83.00 | B |
82.99-80.00 | B- |
79.99-77.00 | C+ |
76.99-73.00 | C |
72.99-70.00 | C- |
69.99-67.00 | D+ |
66.99-63.00 | D |
62.99-60.00 | D- |
59.99-0.00 | F |
All exercises and deliverables will be submitted using GradeScope.
Assignments should be committed and pushed to GitHub to a private repository and then submitted to GradeScope. Some assignments also require write-ups that needs to be submitted to GradeScope. The format of the write-up will be specified on each assignment. Students are encourged to commit early and often to the GitHub repository as commit history will be used as the ground truth for proof of work (especially as it relates to a group project). Also, frequent commits help avoid conflicts when working on the same files as your partner.
If any disputes from groups arise, I will assume that GitHub is the "ground truth". For example, if Partner A insists that they did all the work, but GitHub history shows only commits by Partner B, I will assume that Partner B has done all the work.
Late assignments will receive a -5 percentage point penalty per day (e.g., if you would have received a 90% on an assignment, but you turned it in 3 days late, you would receive 90 - 15 = 75%.).
Please submit the Partnership Contract on GradeScope by 2/5. Your expectations as a group member are outlined clearly on the contract. You may resubmit the contract at a later time, at which time the new contract will come into effect.
- Deliverable 1: Developing a test plan and traceability matrix for a system.
- Deliverable 2: Developing unit tests for a console-based application.
- Deliverable 3: Developing a simple web application system with the help of automated systems testing.
- Deliverable 4: Performance testing and optimization of an application.
- Deliverable 5: Developing and testing an application using both static and dynamic testing.
Exercises are unscored, as in the score that you get on GradeScope will not be factored into your grade. As long as you didn't get a 0 score (or you didn't submit), your exercise will be marked as complete and be counted towards your participation score. The purpose of the exercises are to prepare you for the deliverables and get feedback on mistakes you made so that you don't make the same mistakes on your deliverables. Since exercises are unscored, you are free to discuss them with your classmates, including sharing each other's code.
Exercises will be released on Mondays in class and will be due on the following Wednesday at the end of class. You will be given time in-class on Monday to complete it and if you don't, you can keep working on it until Wednesday. On Wednesday, we will discuss the exercise and you will have a chance to ask questions if you had any difficulties. You can finish up and submit by Wednesday night.
- Exercise 0: Java assessment exercise
- Exercises 1-5: Exercises that prepare you for the corresponding deliverable
- Supplemntary Exercises 1-2: Supplementary exercises that are unrelated to a deliverable
For all deliverables, the class will use Java with the appropriate frameworks (JUnit, Mockito, Selenium). Projects written in other languages or using alternative frameworks will not be accepted.
Questions and comments are invited and strongly encouraged. If you have a view point or experience that may enrich the class, please jump in! There are several ways you can participate:
-
In-class
If you are in-person and you have a question, just interrupt me and interject. If you are online unmute your mic and interject. Raising your hand is optional (whether physical or virtual). If I miss your raised hand, it's not because I want to ignore you but it's probably because there are too many things going on at the same time. So interrupting me is not rude, it's a necessity.
-
Offline
Please use the Teams "Posts" tab on the "General" channel if you have a general question or comment about the lecture. If you have a question about a specific topic for which there is a dedicated channel, please use that channel. For example, there is currently a "Partner Exchange" channel besides the "General" channel, so please use that channel to broadcast messages about partners. Remember, you are encouraged to answer as well as ask questions! I will give a thumbs up on verified answers or I will add a few more things if needed.
You can also DM (direct message) me or another student in the class. Again, select the class in the "Teams" menu and then click on the "..." context menu beside the "CS 1632 Software Quality Assurance" team name. Please select the top-most item: "Manage Team". There, you should be able to see the statuses of all students in the class, and if you hover over the name of any student, you should see options to initiate a chat, email, or a call with that individual.
-
Email / Canvas messages
For the fastest response, please use Teams chat.
When you ask a source-code-specific question about an exercise or deliverable, please submit your code to GradeScope so that I can reproduce your error. Also, describe precisely the steps I should take to reproduce your error. Before you do this, it is very hard for me to help you.
I will try to get back to all offline communications within 24 hours of receipt. Even if I'm logged into Teams, please understand that I may be away from my desk or working on something else. Meanwhile, feel free to answer each other's questions!
"The Office of Disability Resources and Services (DRS) provides a broad range of support services to assist students with disabilities. Services include, but are not limited to, tape-recorded textbooks, sign language interpreters, adaptive and transportation. Contact DRS at 412-648-7890 or 412-383-1355 (TTY) in 216 William Pitt Union or see www.drs.pitt.edu for more computer technology, Braille translation, and nonstandard exam arrangements, DRS can also assist students with accessibility to campus housing information."
The instructor will work to the best of their ability to accommodate any issues arising from a disability that a student has, but he must be aware of it in order to accommodate it. Please inform me as soon as possible if you have a disability which you think may hinder your success in the course and we (along with the DRS) should be able to work around it.
Cheating/plagiarism will not be tolerated. Students suspected of violating the University of Pittsburgh Policy on Academic Integrity, from the February 1974 Senate Committee on Tenure and Academic Freedom reported to the Senate Council, will be required to participate in the outlined procedural process as initiated by the instructor. A minimum sanction of a zero score for the exam or assignment will be imposed.
View the complete policy at www.cfo.pitt.edu/policies/policy/02/02-03-02.html.
Some guidelines:
1. For unscored in-class exercises, you are allowed (and encouraged) to look at your classmates' work and discuss it. If you get ample help for the exercises, you should rarely need additional help for the deliverables.
2. For all scored deliverables and exams, viewing the work done by your classmates (or a 3rd source) before submission is considered cheating. Aiding this activity is also considered cheating. The only exception is your designated group members for your group projects.
3. If you need additional help for the deliverables, your best source is your instructor.