SWE411 Software Verification and ValidationIstinye UniversityDegree Programs Software Engineering (English)General Information For StudentsDiploma SupplementErasmus Policy StatementNational Qualifications
Software Engineering (English)

Preview

Bachelor TR-NQF-HE: Level 6 QF-EHEA: First Cycle EQF-LLL: Level 6

Course Introduction and Application Information

Course Code: SWE411
Course Name: Software Verification and Validation
Semester: Fall
Course Credits:
ECTS
6
Language of instruction: English
Course Condition:
Does the Course Require Work Experience?: No
Type of course: Compulsory Courses
Course Level:
Bachelor TR-NQF-HE:6. Master`s Degree QF-EHEA:First Cycle EQF-LLL:6. Master`s Degree
Mode of Delivery: Face to face
Course Coordinator: Doç. Dr. BAHMAN ARASTEH ABBASABAD
Course Lecturer(s): Assoc. Prof. Dr. Bahman Arasteh Abbasabad
Course Assistants:

Course Objective and Content

Course Objectives: This course provides an in-depth exploration of various test techniques and their applicability in ensuring software reliability. Students will gain a comprehensive understanding of software verification and validation, along with an overview of functional (black box) testing, structural (white box) testing, integration testing, mutation testing, model-based testing, and test case generation. The course also covers software reliability modeling and its connection to testing, emphasizing the importance of reliability considerations. Additionally, students will be introduced to the testing process, testing tools, and automation techniques.
Course Content: Software is used extensively in different systems such as transportation systems, medical services, embedded applications, household appliances and mobile phones. Quality Control in Software Testing is a systematic set of processes used to ensure the quality of software products or services. The main purpose of the quality control process is ensuring that the software product meets the actual requirements and includes minimal bug(fault). Software testing refers to a process which improves the quality of software systems and also is one of important stage in the software development process. İn this cource, students learn to test software effectively. Programmers learn practical ways to design high quality tests during all phases of software development. Students learn the theory behind criteria-based test design and to apply that theory in practice. Topics include test design, test automation, test coverage criteria and tools.

Learning Outcomes

The students who have succeeded in this course;
1) Students will learn standard effective, practical software testing techniques
2) Students will design and implement high quality tests for unit, integration and regression testing.
3) Students will learn test automation techniques and will familiar with the test tools
4) Students will learn the mutation test techniques and tools

Course Flow Plan

Week Subject Related Preparation
1) Why Do We Test Software? What are the goals of testing software?
2) Graph Coverage Criteria (Overview)
3) Structural Graph Coverage for Source Code
4) Data Flow Graph Coverage for Source Code
5) Nunit, Junit, Jasmin tools
6) Testing Sequencing Constraints
7) Graph Coverage for Use Cases Scenario
8) Midterm Exam
9) Model-Driven Test Design
10) UI test using Selenium tool
11) UI testı 2
12) API Test using Postman
13) Security Test
14) Software Mutation Test

Sources

Course Notes / Textbooks: Introduction to Software Testing , by Paul Ammann and Jeff Offutt
References: https://cs.gmu.edu/~offutt/softwaretest/

Course - Program Learning Outcome Relationship

Course Learning Outcomes

1

2

3

4

Program Outcomes
1) Adequate knowledge in mathematics, science and software engineering; the ability to use theoretical and practical knowledge in these areas in complex engineering problems.
2) Ability to identify, formulate, and solve complex software engineering problems; ability to select and apply appropriate analysis and modeling methods for this purpose.
3) Ability to design, implement, verify, validate, measure and maintain a complex software system, process, device or product to meet specific requirements under realistic constraints and conditions; ability to apply modern design methods for this purpose.
4) Ability to develop, select and use modern techniques and tools necessary for the analysis and solution of complex problems encountered in software engineering applications; ability to use information technologies effectively.
5) Ability to design, conduct experiments, collect data, analyze and interpret results for the study of complex engineering problems or software engineering research topics.
6) Ability to work effectively within and multidisciplinary teams; individual study skills.
7) Ability to communicate effectively orally and in writing; knowledge of at least one foreign language; ability to write effectice reports and understand written reports, to prepare design and production reports, to make effective presentations, to give and receive clear and understandable instructions.
8) Awareness of the necessity of lifelong learning; ability to access information, to follow developments in science and technology and to renew continuously.
9) To act in accordance with ethical principles, professional and ethical responsibility; information on the standards used in engineering applications.
10) Information on business practices such as project management, risk management and change management; awareness of entrepreneurship and innovation; information about sustainable development.
11) Knowledge of the effects of software engineering practices on health, environment and safety in the universal and social scale and the problems of the era reflected in software engineering; awareness of the legal consequences of software engineering solutions.

Course - Learning Outcome Relationship

No Effect 1 Lowest 2 Average 3 Highest
       
Program Outcomes Level of Contribution
1) Adequate knowledge in mathematics, science and software engineering; the ability to use theoretical and practical knowledge in these areas in complex engineering problems.
2) Ability to identify, formulate, and solve complex software engineering problems; ability to select and apply appropriate analysis and modeling methods for this purpose.
3) Ability to design, implement, verify, validate, measure and maintain a complex software system, process, device or product to meet specific requirements under realistic constraints and conditions; ability to apply modern design methods for this purpose.
4) Ability to develop, select and use modern techniques and tools necessary for the analysis and solution of complex problems encountered in software engineering applications; ability to use information technologies effectively.
5) Ability to design, conduct experiments, collect data, analyze and interpret results for the study of complex engineering problems or software engineering research topics.
6) Ability to work effectively within and multidisciplinary teams; individual study skills.
7) Ability to communicate effectively orally and in writing; knowledge of at least one foreign language; ability to write effectice reports and understand written reports, to prepare design and production reports, to make effective presentations, to give and receive clear and understandable instructions.
8) Awareness of the necessity of lifelong learning; ability to access information, to follow developments in science and technology and to renew continuously.
9) To act in accordance with ethical principles, professional and ethical responsibility; information on the standards used in engineering applications.
10) Information on business practices such as project management, risk management and change management; awareness of entrepreneurship and innovation; information about sustainable development.
11) Knowledge of the effects of software engineering practices on health, environment and safety in the universal and social scale and the problems of the era reflected in software engineering; awareness of the legal consequences of software engineering solutions.

Assessment & Grading

Semester Requirements Number of Activities Level of Contribution
Project 3 % 30
Midterms 1 % 20
Final 1 % 50
total % 100
PERCENTAGE OF SEMESTER WORK % 50
PERCENTAGE OF FINAL WORK % 50
total % 100

Workload and ECTS Credit Calculation

Activities Number of Activities Workload
Course Hours 12 36
Study Hours Out of Class 14 28
Homework Assignments 3 30
Midterms 1 20
Final 1 25
Total Workload 139