Software Quality and Testing is a course on concepts, principles, and techniques related to software testing and quality. Students will become acquainted with both the strengths and limitations of various functional and structural testing methods, as well as techniques for proving the functional correctness of sequential programs. Topics include: black-box and white-box test case design strategies, incremental integration testing techniques, inspections and reviews, axiomatic verification, predicate transforms, and function-theoretic verification. Students will have the opportunity to practice the techniques presented in class via optional exercises.
Prerequisite(s)
none
Corequisite(s)
none
Special Requisite(s)
Due to Covid-19 pandemic and in compliance with the directives of the Higher Education Council and University`s Academic Boards this course will be delivered in the 2020-21 Fall Term exclusively on the Distance Education Platforms of the University. Students enrolled in this course are required to have, or have access to a computer system equipped with a camera and microphone and connected to an Internet Service Provider with at least 0.5 Mbps upload and 1 Mbps download bandwidth in order to attend on-line class activities and perform their examinations. In proctored examinations on distance education platforms, authentication and on-line surveillance rules are mandatory for everyone. Students are required to abide fully by the control procedures that are defined to ensure the transparency and integrity of the assessment.
Course slides that are used in support of lecture sessions are posted regularly at the course CATS site. They should be exclusively used as study guidelines. For comprehensive coverage you are advised to refer to the course text book, the references cited in the course syllabus, and the homeworks you have handled.
Principle Sources
Jorgensen, P. C. (2016). Software testing: a craftsman’s approach. CRC press.
Other Sources
Course Schedules
Week
Contents
Learning Methods
1. Week
Course Introduction, Software Testing Concepts: Introduction, Meaning, What is Bug? Reasons of Bugs, Cost of Bugs, Software Tester Task.
Teaching
2. Week
Introduction to Software Development Models and Software Testing:
Testing Axioms, Terms & Definitions
Teaching
3. Week
Software Testing Fundamentals:
Types, Black Box, White Box, Static & Dynamic Testing, Static Black Box Testing
Teaching
4. Week
Dynamic Black Box Testing:
Test to Pass & Test to Fail, Equivalence Partitioning, Data Testing, State Testing, , Other Black Box Testing Techniques
Teaching
5. Week
Static White Box Testing:
Formal Reviews, Peer Reviews, Coding Standards and Guidelines, Review Check List
Dynamic White Box Testing:
Comparison with Debugging, Testing Pieces: Unit & Integration Testing, Data Coverage & Code Coverage.
Teaching
6. Week
Configuration Testing:
Overview, Software and Hardware Devices, Deciding Hardware Configurations.
Compatibility Testing:
Overview, Backward and Forward Compatibility, Testing Multiple versions, Data Sharing Compatibility
User Interface Testing:
Effective UI, Testing for Disabled.
Teaching
7. Week
Midterm
Teaching
8. Week
Documentation Testing:
Types of Documentation, Importance of Documentation Testing.
Security Testing:
Threat Modelling, Buffer Overrun, Safe String Functions, Computer Forensics
Exam
9. Week
Web Site Testing:
Web Page Fundamentals, Black Box Testing: Text, Hyperlinks, graphics, forms.
Gray Box Testing & White Box Testing, Configuration and Compatibility Testing
Teaching
10. Week
Testing Tools:
Benefits of Automation and Tools. Test Tools, Software Test Automation.
Random Testing:
Monkeys & Gorillas.
Bug Bashes & Beta Testing:
Test Sharing, Beta Testing, Outsourcing.
Teaching
11. Week
Planning Testing:
Goals, Test phases, Strategy, Resource Requirements, Schedule, Test Cases, Bug Reporting, Metrics
Teaching
12. Week
Test Cases:
Test Case Planning, Design, Cases, Procedures, Organization and Tracking.
Bug Life Cycle and Tracking System
Teaching
13. Week
Software Quality Assurance:
What is Quality? Testing and Quality Assurance in Workplace.
Test Management
Teaching
14. Week
Organisational Structures:
CMM Capability Maturity Model, ISO 9000.
Teaching
15. Week
16. Week
17. Week
Assessments
Evaluation tools
Quantity
Weight(%)
Midterm(s)
1
40
Homework
1
20
Final Exam
1
40
Program Outcomes
PO-1
Adequate knowledge in mathematics, science and engineering subjects pertaining to the relevant discipline; ability to use theoretical and applied information in these areas to model and solve engineering problems.
PO-2
Ability to identify, formulate, and solve complex engineering problems; ability to select and apply proper analysis and modelling methods for this purpose.
PO-3
Ability to design a complex system, process, device or product under realistic constraints and conditions, in such a way so as to meet the desired result; ability to apply modern design methods for this purpose. (Realistic constraints and conditions may include factors such as economic and environmental issues, sustainability, manufacturability, ethics, health, safety issues, and social and political issues according to the nature of the design.)
PO-4
Ability to devise, select, and use modern techniques and tools needed for engineering practice; ability to employ information technologies effectively.
PO-5
Ability to design and conduct experiments, gather data, analyse and interpret results for investigating engineering problems.
PO-6
Ability to work efficiently in intra-disciplinary and multi-disciplinary teams; ability to work individually.
PO-7
Ability to communicate effectively, both orally and in writing; knowledge of a minimum of one foreign language.
PO-8
Recognition of the need for lifelong learning; ability to access information, to follow developments in science and technology, and to continue to educate him/herself.
PO-9
Awareness of professional and ethical responsibility.
PO-10
Information about business life practices such as project management, risk management, and change management; awareness of entrepreneurship, innovation, and sustainable development.
PO-11
Knowledge about contemporary issues and the global and societal effects of engineering practices on health, environment, and safety; awareness of the legal consequences of engineering solutions.
Learning Outcomes
LO-1
Describe the life cycle-based testing
LO-2
Explain the integration testing, system testing and object oriented testing
LO-3
Define the test driven development and exploratory testing
LO-4
Describe the black box testing, white box testing technique, and model-based testing