= Session=
* Track: Testing
* Topic: The test pyramid and speeding up your results
=Description=
Testing at different levels of the test pyramid (unit, integration, and system level) come with benefits and trade-offs. One of the primary trade-offs is time to execution; as you get higher in the pyramid the tests take longer to complete. This session will describe current practices in splitting tests into their levels and future work on improving test execution time (NB: from the perspective a test writer, not infrastructure).
=Questions to answer and discuss=
**Question:** Is the test pyramid concept valuable to Wikimedia and if so, why?
**Significance:** Depending on the consensus on this we may move the discussion in different directions.
**Question:** When we talk about the different levels of the test pyramid, is that easy to visualize in MediaWiki core's tests? What about extension/skin tests?
**Significance:**
**Question**: How often do you write unit tests? Integration tests? System tests? Why / why not? What are the pain points of each, are there things we can change in our tooling to help?
= Related Issues =
* ...
* ...
=Optional pre-reading for all Participants=
* [TestPyramid](https://martinfowler.com/bliki/TestPyramid.html)
* [Software testing anti-patterns](http://blog.codepipes.com/testing/software-testing-antipatterns.html)
=Optional pre-session activity=
Bonus points if you spend 10 minutes analyzing an extension or a subsystem of core and attempt to figure out what the "test pyramid" (or is it an ice cream cone?) looks like for that extension/subsystem.
=Remote participation=
Please add your responses to the questions via the comments on this task. Also happy to add more discussion questions to guide this session.
----
=Notes document(s)=
https://etherpad.wikimedia.org/p/WMTC19-T234637
=Notes and Facilitation guidance=
https://www.mediawiki.org/wiki/Wikimedia_Technical_Conference/2019/NotesandFacilitation
----
=Session Leader(s)=
* @kostajh
* @Jrbranaa
=Session Scribes=
* [name]
* [name]
=Session Facilitator=
* [name]
=Session Style / Format=
* [what type of format will this session be?]
----
**Session Leaders** please:
[X] Add more details to this task description.
[X] Coordinate any pre-event discussions (here on Phab, IRC, email, hangout, etc).
[X] Outline the plan for discussing this topic at the event.
[] Optionally, include what this session will //not// try to solve.
[] Update this task with summaries of any pre-event discussions.
[X] Include ways for people not attending to be involved in discussions before the event and afterwards.
----
Post-event summary:
* ...
Post-event action items:
* ...