{"id":66,"date":"2019-03-28T11:28:32","date_gmt":"2019-03-28T15:28:32","guid":{"rendered":"https:\/\/sites.bu.edu\/braude\/?page_id=66"},"modified":"2019-03-28T11:40:41","modified_gmt":"2019-03-28T15:40:41","slug":"met-cs-773-software-testing-and-quality-assurance","status":"publish","type":"page","link":"https:\/\/sites.bu.edu\/braude\/courses\/met-cs-773-software-testing-and-quality-assurance\/","title":{"rendered":"MET CS 773 Software Testing and Quality Assurance"},"content":{"rendered":"<p>Last updated November 3, 2004: Last few changes often in red font<strong> <\/strong><\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td width=\"348\" valign=\"top\"><strong>Background    of the Instructor <\/strong>changed if    this is red<\/td>\n<td width=\"312\" valign=\"top\"><strong>Learning    Objectives <\/strong>changed if this is red<\/td>\n<\/tr>\n<tr>\n<td width=\"348\" valign=\"top\"><strong>Contacting Eric Braude <\/strong>changed if this is red<\/td>\n<td width=\"312\" valign=\"top\"><strong>Plagiarism Warning <\/strong>changed if this is red<\/td>\n<\/tr>\n<tr>\n<td width=\"348\" valign=\"top\"><strong>Evaluation    of Students <\/strong>changed if this is red<\/td>\n<td width=\"312\" valign=\"top\"><strong>Policies &#8211; Miscellaneous<\/strong> changed if this is red<\/td>\n<\/tr>\n<tr>\n<td width=\"348\" valign=\"top\"><strong>Forums:    Past and Present <\/strong>changed if this is red<\/td>\n<td width=\"312\" valign=\"top\"><strong>Project    Structure and Evaluation<\/strong> changed if this red<\/td>\n<\/tr>\n<tr>\n<td width=\"348\" valign=\"top\"><strong>Home Page of Eric Braude <\/strong>changed if this is red<\/td>\n<td width=\"312\" valign=\"top\"><strong>Textbooks    and Materials <\/strong>changed if this is red<\/td>\n<\/tr>\n<tr>\n<td width=\"348\" valign=\"top\"><strong>Homework and Due Dates <\/strong>changed if this is red<\/td>\n<td width=\"312\" valign=\"top\"><strong>Topics    and Class Dates <\/strong>changed if this is red<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr size=\"2\" \/>\n<h2>Description from Catalog:<\/h2>\n<p>This course covers the theory and practice of quality  assurance and testing for each step of the software development cycle.\u00a0 It introduces, defines, and contrasts the  two pillars of software quality: Verification and Validation.\u00a0 The course covers test case design  techniques, test coverage criteria, and tools for static and dynamic analysis.\u00a0 IEEE standards for test design and documentation  are included.\u00a0 The course explains  test-driven development and its relation with validation in the small and the  large. QA for maintenance and legacy applications are covered.\u00a0 The course explores experimental and  contemporary approaches to quality such as those inherent in agile  development.\u00a0 Laboratory course. 4 cr<\/p>\n<hr size=\"2\" \/>\n<h2>Prerequisites:<\/h2>\n<p>(1)\u00a0\u00a0\u00a0\u00a0  MET CS 566 or equivalent experience<\/p>\n<p>(2)\u00a0\u00a0 MET CS  673 (Software Engineering) or equivalent experience in software  development.<\/p>\n<hr size=\"2\" \/>\n<h2>Learning Objectives<\/h2>\n<ul>\n<li>Develop a quality software       mindset<\/li>\n<li>Understand how to program       with testing in mind<\/li>\n<li>Be able to plan for testing<\/li>\n<li>Be able to test in the small<\/li>\n<li>Be able to test in the large<\/li>\n<\/ul>\n<hr size=\"2\" \/>\n<h2>Textbook and Materials<\/h2>\n<ul>\n<li>Recommended: JUnit in Action       by Massol; Manning 2003, ISBN 1-930110-99-5 ($25.17 at Walmart.com) (ask       me about this before buying)<\/li>\n<li>Recommended (not required):       Software Testing: A Craftsman&#8217;s Approach, Second Edition, by Paul       Jorgensen, ISBN: 0849308097 \u00a0(ask me about this before buying)<\/li>\n<li>Notes will be distributed for       each class<\/li>\n<\/ul>\n<hr size=\"2\" \/>\n<h2>Project Structure and Evaluation<\/h2>\n<p>Students will be required to write and present a paper that  will contain a specialized aspect of test or QA implementation.\u00a0 The paper will concern a testing method,  theory or tool.\u00a0 Examples include:  Testing Web applications, automated testing, testing real-time applications, QA  tools, and bug tracking environments.<\/p>\n<p>The project will be in two phases.\u00a0 The proposal phase will count for 20% of the grade and the  remainder 80%.<\/p>\n<hr size=\"2\" \/>\n<h2>Evaluation of Students<\/h2>\n<p>The allocation of grades will be as follows.<\/p>\n<p>Exercises:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 60%<\/p>\n<p>Project:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 40%<\/p>\n<p>Students may be given a number of <span style=\"text-decoration: underline;\">pass\/fail assignments<\/span> throughout the semester.\u00a0 A \u201cPass\u201d grade  is required on all of these.\u00a0 A grade of  A or A+ may be given for a pass\/fail homework when the student has gone well  beyond the requirements of the problem and has performed exceptionally.<\/p>\n<p><span style=\"text-decoration: underline;\">Late homework<\/span> will not be accepted unless there is a  reason why it was <em>impossible<\/em> to perform the work in time given work and  emergency conditions.\u00a0 In that case, the written reason should be attached  to the homework, which will be graded on a pass\/fail basis if the reason is  accepted by me.<\/p>\n<hr size=\"2\" \/>\n<h2>Warning concerning plagiarism<\/h2>\n<p>Please cite all references and uses of the work of  other.\u00a0 All instances of plagiarism must  be reported to the College for action.\u00a0  e-mail, see or call me if you have any doubts about the proper use of  others\u2019 material. In any case, clearly acknowledge all sources in the context  they are used, including code, of course.<\/p>\n<hr size=\"2\" \/>\n<h2>Syllabus<\/h2>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"0\" width=\"593\">\n<tbody>\n<tr>\n<td width=\"6%\">Class<\/td>\n<td width=\"6%\">Date<\/td>\n<td width=\"57%\">Topic<em> <\/em><\/td>\n<td width=\"7%\">Chapters    \/ Notes<\/td>\n<td width=\"19%\">Project:<\/p>\n<p><em>(The    dates in this column are approximate: See \u201chomework dates due\u201d section for    official dates)<\/em><em> <\/em><\/td>\n<\/tr>\n<tr>\n<td width=\"6%\">1<\/td>\n<td width=\"6%\">9\/13<\/td>\n<td width=\"57%\">Quality and Ethics in Software Engineering<\/p>\n<p>Creating a software application involves many error-prone    steps and many requirements that are unknown at the outset.\u00a0 We explore the implications of this for    quality and developer ethics.<\/td>\n<td width=\"7%\">Notes<\/td>\n<td width=\"19%\">.<\/td>\n<\/tr>\n<tr>\n<td width=\"6%\">2<\/td>\n<td width=\"6%\">9\/20<\/td>\n<td width=\"57%\">\n<h5>Process Quality<\/h5>\n<p>Quality Assurance Plans; CMM<\/td>\n<td width=\"7%\">Notes<\/td>\n<td width=\"19%\"><\/td>\n<\/tr>\n<tr>\n<td width=\"6%\">3<\/td>\n<td width=\"6%\">9\/27<\/td>\n<td width=\"57%\">QA and Metrics in Project Management<\/p>\n<p>Advisability of metrics, define several, and investigate    their practicality; verification vs. validation<\/td>\n<td width=\"7%\">Notes<\/td>\n<td width=\"19%\">Identify    paper topics: assigned.<\/td>\n<\/tr>\n<tr>\n<td width=\"6%\">4<\/td>\n<td width=\"6%\">10\/4<\/td>\n<td width=\"57%\">\n<h5>QA in Requirements<\/h5>\n<p>How to evaluate the quality of an SRS; discuss embedding    tests into an SRS<\/p>\n<p>Behavioral testing in the absence of requirements.<\/td>\n<td width=\"7%\">Notes<\/td>\n<td width=\"19%\">Paper    proposal due<\/p>\n<p>Requirements    QA assigned<\/td>\n<\/tr>\n<tr>\n<td width=\"6%\">5<\/td>\n<td width=\"6%\">10\/18<\/td>\n<td width=\"57%\">\n<h5>QA in Designs<\/h5>\n<p>Ways to measure the effectiveness of design; Design reliability    (e.g., through components and re-use); error processing and security    assurance processing<\/td>\n<td width=\"7%\">Notes<\/td>\n<td width=\"19%\">Design    QA assigned<\/td>\n<\/tr>\n<tr>\n<td width=\"6%\">6<\/td>\n<td width=\"6%\">10\/25<\/td>\n<td width=\"57%\">\n<h5>Testing Principles<\/h5>\n<p>This class covers the goals and basis for testing.<\/td>\n<td width=\"7%\">Notes<\/td>\n<td width=\"19%\">Test-driven    implementation assigned<\/td>\n<\/tr>\n<tr>\n<td width=\"6%\">7<\/td>\n<td width=\"6%\">11\/1<\/td>\n<td width=\"57%\">\n<h5>Verifying Implementation<\/h5>\n<p>Ways to assess the quality of implementations outside of    testing; test-driven development<\/td>\n<td width=\"7%\">Notes<\/td>\n<td width=\"19%\">Intermediate    paper due<\/p>\n<p>Final    paper form assigned<\/td>\n<\/tr>\n<tr>\n<td width=\"6%\">8<\/td>\n<td width=\"6%\">11\/8<\/td>\n<td width=\"57%\"><span style=\"text-decoration: underline;\">Unit Testing<\/span><\/p>\n<p>Introduction to unit (part) testing. Techniques of unit    testing.<\/td>\n<td width=\"7%\">Notes<\/td>\n<td width=\"19%\">Unit    test assignment<\/td>\n<\/tr>\n<tr>\n<td width=\"6%\">9<\/td>\n<td width=\"6%\">11\/15<\/td>\n<td width=\"57%\">To be determined<\/td>\n<td width=\"7%\"><\/td>\n<td width=\"19%\"><\/td>\n<\/tr>\n<tr>\n<td width=\"6%\">10<\/td>\n<td width=\"6%\">11\/22<\/td>\n<td width=\"57%\">\n<h5>Post-unit Testing\u00a0 I<\/h5>\n<p>Regression, interface, integration, system, acceptance and    installation testing.<\/td>\n<td width=\"7%\">Notes<\/td>\n<td width=\"19%\"><\/td>\n<\/tr>\n<tr>\n<td width=\"6%\">11<\/td>\n<td width=\"6%\">11\/29<\/td>\n<td width=\"57%\"><span style=\"text-decoration: underline;\">Post-unit Testing\u00a0    II<\/span><\/td>\n<td width=\"7%\">Notes<\/td>\n<td width=\"19%\"><\/td>\n<\/tr>\n<tr>\n<td width=\"6%\">12<\/td>\n<td width=\"6%\">12\/6<\/td>\n<td width=\"57%\">\n<h5>QA in Maintenance<\/h5>\n<p>Refactoring<\/p>\n<p>Principles of maintenance<\/p>\n<p>Maintenance quality techniques; refactoring as a    maintenance and quality tool.<\/td>\n<td width=\"7%\"><\/td>\n<td width=\"19%\"><\/td>\n<\/tr>\n<tr>\n<td width=\"6%\">13<\/td>\n<td width=\"6%\">12\/13<\/td>\n<td width=\"57%\">Presentations<\/td>\n<td width=\"7%\">Notes<\/td>\n<td width=\"19%\">Final    paper due<\/td>\n<\/tr>\n<tr>\n<td width=\"6%\">14<\/td>\n<td width=\"6%\">12\/20<\/td>\n<td width=\"57%\">To be determined<\/td>\n<td width=\"7%\"><\/td>\n<td width=\"19%\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr size=\"2\" \/>\n<h2>Forums &#8212; past and present<\/h2>\n<p><span style=\"text-decoration: underline;\">Spring 2004<\/span>:\u00a0  Group home page: http:\/\/groups.yahoo.com\/group\/773Sp04<\/p>\n<p><span style=\"text-decoration: underline;\">Summer 2004<\/span>:\u00a0  Group home page:http:\/\/groups.yahoo.com\/group\/773Su04<\/p>\n<p><span style=\"text-decoration: underline;\">Fall 2004<\/span>: Group home page: http:\/\/groups.yahoo.com\/group\/773F04\/ Group email: 773F04@yahoogroups.com<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Last updated November 3, 2004: Last few changes often in red font Background of the Instructor changed if this is red Learning Objectives changed if this is red Contacting Eric Braude changed if this is red Plagiarism Warning changed if this is red Evaluation of Students changed if this is red Policies &#8211; Miscellaneous changed [&hellip;]<\/p>\n","protected":false},"author":2828,"featured_media":0,"parent":22,"menu_order":9,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/sites.bu.edu\/braude\/wp-json\/wp\/v2\/pages\/66"}],"collection":[{"href":"https:\/\/sites.bu.edu\/braude\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sites.bu.edu\/braude\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sites.bu.edu\/braude\/wp-json\/wp\/v2\/users\/2828"}],"replies":[{"embeddable":true,"href":"https:\/\/sites.bu.edu\/braude\/wp-json\/wp\/v2\/comments?post=66"}],"version-history":[{"count":1,"href":"https:\/\/sites.bu.edu\/braude\/wp-json\/wp\/v2\/pages\/66\/revisions"}],"predecessor-version":[{"id":67,"href":"https:\/\/sites.bu.edu\/braude\/wp-json\/wp\/v2\/pages\/66\/revisions\/67"}],"up":[{"embeddable":true,"href":"https:\/\/sites.bu.edu\/braude\/wp-json\/wp\/v2\/pages\/22"}],"wp:attachment":[{"href":"https:\/\/sites.bu.edu\/braude\/wp-json\/wp\/v2\/media?parent=66"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}