This course will cover basic background and concepts in software testing. In addition, the course will cover the main research topics during the whole software testing lifecycle, including test generation, mutation testing, regression testing, oracle generation, automated debugging and repair. Finally, the course will also introduce recent advances in static analysis and formal verification, as well as bug detection for specific kinds of programs, e.g., concurrent programs, web-based systems, mobile apps, and compilers.
Prerequisite(s)
-
Corequisite(s)
-
Special Requisite(s)
-
Instructor(s)
Instructor Alper Buğra KELEŞ
Course Assistant(s)
-
Schedule
The course is not opened for this semester.
Office Hour(s)
The course is not opened for this semester.
Teaching Methods and Techniques
Lecture, discussion
Principle Sources
Introduction to Software Testing by Paul Ammann and Jeff Offutt. Cambridge University Press. ISBN: 0521880386.
Other Sources
Course Schedules
Week
Contents
Learning Methods
1. Week
Course introduction
Oral Presentation, Laboratory
2. Week
ISTQB and Agile Fundamentals
Oral Presentation, Laboratory
3. Week
Agile & Scrum
Oral Presentation, Laboratory
4. Week
Software Testing Fundamentals
Oral Presentation, Laboratory
5. Week
Test Design and Generation
Oral Presentation, Laboratory
6. Week
Test Execution Techniques and Reporting
Oral Presentation, Laboratory
7. Week
Midterm
Midterm
8. Week
Software Test Automation Tools
Oral Presentation, Laboratory
9. Week
Smoke and Regression Testing
Oral Presentation, Laboratory
10. Week
Unit ve integration Test Automation w/ Selenium and gauge
Oral Presentation, Laboratory
11. Week
System level test automation
Oral Presentation, Laboratory
12. Week
API Testing I w/Postman and Soap UI
Oral Presentation, Laboratory
13. Week
API Test Automation w/ Karete
Oral Presentation, Laboratory
14. Week
Web and API test automation project
Laboratory
15. Week
16. Week
17. Week
Assessments
Evaluation tools
Quantity
Weight(%)
Midterm(s)
1
40
Presentation
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
Have an ability to apply software testing knowledge and engineering methods.
LO-2
Have an ability to design and conduct a software test process for a software testing project.
LO-3
Have an ability understand and identify various software testing problems, and solve these problems by designing and selecting software test models, criteria, strategies, and methods.
LO-4
Have an ability to use software testing methods and modern software testing tools for their testing projects.