03 - chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)

17
Why don’t developers test? Audience: leads, developers

Upload: igor-bronovskyy

Post on 05-Dec-2014

262 views

Category:

Education


0 download

DESCRIPTION

Чи траплялася вам ситуація, коли на ретроспективі, ви домовилися що будете писати тести. І всі розуміють яку користь вони дадуть. Але й після цього тести пишуться дуже рідко. Ця презентація є спробою знайти причини і роздумом на тему: “Які технічні знання, зміни в технічному і соціальному середовиці необхідні для покращення тестів”. Юрій Чуловський http://itevent.if.ua/lecture/chomu-programisti-ne-testuyut

TRANSCRIPT

Page 1: 03 -  chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)

Why don’t developers

test?

Audience: leads, developers

Page 2: 03 -  chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)

Yuriy Chulovskyy

[email protected]

http://www.linkedin.com/in/yuriychulovskyy

https://github.com/ychulovskyy/desires

8+ years of software development experience 3+ years experience in team leading 10 commercial projects

Page 3: 03 -  chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)

Issues with tests

Inspiration

Analysis

Q&A (any time)

Page 4: 03 -  chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)

What issues with tests did you meet?

Page 5: 03 -  chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)

Inspired by…

John Sonmez

http://simpleprogrammer.com/2010/12/12/back-to-basics-why-unit-testing-is-hard/

http://www.lektorium.tv/lecture/?id=14264

Maxim Dorofeev Simaon Sinek

http://www.youtube.com/watch?v=u4ZoJKF_VuA

Page 6: 03 -  chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)

Why? How? What?

Page 7: 03 -  chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)

How?

• Check that changes works as expected • Check nothing is broken Do mentioned items in a few seconds

Why?

Page 8: 03 -  chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)

• Write tests for new/changed functionality • Support test • Run tests locally to verify your changes • Run tests at CI server to control general picture

What to do?

Page 9: 03 -  chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)

Developers rarely write tests for new functionality

Tests have low priority

Datasets in XML files Many test fails

Tests are not part of “Definition of Done”

Developers do not use tests to check their

changes locally

Tests are not supported

That is why

Hard to localize the issue

Hard to support tests

Unclear reason of test failure: changed or broken functionality?

Test suite contains of 3 parts: 1) tests that prepare data 2) tests that do manipulation 3) tests that validate results

Bad test structure

Hard to extend “best practices” to all teams

Unknown correct behavior

No time to create “Gold test definition”

Unclear which test suite to run to verify the

changes

Running all the test locally will take 10 hours and do

not provide “diffs”

No mapping like “feature – test suite”

Nobody is responsible for this

Cannot run tests from IDE

No unit test, only regression tests

Nobody writes unit tests

It’s easier to write integ-ration tests than use Mocks

We have no experience in Mocks

All items have high coupling

Bad design

No time for planning

Nobody is responsible for reviewing test results from CI on daily basis and

assigning tasks to fix the failures

Page 10: 03 -  chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)

Developers do not use tests to

check their changes locally

Developers rarely write tests for

new functionality

Tests are not supported

Tests are not part of

“Definition of Done”

That is why

Tests have low priority

Do we write tests for new functionality?

Page 11: 03 -  chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)

Developers do not use tests to check their

changes locally

Tests are not supported

Many tests fails

Hard to support tests

Test is low priority item

Hard to localize the issue

Test suite contains of 3 parts: 1) tests that prepare data 2) tests that do manipulation 3) tests that validate results

Do we support tests?

Unclear reason of test failure: changed or broken functionality?

Datasets in XML files

Page 12: 03 -  chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)

Unknown correct behavior

Bad test structure

Do we support tests?

No time to create “Gold test definition”

Hard to extend “best practices” to

all teams

Page 13: 03 -  chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)

Do we use tests to verify local changes?

Developers do not use tests to

check their changes locally

Developers rarely write tests for

new functionality

Tests are not supported

That is why

Many tests fails

Unclear which test suite to run to verify the changes

Running all the test locally will take 10 hours and do

not provide “diffs”

Page 14: 03 -  chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)

No mapping like “feature – test suite”

Do we use tests to verify local changes?

Nobody is responsible for this

Cannot run tests from IDE

No unit test, only regression tests

Nobody writes unit tests

We have no experience in

Mocks

It’s easier to write integ-

ration tests than use Mocks

All items have high coupling

Bad design

No time for planning

Page 15: 03 -  chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)

Do we use tests to verify all changes?

Many tests fails

Nobody is responsible for reviewing test results on daily basis and assigning tasks to fix

the failures

Page 16: 03 -  chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)

Technical Environment Social

We have no experience in Mocks

Cannot run tests from IDE

Tests are not part of “Definition of Done”

It’s easier to write integration tests than use Mocks

Test suite contains of 3 parts: test to setup data, tests to do manipulation, tests to verify data

No time to create “Gold test definition”

Unclear reason of test failure: changed or broken functionality?

Hard to extend “best practices” to all teams

Unclear which test suite to run to verify the changes

Tests have low priority

Many tests fails Nobody is responsible for reviewing test results on daily basis and assigning tasks to fix the failures

Datasets in XML

No mapping like “feature – test suite”

Page 17: 03 -  chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)

Let’s try this technique for your project?