2/3 - Agile Processes and Extreme Programming Flashcards

1
Q

Test Driven Development

A
  1. Testing first clarifies the task at hand
  2. Forces you to think in concrete terms
  3. Helps identify and focus corner cases
  4. Testing forces simplicity
    a. Your goal is to pass the test
    b. Avoids premature optimization
  5. Test acts as a useful documentation. Expose the programmer’s intent.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Bug Fixes

A
  1. Fail a unit test
  2. Fail an acceptance test (user story)
  3. Fail on beta testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Bug Fix for Unit Test

A

Fix the code to past the test

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Bug Fix for Acceptance Test (User Story)

A

Add a functional test to fix the code

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Bug Fix for Beta Testing

A
  1. Add user stories, acceptance tests

2. Make one or more tests from failing scenario

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

When do we need to write code to fix tests?

A

ALWAYS write code to fix tests

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Refactoring

A
  1. It is done to make code easier to read, use and extend
  2. Change how code does something
  3. Tests should work as before
  4. Refactoring is also done to remove duplicated code
  5. Comprehensive suite is needed for refactoring
  6. Only refactor working code
  7. Plan it to allow frequent regression tests
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

How should tests work during refactoring?

A

Tests should work AS BEFORE

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What does refactoring do to duplicated code?

A

Refactoring REMOVES duplicated code

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What kind of suite is needed for refactoring?

A

A COMPREHENSIVE suite is needed for refactoring

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Which kind of code can be refactored?

A

Only refactor WORKING code

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What’s Different About XP

A
  1. Every XP programmer participates as an analyst, tester, programmer, architects
  2. No complete upfront design and analysis
  3. Infrastructure and framework is developed as you develop the app
  4. Quick delivering business value
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

When are infrastructure and framework developed in XP?

A

Infrastructure and framework is developed as you develop the app

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What do you use XP for?

A
  1. Dynamic project done in small teams
  2. Project requirements prone to change
  3. Customer is available
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

When do you NOT use XP?

A
  1. Cost of late changes is very high

2. Customer is not available

How well did you know this?
1
Not at all
2
3
4
5
Perfectly