THE UNIVERSITY OF LAHORE
Course Outline
SPRING 2017
Session 2016-17
CS-4349 Software Testing & Implementation
Effective Date: 31 January 2017
SCU 3 Credit(s)
Co-requisite (s) None
Pre-requisite(s) CS-4347 Software Engineering
Weekly tuition pattern 2 sessions (90 min each)
Teaching Team
Yasir Mahmood
Syed Sarmad Ali
1-
Course Description
Since the invention of computers and hence computer software, software testing has become both easier and more difficult than ever. Software testing is more difficult because of the vast array of programming languages, operating systems, and hardware platforms that have evolved. And, while relatively few people used computers in the 1970s, today virtually anyone in business or education could hardly complete a day’s work without using a computer.
Software testing is easier, in some ways, because the array of software and operating systems is much more sophisticated than ever, providing intrinsic well-tested routines that can be incorporated into applications without the need for a programmer to develop them from scratch.
Software testing is a process, or a series of processes, designed to make sure computer code does what it was designed to do and that it does not do anything unintended. Software should be predictable and consistent, offering no surprises to users.
2-
Objectives
The objectives of this course are to introduce all of the basic aspects of software testing. The course will introduce to the students the techniques required to do software testing.
After taking the course the students will:
1. know how to perform effective testing of software
2. be aware of techniques and standards
3. have an awareness of what testing tools can achieve
4. know where to find more information about testing
5. establish the basic steps of the testing process
3-
Student Learning Outcomes
On completion of this unit students should be able to understand:
1. The fundamentals of software testing.
2. Possibility of doing test throughout the software life cycle.
3. Software static testing techniques.
4. Test design techniques.
5. Test management.
6. Tool support for testing.
4-
Course Structure
1. Presentation by lecturer
2. Group discussion
3. Group project
4. Problem questions
5-
Course Duration
This course will be held twice a week of 3 hours (each 90 min session) class duration.
6-
Course style
The course will be delivered in a classroom environment.
7-
Additional Course Requirement
In addition to the objectives of this course, students are expected to gain skills which would be needed in the professional work environment. These skills include but not limited to: Writing, Presentation, Decision Making and Teamwork.
8-
Text and Other Resources
8.1 Text
Graham, Erik Van, Evans, Rex Black (2007)
Foundations of Software Testing (ISTQB Certification), Thomson Publishers
8.2 Other Resources
Myers, Glenford J., The Art of Software Testing, 2, John Wiley & Sons, Inc., 2004
9-
Course Outline
The lecturers are supposed to complete the following topics/sub-topics before the mid/final term examination as prescribed in the course outline below:
Weeks Lectures Topics/Sub-Topics
1
1
Chapter 1: Fundamentals of Software Testing
Why is testing necessary? Introduction2
Software system context Causes of software defects
Role of testing in software development, maintenance and operations Testing and quality
How much testing is enough?
2
1
What is testing?
The driving test – an analogy for software testing Defining software testing
Software test and driving test compared
2
When can we meet our test objectives? Focusing on defects can help us plan our tests The defect clusters change over time
Debugging removes defects
3
1
Is the software defect free?
If we don’t find defects does that mean the users will accept the software?
Testing principles
The psychology of testing
2
Independent testing- Who is tester?
Why do we sometimes not get on with the rest of the team? Problem/Review/Sample exercise questions
4
1
Chapter 2: Testing Throughout Software Life Cycle
Software Development Models Waterfall Model
V-Model
Iterative/Incremental life cycle
2
Rapid Application Development Model (RAD) Test levels Component testing Integration testing 5 1 System testing Acceptance testing Testing Principles
2 Testing of function (Functional testing)
Testing of software structure/architecture (structural testing)
Weeks Lectures Topics/Sub-Topics
6
1
Testing related to changes (confirmation and regression testing) Maintenance testing
Impact analysis and regression testing Problem/Review/Sample exercise questions
2
Chapter 3: Static Techniques
What is software testing? Static testing
Dynamic testing
Types of defects that are easier to find during static testing Various advantages of static testing
7 1 Review process Formal review Informal review Planning Kick-off Preparation 2 Re-work Follow-up
Roles and responsibilities Peer review 8 1 Walkthrough Technical review Inspection
Success factors for reviews
2
Static analysis by tools Cyclomatic complexity Control flow
Problem/Review/Sample exercise questions
MID-TERM EXAMINATION
9
1
Chapter 4: Test Design Techniques
Identifying test conditions and designing test cases Test analysis: identifying test conditions
Test design: specifying test cases
Test implementation: specifying test procedures or scripts Categories of test design techniques
2
Introduction
Static testing techniques
Specification-based (black-box) testing techniques Structured-based (white-box) testing techniques Experience-based testing techniques
Weeks Lectures Topics/Sub-Topics
10 1
GROUP PROJECT EXPLANATION
NOTE: It is up to the lecturer which project they would like to assign by making sure that the comprehensive learning outcome should be emphasized.
Boundary Value Analysis (BVA)
2 Decision table testing
11 1
State transition testing Use case testing
Structured based OR white-box techniques
Using structure based techniques to measure and design tests
2 Statement coverage and statement testing
12
1
Decision coverage and decision testing Experienced based techniques
Error guessing Exploratory testing
Problem/Review/Sample exercise questions
2
Chapter 5 : Test Management
Test organization Test plans, estimates and strategies13
1 Test progress monitoring and controlConfiguration management
2 Risk and testingIncident management
14 1
Chapter 6: Tools Support for Testing
Types of test tools2 Types of test tools
15
1 Effective use of tools: potential benefits and risks
2 Introducing a tool into an organizationChapter review
16 1
PROJECT PRESENTATION (Phase I)
2
PROJECT PRESENTATION (Phase II)
10-
Assessment Criteria
No. Assessment Percentage
1. Mid Exam 25%
2. Final Exam 45%
3. Assignments 10%
4. Quizzes 10%
5. Group Project 10%
Total 100%
11-
Attendance Requirements
You are expected to attend all lectures, seminars, tutorials, and lab sessions or any other classroom activity. Where you fail to attend classes, you cannot expect the lecturer to brief you on what you have missed. You are responsible for your attendance, not the academic staff. Attendance at tutorials and lab sessions will be strictly monitored, and failure to attend will be taken into account.
12-
Submission and Collection of Assignment
All assignments should be handed in at the beginning of the class sessions when they are due. All assignments may be handed back during scheduled classes.
13-
General Information
Students are required to be familiar with the university code Conduct, and to abide by its terms and conditions.
13.1 Copying of Copyright Material By Student
A condition of acceptance as a student is the obligation to abide by the University’s policy on the copying of copyright material. This obligation covers photocopying of any material using the University’s photocopying machines, and the recording off air, and making subsequent copies, of radio or television broadcasts, and photocopying textbooks. Students who flagrantly disregard University policy and copyright requirements will be liable to disciplinary action under the Code of Conduct.
13.2 Academic Misconduct
presented as one’s own creation, unless the source of each quotation or piece of borrowed material is acknowledged with an appropriate citation. Encouraging or assisting another person to commit plagiarism is a form of improper collusion and may attract the same penalties. To prevent Academic Misconduct occurring, students are expected to familiarize themselves with the University policy, the Subject Outline statements, and specific assignment guidelines.
13.3 Guidelines to Avoid Plagiarism
Whenever you copy more than a few words from any source, you must acknowledge that source by putting the quote in quotation marks and providing the name of the author. Full details must be provided in your bibliography. If you copy a diagram, statistical table, map, etc., you must acknowledge the source. The recommended way is to show this under the diagram. If you quote any statistics in your text, the source should be acknowledged. Again full details must be provided in your bibliography. Whenever you use the ideas of any other author you should acknowledge those, using the APA (American Psychological Association) style of referencing.
Students are encouraged to co-operate, but collusion is a form of cheating. Students may use any sources (acknowledged of course) other than the assignments of fellow students. Unless your Subject Leader informs you otherwise, the following guideline should be used: Students may work together in obtaining references, discussing the content of the references and discussing the assignment, but when they write, they must write alone.
13.4 Referencing For Written Work
Referencing is necessary to acknowledge others' ideas, avoid plagiarism, and allow readers to access those others’ ideas. Referencing should:
1. Acknowledge others' ideas 2. Allow readers to find the source 3. Be consistent in format and
4. Acknowledge the source of the referencing format
To attain these qualities, the school recommends use of either the Harvard or American Psychological Association style of referencing, both of which use the author/date.
13.5 Referencing Standards
APA style referencing
Approval
Designed by,
Mr. Yasir Mahmood
Assistant Professor
Approved by,
Dr. Nadeem Ahmed