anchor.diff:  
   === Exercise: Write more automated GUI tests
   
  -* Add some more automated GUI tests.
  +* Covered by `[LO-SystemTesting]`
   
   '''
   
  
positive.code: Consider the link:{repoURL}/src/test/java/seedu/address/storage/StorageManagerTest.java[`StorageManagerTest.java`] class.
  
  * Test methods `prefsReadSave()` and `addressBookReadSave()` are integration tests. Note how they simply test if The `StorageManager` class is correctly wired to its dependencies.
  * Test method `handleAddressBookChangedEvent_exceptionThrown_eventRaised()` is a unit test because it uses _dependency injection_ to isolate the SUT `StorageManger::handleAddressBookChangedEvent(...)` from its dependencies.
  
  Compare the above with link:{repoURL}/src/test/java/seedu/address/logic/LogicManagerTest.java[`LogicManagerTest`]. Many of the tests in that class (e.g. `execute_add_*` methods) tests are neither integration nor unit tests. They are a _integration + unit_ tests because they not only checks if the LogicManager is correctly wired to its dependencies, but also checks the working of its dependencies. For example, the following two lines test the the `LogicManager` but also the `Parser`.
  
  [source,java]
  ----
  @Test
  public void execute_add_invalidArgsFormat() throws Exception {
      ...
      assertCommandBehavior("add n/Valid Name 12345 e/valid@email.butNoPhonePrefix a/valid, address", expectedMessage);
      assertCommandBehavior("add n/Valid Name p/12345 valid@email.butNoPrefix a/valid, address", expectedMessage);
      ...
  }
  ----
  
  === Exercise: Write unit and integration tests for the same method.
  
  * Write a unit test for a a high-level methods somewhere in the code base.
  * Write an integration test for the same method.
  
  '''
  
  == Perform System Testing `[LO-SystemTesting]`
  
  Note how tests below `src/test/java/guitests` package (e.g link:{repoURL}/src/test/java/guitests/AddCommandTest.java[`AddCommandTest.java`]) are system tests because they test the entire system end-to-end.
  
  === Exercise: Write more system tests
  
  * Add some more system tests to the existing system tests.
  
  '''
  
  
negative.code: 
  *Resources*
  
  * https://se-edu.github.io/se-book/integration/buildAutomation/what/[se-edu/se-book: Implementation: Integration: Build Automation: What]
  
  === Exercise: Use gradle to run tasks
  
  * Use gradle to do these tasks: Run all tests in headless mode, build the jar file.
  
  === Exercise: Use gradle to manage dependencies
  
  