Course Objectives: |
This course aims to provide an introduction for the software testing principles and techniques and the opportunity for students to have some practical knowledge on software testing. In this course, students are expected to learn why software systems need to be tested, the different techniques on software testing, and the tools for automating software testing. The students are also expected to learn the software usability testing and the code inspection. Moreover, the course aims at introducing the software model checking techniques and how to write quality software code using the Design-by-Contract approach. The design-by-contract approach will be used with the Java modelling language. |
Course Content: |
White-box Testi, Black-box Testi, Unit Testi, Integration Testi, Regression Testi, Acceptance Testi, Usability Testi, Kod Denetimi, Model Sınama, Design-by-Contract, Java Modeling Language |
Course Notes / Textbooks: |
(Essential) Software Testing 2nd edition, by Ron Patton, Sams Publishing, 2005
(Supplementary) Spin Model Checker, the: Primer and Reference Manual, 1st edition, by Gerard Holzmann, Addison-Wesley Professional, 2003 |
References: |
Gary T. Leavens and Yoonsik Cheon. Design by Contract with JML. Draft, available from jmlspecs.org., 2005.
P. Chalin, J. Kinirya, G. Leavens, and E. Poll. Beyond assertions:
Advanced specification and verification with JML and ESC/Java2.
FMCO’05, LNCS 4111, 77–101. Springer, 2006. |
|
Program Outcomes |
Level of Contribution |
1) |
Sufficient knowledge in mathematics, science and software engineering discipline-specific topics; the theoretical and practical knowledge in these areas, the ability to use in complex engineering problems. |
|
2) |
The ability to identify, formulate, and solve complex engineering problems; selecting and applying appropriate analysis and modelling methods for this purpose. |
|
3) |
The ability to design a complex system, process, device or product under realistic constraints and conditions to meet specific requirements; the ability to apply modern design methods for this purpose. |
|
4) |
Ability to develop, select and use modern techniques and tools necessary for analysis and solution of complex problems in engineering applications; ability to use information technologies effectively. |
|
5) |
Ability to design experiments, conduct experiments, collect data, analyse and interpret the results of complex engineering problems or discipline-specific research topics. |
|
6) |
Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi. |
|
7) |
Awareness of the need for lifelong learning; access to knowledge, ability to follow developments in science and technology, and constant self-renewal. |
|
8) |
Effective communication skills in Turkish oral and written communication; at least one foreign language knowledge; ability to write effective reports and understand written reports, to prepare design and production reports, to make effective presentations, to give clear and understandable instructions and to receive. |
|
9) |
Conformity to ethical principles, professional and ethical responsibility; Information on standards used in engineering applications. |
|
10) |
Information on practices in business, such as project management, risk management and change management; awareness about entrepreneurship, innovation; information on sustainable development. |
|
11) |
Information on the effects of engineering applications on health, environment, and safety in universal and social dimensions, and on the problems of the modern age in engineering; awareness of the legal consequences of engineering solutions. |
|
12) |
Adequate skills in the analysis, design, verification, evaluation, implementation, implementation, and maintenance of software systems |
|