Software Engineering (English) | |||||
Bachelor | TR-NQF-HE: Level 6 | QF-EHEA: First Cycle | EQF-LLL: Level 6 |
Course Code: | SWE411 | ||||
Course Name: | Software Verification and Validation | ||||
Semester: | Fall | ||||
Course Credits: |
|
||||
Language of instruction: | English | ||||
Course Condition: | |||||
Does the Course Require Work Experience?: | No | ||||
Type of course: | Compulsory Courses | ||||
Course Level: |
|
||||
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 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. |
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 |
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 |
Course Notes / Textbooks: | Introduction to Software Testing , by Paul Ammann and Jeff Offutt |
References: | https://cs.gmu.edu/~offutt/softwaretest/ |
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. |
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. |
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 |
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 |