0% found this document useful (0 votes)
12 views21 pages

Ch3-Agile Development-Part 2

The document discusses the advantages of pair programming, emphasizing collective ownership, informal code reviews, and support for refactoring. It also covers testing methodologies in Extreme Programming (XP), including test-first development, automated testing, and the role of customer involvement in the testing process. Additionally, it introduces Agile project management and the Scrum framework, highlighting its iterative development process and the importance of sprint cycles.

Uploaded by

yararabaya4
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views21 pages

Ch3-Agile Development-Part 2

The document discusses the advantages of pair programming, emphasizing collective ownership, informal code reviews, and support for refactoring. It also covers testing methodologies in Extreme Programming (XP), including test-first development, automated testing, and the role of customer involvement in the testing process. Additionally, it introduces Agile project management and the Scrum framework, highlighting its iterative development process and the importance of sprint cycles.

Uploaded by

yararabaya4
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

Advantages of Pair Programming

1) It supports the idea of collective ownership and responsibility for the


system.
Individuals are not held responsible for problems with the code.
Instead, the team has collective responsibility for resolving these
problems.

2) It acts as an informal review process because each line of code is


looked at by at least two people (Code inspections).

3) It helps support refactoring, which is a process of software improvement.


Where pair programming and collective ownership are used, others
benefit immediately from the refactoring so they are likely to support
the process.

1
Chapter 3 – Agile Software Development

Part 2

Chapter 4 Requirements engineering 2


Topics covered

Testing in XP

Agile project management

Scaling agile methods

30/10/2014 Chapter 3 Agile Software Development 3


Testing in Extreme Programming

4
Test-first development

 Testing is central to XP and XP has developed an approach


where the program is tested after every change has been made.
 XP testing features:
 Test-first development.
 Incremental test development from scenarios.
 User involvement in test development and validation.
 Automated test harnesses are used to run all component tests each
time that a new release is built.
Note: In software engineering, a harness is a framework or
tool that provides an infrastructure for testing or evaluating
software components or systems. It is designed to facilitate
the execution, monitoring, and analysis of tests or
experiments.

It is impossible to test code with many classes and


methods manually. 5
Search activity

AI in Testing

The application of AI techniques and technologies to


enhance and automate various aspects of software
testing

6
Test-driven development

 Instead of writing some code and then writing tests for that
code, you write the tests before you write the code
• Writing tests before code clarifies the requirements to be
implemented.
 Tests are written as programs rather than data so that
they can be executed automatically. The test includes
a check that it has executed correctly.
 Usually relies on a testing framework such as Junit.
 All previous and new tests are run automatically when
new functionality is added, thus checking that the new
functionality has not introduced errors.

https://www.youtube.com/watch?v=eILy4p99ac8
7
Examples of popular testing frameworks used in
software development

1. JUnit: a widely-used testing framework for Java.


2. NUnit: a unit-testing framework for .NET applications.
3. Pytest: a testing framework for Python that emphasizes simplicity and ease of use.
It provides a concise syntax for writing tests and offers powerful features
4. Selenium: Selenium is a popular testing framework for web applications. It allows
automated testing of web browsers across different platforms and supports
multiple programming languages, including Java, C#, Python, and Ruby.

Search for other frameworks ……


8
Test-Driven Development (TDD)

9
Customer involvement

 The role of the customer in the testing process is to help


develop acceptance tests for the stories that are to be
implemented in the next release of the system.
 The customer who is part of the team writes tests as
development proceeds. All new code is therefore validated to
ensure that it is what the customer needs.
 However, people adopting the customer role have limited time
available and so cannot work full-time with the development
team. They may feel that providing the requirements was
enough of a contribution and so may be reluctant to get
involved in the testing process.

10
Test case description for dose checking

30/10/2014 Chapter 3 Agile Software Development 11


Test automation

Explain test automation???


 Test automation means that tests are written as executable
components before the task is implemented
 These testing components should be stand-alone, should simulate the
submission of input to be tested and should check that the result meets
the output specification. An automated test framework (e.g. Junit) is a
system that makes it easy to write executable tests and submit a set of
tests for execution.
 Advantage? As testing is automated, there is always a set of
tests that can be quickly and easily executed
 Whenever any functionality is added to the system, the tests can be run
and problems that the new code has introduced can be caught
immediately.

It is impossible to test code with many classes and


methods manually. 12
XP testing difficulties

 Programmers prefer programming to testing and


sometimes they take short cuts when writing tests. For
example, they may write incomplete tests that do not check
for all possible exceptions that may occur.
 Some tests can be very difficult to write incrementally. For
example, in a complex user interface, it is often difficult to
write unit tests for the code that implements the ‘display
logic’ and workflow between screens.
 It difficult to judge the completeness of a set of tests. Although
you may have a lot of system tests, your test set may not
provide complete coverage.

13
Next Lecture

 Agile Project Management


 Scaling Agile Methods

14
Agile Project Management

15
Agile project management

 The principal responsibility of software project managers is to


manage the project so that the software is delivered on time and
within the planned budget for the project.
 The standard approach to project management is plan-driven.
Managers draw up a plan for the project showing what should be
delivered, when it should be delivered and who will work on the
development of the project deliverables.
 Agile project management requires a different approach, which is
adapted to incremental development and the practices used in agile
methods.

agile development has to be managed


16
Scrum
What is scrum?

 Scrum is a general agile method but its focus is on


managing iterative development rather than specific
agile practices. [Agile management framework ]
 There are three phases in Scrum.
 The initial phase is an outline planning phase where you
establish the general objectives for the project and design the
software architecture.
 This is followed by a series of sprint cycles, where each cycle
develops an increment of the system.
 The project closure phase wraps up the project, completes
required documentation such as system help frames and user
manuals and assesses the lessons learned from the project.

30/10/2014 Chapter 3 Agile Software Development 17
Discussion

Scrum is a management framework.

Scrum does not prescribe the use of programming practices


such as pair programming and test-first development.

It can therefore be used with more technical agile approaches,


such as XP, to provide a management framework for the project

18
The scrum Process

The innovative feature of Scrum is its central phase, namely the sprint cycles

The work to be done is assessed, features are selected for development,


and the software is implemented. At the end of a sprint, the completed
functionality is delivered to stakeholders (review)
19
The Sprint cycle

 Sprints are fixed length, normally 2–4 weeks. They


correspond to the development of a release of the system in
XP.
 The starting point for planning is the product backlog
(what is), which is the list of work to be done on the project.
 The selection phase involves all of the project team who
work with the customer to select the features and
functionality to be developed during the sprint.

20
The Sprint cycle

 Once these are agreed, the team organize themselves to develop the
software. Short daily meetings involving all team members are held to
review progress and if necessary, reprioritize work. During this stage the
team is isolated from the customer and the organization, with all
communications channelled through the so-called
‘Scrum master’.
 The role of the Scrum master is to protect the development team from
external distractions.
 At the end of the sprint, the work done is reviewed and presented to
stakeholders. The next sprint cycle then begins.

21

You might also like