Software Engineering I (02161) First Programming Assignment Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 202
Programming Exercise ◮ Library software ◮ Practice Test-/Behaviour-driven development (TDD/BDD) 1. Development of the application + domain layer using BDD Eric Evans, Domain Driven Design, Addison-Wesley, 2004
Programming Exercise ◮ Library software ◮ Practice Test-/Behaviour-driven development (TDD/BDD) 1. Development of the application + domain layer using BDD ◮ week 1: writing production code for given Cucumber scenarios and step-definitions Eric Evans, Domain Driven Design, Addison-Wesley, 2004
Programming Exercise ◮ Library software ◮ Practice Test-/Behaviour-driven development (TDD/BDD) 1. Development of the application + domain layer using BDD ◮ week 1: writing production code for given Cucumber scenarios and step-definitions ◮ week 2: write your own step definitions and Cucumber features Eric Evans, Domain Driven Design, Addison-Wesley, 2004
Programming Exercise ◮ Library software ◮ Practice Test-/Behaviour-driven development (TDD/BDD) 1. Development of the application + domain layer using BDD ◮ week 1: writing production code for given Cucumber scenarios and step-definitions ◮ week 2: write your own step definitions and Cucumber features ◮ week 3: use mocking to make tests independent of external systems Eric Evans, Domain Driven Design, Addison-Wesley, 2004
Programming Exercise ◮ Library software ◮ Practice Test-/Behaviour-driven development (TDD/BDD) 1. Development of the application + domain layer using BDD ◮ week 1: writing production code for given Cucumber scenarios and step-definitions ◮ week 2: write your own step definitions and Cucumber features ◮ week 3: use mocking to make tests independent of external systems ◮ week 4+5: refactoring and BDD Eric Evans, Domain Driven Design, Addison-Wesley, 2004
Programming Exercise ◮ Library software ◮ Practice Test-/Behaviour-driven development (TDD/BDD) 1. Development of the application + domain layer using BDD ◮ week 1: writing production code for given Cucumber scenarios and step-definitions ◮ week 2: write your own step definitions and Cucumber features ◮ week 3: use mocking to make tests independent of external systems ◮ week 4+5: refactoring and BDD 2. Presentation layer (an option will be Eric Evans, Domain Driven Design, Addison-Wesley, presented in the course) 2004 3. Simple persistency layer (an option will be presented in the course)
First week’s assignment ◮ Given use case scenarios for: Admin Login, Admin logout, Add book, and Search book Scenario: Administrator can login Given that the administrator is not logged in And the password is "adminadmin" Then the administrator login succeeds And the adminstrator is logged in ◮ And step definitions @Given("that the administrator is not logged in") public void thatTheAdministratorIsNotLoggedIn() throws Exception { assertFalse(libraryApp.adminLoggedIn()); } @Then("the administrator login succeeds") public void theAdministratorLoginSucceeds() throws Exception { assertTrue(libraryApp.adminLogin(password)); } ... ◮ Implement the production code ◮ Test have to pass ◮ More information at http://www2.imm.dtu.dk/courses/02161/2020/ programming_exercises.html
Recommend
More recommend