Software Quality Assurance - Spring 2018
Taught by: Bill Laboon (laboon at cs dot pitt dot edu)
- GitHub username: laboon
Professor's Office Hours:
- SENSQ 6305
- Tuesdays 12:00 noon - 3:00 PM
Class Time:
- Mon / Wed, 11:00 AM - 12:15 PM (115 Victoria Building)
- Mon / Wed, 1:00 PM - 2:15 PM (5129 Sennott Square)
- Tue / Thu, 9:30 AM - 10:45 AM (403 Information Sciences Building)
TA:
- Krithika Ganesh (Mon/Wed 11:00 and 1:00) GitHub username:
KrithikaGanesh
- Akhil Yendluri (Tue/Thu 10:30) GitHub username:
aky13
Class GitHub repo: https://www.github.com/laboon/CS1632_Spring2018
Required Texts:
- A Friendly Introduction to Software Testing by Bill Laboon.
- This is a PDF and is available on Github
- https://github.com/laboon/software-testing/blob/master/software-testing-laboon-ebook.pdf
- If you like, you may purchase a physical copy on Amazon at: http://www.amazon.com/Friendly-Introduction-Software-Testing/dp/1523477377/ or CreateSpace at: https://www.createspace.com/6008739 .
- However, I want to emphasize that this is NOT NECESSARY. All material is available online, either in this repository or in the (freely available) PDF version of the book linked above. However, some people prefer to have a physical copy.
- Why's (Poignant) Guide to Ruby by _why the lucky stiff.
- This is available for free online
- https://poignant.guide/book/
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 understanding and developing a testing strategy.
- Projects (70%):
- Deliverable 1 - 10%
- Deliverable 2 - 15%
- Deliverable 3 - 10%
- Deliverable 4 - 10%
- Deliverable 5 - 10%
- Deliverable 6 - 15%
- Midterms (30%):
- Midterm 1 - 15%
- Midterm 2 - 15%
Although you are not required to come to every class, it is recommended that you do. Exercise days (where there is no lecture, but an in-class exercise) are listed on the syllabus as EX_n_, where n is in the range {1,7}). Although attendance will not be taken on these days, nor will the exercises be graded, it is strongly recommended that you show up for these as they will allow you to verify that you know the basics of the tools being taught, can have them installed, etc. If you are having trouble with the deliverable, the instructor will always ask to see the results of the relevant exercise before helping with the deliverable. In other words, finishing the exercise is necessary proof that you have done the bare minimum in understanding the project before asking for additional help.
The following grading scale will be used.
Score | Grade |
---|---|
100.00-94.00 | A (A+ for extraordinary work) |
93.99-91.00 | A- |
90.99-88.00 | B+ |
87.99-84.00 | B |
83.99-81.00 | B- |
80.99-78.00 | C+ |
77.99-74.00 | C |
73.99-71.00 | C- |
70.99-68.00 | D+ |
67.99-64.00 | D |
63.99-61.00 | D- |
60.99-0.00 | F |
All groups are expected to do their own work on the group projects, and students to do entirely their own work on the other projects. Projects may be analyzed with the Stanford moss system to detect unauthorized collaboration between groups or individuals. Any student caught collaborating or cheating will automatically receive a 0 (zero) for that exam, and may be penalized more harshly based on University of Pittsburgh academic policy.
Assignments should be committed and pushed to GitHub to a private repository and shared with the TA and me by the beginning of class on the due date. Write-ups are due at the beginning of class and must be given to me in person. Write-ups must be PRINTED OUT and handed in. Late assignments will not be accepted absent of extraordinary circumstances.
Please ensure that you have a student GitHub account so that you can make private repositories. This is free and available here: https://education.github.com/
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.
It is recommended you keep all of your graded assignments until final grades are posted and accepted, in order to resolve any discrepancies in grading.
Lecture attendance is not required, but is STRONGLY recommended. The instructor will try to ensure that all information on the exams and projects will be available via slides, but simply reading them may be insufficient to understand the concepts thoroughly.
- Deliverable 1: A test plan and traceability matrix for a system.
- Deliverable 2: Developing an application using unit tests.
- Deliverable 3: Performance testing and improvement of an application.
- Deliverable 4: Automated system-level tests of an application.
- Deliverable 5: Developing a system with the help of static analysis.
- Deliverable 6: Developing and testing a large application.
For all deliverables, the class will use Ruby 2.4.0 or later with the appropriate frameworks and tools (e.g., git, minitest, capybara, rubocop, reek, heckle) as discussed in class. Projects written in other languages or using alternative frameworks will not be accepted.
Under normal circumstances, it is almost always better to participate in class than not. Questions and comments are invited and strongly encouraged! However, this implies raising your hand and waiting to be called upon. In dire circumstances, some waving of the hands in order to get the instructor's attention is allowed, but suboptimal. Talking out of turn or while the instructor is speaking is frowned upon. If it persists after a warning has been given, the instructor may ask any offending parties to leave the room to continue their discussion elsewhere.
"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 integrity of the academic process requires fair and impartial evaluation on the part of faculty and honest academic conduct on the part of students. To this end, students are expected to conduct themselves at a high level of responsibility in the fulfillment of the course of their study. It is the corresponding responsibility of faculty to make clear to students those standards by which students will be evaluated and the resources permissible for use by students during the course of their study and evaluation. The educational process is perceived as a joint faculty-student enterprise which will perforce involve professional judgment by faculty and may involve—without penalty—reasoned exception by students to the data or views offered by faculty.
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 quiz or exam will be imposed.
View the complete policy at www.cfo.pitt.edu/policies/policy/02/02-03-02.html.