per person /

Free

Home Courses

SOFTWARE ENGINEERING AND TESTING

SOFTWARE ENGINEERING AND TESTING

Teacher

SUSANTA KUMAR NAYAK

Category

Course Attendees

Still no participant

Course Reviews

Still no reviews

SOFTWARE ENGINEERING AND TESTING  - CUCS1011   [1-2-0]

Course Objective:

  • The objective of the course is to provide understanding of the Software Engineering Fundamentals, Requirements Engineering, and Software Design Principles etc.
  • Provide the skills for understanding the techniques to acquire Object-Oriented Design Skills, Gain Expertise in Software And Verification.
  •  To learn the Ensure Software Quality Assurance and Software Maintenance and Evolution.

Course Outcomes:

COs Course outcomes
CO1 Knowledge on the software development life cycle (SDLC) phases and their significance with respect to various software process models (Waterfall, Agile, Spiral) and comparison their concepts.
CO2 Acquire the roles and responsibilities within software development teams and differentiate between functional and non-functional requirements in software engineering.
CO3 Applying requirement elicitation techniques (interviews, surveys) to gather software requirements effectively and evaluate the effectiveness of different software testing strategies for specific scenarios.
CO4 Creating comprehensive requirement specifications using use case modeling and user stories.
CO5 Critique and compare different software process models based on project requirements and evaluate the impact of software design decisions on system scalability and maintainability.

CO/ PO Mapping:

CO, PO Mapping Matrix
CO/PO PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12 PSO1 PSO2 PSO3
CO1 3 3 3 3 2 2 3 2 2 1 3 2 1
CO2 2 2 2 3 3 1 2 3 3 2 2 3 1
CO3 2 3 3 2 2 2 3 2 2 1 3 2 2
CO4 3 3 3 3 3 1 2 3 3 2 2 3 1
CO5 3 2 2 2 3 2 3 2 2 3 3 2 1

Course Content:

 

Module 1: Software Engineering (4hrs)

  • Overview of Software Engineering
  • Software Development Life Cycle (SDLC)
  • Software Process Models: Waterfall, Agile, Spiral
  • Roles and Responsibilities in Software Development Teams

Module 2: Requirements Engineering (4hrs)

  • Requirements Elicitation and Analysis
  • Functional and Non-functional Requirements
  • Use Case Modeling and User Stories
  • Requirement Specification and Documentation

Module 3: Software Design Principles (4hrs)

  • Software Design Basics
  • Modularization and Abstraction
  • Design Patterns: Creational, Structural, Behavioral
  • Architectural Styles: Layered, Client-Server, MVC

Module 4: Object-Oriented Design (3hrs)

  • Object-Oriented Programming
  • Classes, Objects, and Inheritance
  • Encapsulation and Polymorphism
  • Design Principles: SOLID, GRASP

Module 5: Software Testing Fundamentals (5hrs)

  • Software Testing
  • Testing Levels: Unit Testing, Integration Testing, System Testing
  • Testing Techniques: Black Box, White Box, Grey Box
  • Test Case Design: Equivalence Partitioning, Boundary Value Analysis
  • Testing Strategies: Regression Testing, Smoke Testing, Acceptance Testing
  • Test Planning and Execution
  • Test Automation Frameworks and Tools
  • Continuous Integration and Continuous Testing

Module 6: Software Quality Assurance (3hrs)

  • Quality Assurance Quality Control
  • Software Quality Attributes: Reliability, Usability, Maintainability, Scalability
  • Metrics for Software Quality Measurement
  • Defect Tracking and Management

Module 7: Software Maintenance and Evolution (3hrs)

  • Software Maintenance Activities: Corrective, Adaptive, Perfective
  • Impact Analysis and Change Management
  • Refactoring Techniques
  • Legacy System Migration and Modernization

Practical/Labs:

 

Lab 1: Requirement Elicitation Techniques: Interviews, Surveys;

Lab 2: Use Case Modeling and User Story Writing;

Lab 3: Software Design Exercise: UML Diagrams;

Lab 4: Object-Oriented Design Principles: Implementation in Java/C++;

Lab 5: Writing and Executing Unit Tests;

Lab 6: Integration Testing: Testing APIs and Interfaces;

Lab 7: Test Automation Using Selenium or Junit;

Lab 8: Software Quality Metrics ;

Lab 9: Software Measurement techniques and method;

Lab 10: Defect Tracking and Management Tools;

Lab 11: Refactoring Legacy Codebase Maintenance;

Lab12: Verification and validation Testing;

Lab13: More Oops design principles Implementation in C++;

 

 

Recommended Resources:

 

  • Books:
    • "Software Engineering: A Practitioner's Approach" by Roger Pressman
    • "Clean Code: A Handbook of Agile Software Craftsmanship" by Robert Martin
    • " Software Testing" by Paul Ammann and Jeff Offutt

Online Courses:

  • Coursera: "Software Engineering Fundamentals" by University of Alberta
  • edX: "Software Testing Fundamentals" by University of Maryland
  • Udemy: "Java Design Patterns and Architecture" by various instructors

Tools:

  • Version Control Systems: Git, Subversion
  • Integrated Development Environments (IDEs): Eclipse, IntelliJ IDEA
  • Testing Tools: JUnit, Selenium, JIRA, Bugzilla

SESSION PLAN:

 

Session(Theory) :

Overview of Software Engineering: 

Software Development Life Cycle (SDLC)

Notes1: : https://www.geeksforgeeks.org/software-engineering-introduction-to-software-engineering/

Video: https://www.youtube.com/watch?v=ITlyBV4ttts

https://www.youtube.com/watch?v=IHx9ImEMuzQ

Video: https://www.youtube.com/watch?v=SaCYkPD4_K0

Software Process Models: Waterfall, Agile, Spiral, Roles and Responsibilities in Software Development Teams

Notes: https://www.educative.io/blog/software-process-model-types

Video : https://www.youtube.com/watch?v=kwsKr1MObxs

Session(Practical):

Requirement Elicitation Techniques: Interviews, Surveys

Notes:1https://www.jamasoftware.com/requirements-management-guide/requirements-gathering-and-management-processes/a-guide-to-requirements-elicitation-for-product-teams

Note 2: https://www.geeksforgeeks.org/software-engineering-requirements-elicitation/

Video : https://www.youtube.com/watch?v=5dcLOm1LwYw

Session(Practical):

Requirement Elicitation Techniques: Interviews, Surveys

Notes:1https://www.jamasoftware.com/requirements-management-guide/requirements-gathering-and-management-processes/a-guide-to-requirements-elicitation-for-product-teams

Note 2: https://www.geeksforgeeks.org/software-engineering-requirements-elicitation/

Video : https://www.youtube.com/watch?v=5dcLOm1LwYw

Session(Theory) :

Requirements Elicitation and Analysis

Functional and Non-functional Requirements

Vides : https://www.youtube.com/watch?v=sTUccQ8QG0I

Notes: https://www.geeksforgeeks.org/functional-vs-non-functional-requirements/

Session(Practical):

Use Case Modeling and User Story Writing

Notes: https://www.knowledgehut.com/blog/agile/use-cases-how-are-they-different-from-user-stories-how-to-create-them

Video: https://www.youtube.com/watch?v=zHKcBYzHK6A

Video: https://www.youtube.com/watch?v=SRRQCDZQ6G4

Session(Practical):

Use Case Modeling and User Story Writing

Notes:https://www.knowledgehut.com/blog/agile/use-cases-how-are-they-different-from-user-stories-how-to-create-them

Video: https://www.youtube.com/watch?v=zHKcBYzHK6A

Video: https://www.youtube.com/watch?v=SRRQCDZQ6G4

Session(Theory) :

Integration Testing: Testing APIs and Interfaces

Notes : https://www.merge.dev/blog/api-integration-testing#:~:text=API%20integration%20testing%20is%20the,rate%20limiting%2C%20and%20response%20bodies.

Notes https://www.leapwork.com/blog/api-testing-vs-integration-testing-whats-the-difference

Video: https://www.youtube.com/watch?v=DsLa4SSF37o

Session(Practical):

Software Design Exercise: UML Diagrams

Notes:https://courses.cs.washington.edu/courses/cse403/09sp/lectures/lecture07-uml.pdf

Video: https://www.youtube.com/watch?v=efJPNX03JVk

Session(Practical):

Software Design Exercise: UML Diagrams

Notes:https://courses.cs.washington.edu/courses/cse403/09sp/lectures/lecture07-uml.pdf

Video: https://www.youtube.com/watch?v=efJPNX03JVk

Session(Theory) :

Requirement Specification and Documentation

Note: https://www.geeksforgeeks.org/software-requirement-specification-srs-format/

Video: https://www.youtube.com/watch?v=klMyKL6luS8

Video: https://www.youtube.com/watch?v=2SUNWVwQaXs

Session(Practical):

Object-Oriented Design Principles: Implementation in Java/C++

Notes : https://www.digitalocean.com/community/conceptual-articles/s-o-l-i-d-the-first-five-principles-of-object-oriented-design

Video: https://www.youtube.com/watch?v=GtZtQ2VFweA

Session(Practical):

Object-Oriented Design Principles: Implementation in Java/C++

Notes : https://www.digitalocean.com/community/conceptual-articles/s-o-l-i-d-the-first-five-principles-of-object-oriented-design

Video: https://www.youtube.com/watch?v=GtZtQ2VFweA

Session(Theory) :

Integration Testing: Testing APIs and Interfaces

Notes: https://luxequality.com/blog/api-integration-testing/

Notes: https://luxequality.com/blog/api-integration-testing/

Video: https://www.youtube.com/watch?v=xh03Hu19Ixk

Session(Practical):

Writing and Executing Unit Tests

https://www.youtube.com/watch?v=v0A9ztyVyUA

https://www.youtube.com/watch?v=_I2dKKFVmfo

Session(Practical):

Writing and Executing Unit Tests

https://www.youtube.com/watch?v=v0A9ztyVyUA

https://www.youtube.com/watch?v=_I2dKKFVmfo

Session(Theory) :

Modularization and Abstraction, Design Patterns: Creational, Structural Behavioral

Video; https://www.youtube.com/watch?v=Y6wOf3e7TJ4

https://www.youtube.com/watch?v=Hpk601vzhUY

https://www.youtube.com/watch?app=desktop&v=cGVojSNQHUk

Session(Practical):

 

Defect Tracking and Management Tools

Notes : https://theqalead.com/tools/defect-tracking-tools/

Video: https://www.youtube.com/watch?v=CrmdSqfD1hE

Session(Practical):

Defect Tracking and Management Tools

Notes : https://theqalead.com/tools/defect-tracking-tools/

Video: https://www.youtube.com/watch?v=CrmdSqfD1hE

Session(Theory):

Software Quality Metrics and Measurement

Video: https://www.youtube.com/watch?v=M1uc3Fq5z4c

Notes : https://www.geeksforgeeks.org/measuring-software-quality-using-quality-metrics/

Session(Practical):

Architectural Styles: Layered, Architectural Styles: Client-Server,

https://www.youtube.com/watch?v=2JevepuPlYM

https://www.youtube.com/watch?v=kpjCWXnBiFo

Session(Practical):

Architectural Styles: Layered, Architectural Styles: Client-Server,

https://www.youtube.com/watch?v=2JevepuPlYM

https://www.youtube.com/watch?v=kpjCWXnBiFo

Session(Practical):

Architectural Styles: MVC

https://www.youtube.com/watch?v=mtZdybMV4Bw

https://www.youtube.com/watch?v=e9S90R-Y24Q

Session(Theory):

Object-Oriented Programming, Classes, Objects, and Inheritance

https://www.youtube.com/watch?v=RpBBzci_cBk

https://www.youtube.com/watch?v=_vr5faCXFo8

Session(Practical):

Object-Oriented Programming, Classes, Objects, and Inheritance

https://www.youtube.com/watch?v=RpBBzci_cBk

https://www.youtube.com/watch?v=_vr5faCXFo8

Session(Practical):

Encapsulation and Polymorphism

https://www.youtube.com/watch?v=tbi0ow8YW7Y

https://www.youtube.com/watch?v=VevQllpCmgw

Session(Theory):

Design Principles: SOLID, GRASP, Software Testing

https://www.youtube.com/watch?v=fGNF6wuD-fg

https://www.youtube.com/watch?v=L4HLpsFPAtk

Session(Practical):

Design Principles: SOLID, GRASP, Software Testing

https://www.youtube.com/watch?v=fGNF6wuD-fg

https://www.youtube.com/watch?v=L4HLpsFPAtk

Session(Practical):

Testing Levels: Unit Testing, Integration , Test Case Design: Equivalence

https://www.youtube.com/watch?v=TmOBLQ26sOM

https://www.youtube.com/watch?v=8UfQ8quw0Eg

Session(Theory):

Testing Techniques: Black Box, White Box, Grey Box

https://www.youtube.com/watch?v=oX3MQXNI8uw

https://www.youtube.com/watch?v=C5fUkYMV1-0

Session(Practical):

Testing Techniques: Black Box, White Box, Grey Box

https://www.youtube.com/watch?v=oX3MQXNI8uw

https://www.youtube.com/watch?v=C5fUkYMV1-0

Session(Practical):

Smoke Testing, Acceptance Testing, Continuous Integration and Continuous Testing

https://www.youtube.com/watch?v=2FE_RBxVnLg

Session(Theory):

Test Planning and Execution

https://www.youtube.com/watch?v=8U0SO1pa-EA

https://www.youtube.com/watch?v=VPnWoroH7yA

Session(Practical):

Partitioning, Boundary Value Analysis, Testing Strategies: Regression Testing,

https://www.youtube.com/watch?v=H6IRY98Gu44

Session(Practical):

Test Planning and Execution

https://www.youtube.com/watch?v=8U0SO1pa-EA

https://www.youtube.com/watch?v=VPnWoroH7yA

Session(Theory):

Partitioning, Boundary Value Analysis, Testing Strategies: Regression Testing,

https://www.youtube.com/watch?v=H6IRY98Gu44

Session(Practical):

Usability, Maintainability, Scalability

Metrics for Software Quality Measurement

https://www.youtube.com/watch?v=NU_0r5cAJ8E

https://www.youtube.com/watch?v=mJbNOI4_xDU

Session(Practical):

Impact Analysis and Change Management

https://www.youtube.com/watch?v=ed7nZAr81dw

https://www.youtube.com/watch?v=4fqmcF5JNRk

Session(Theory):

Quality Assurance vs. Quality Control

https://www.youtube.com/watch?v=6L4RwALb-ow

https://www.youtube.com/watch?v=RSCGyXQ-YbI

Session(Practical):

Quality Assurance vs. Quality Control

https://www.youtube.com/watch?v=6L4RwALb-ow

https://www.youtube.com/watch?v=RSCGyXQ-YbI

Session(Practical):

Defect Tracking and Management

https://www.youtube.com/watch?v=Rn94w_0XQvs

https://www.youtube.com/watch?v=q6-QIcNCxRo

Session(Theory):

Refactoring Techniques, Legacy System Migration and Modernization

https://www.youtube.com/watch?v=odY0iTatFjM

Session(Practical):

Software Maintenance Activities: Corrective, Adaptive, Perfective

https://www.youtube.com/watch?v=rq4HPm8kptg

https://www.youtube.com/watch?v=X5cBc9z_Ibs

Session(Practical) :

Software Maintenance Activities: Corrective, Adaptive, Perfective

https://www.youtube.com/watch?v=rq4HPm8kptg

https://www.youtube.com/watch?v=X5cBc9z_Ibs

Our Main Teachers