{"guid":"QKLVnOnbgM_kyssW9UOh5w","title":"Testing complex software in CI","subtitle":"","slug":"1052-testing-complex-software-in-ci","link":"https://c3voc.de","description":"This talk will show stories from the trenches of developing tests for SSSD and \nSamba. How we developed complete integration tests that exercise all the \ncapabilities of our software and run in environments without a real network \naccess, without requiring root or sudo or touching the important OS \ninterfaces.\n\nThe authors of this talk work on SSSD, Samba and libssh - software that \ncommunicates over the network, often requires root access and communicates \nthrough OS interfaces. In this talk, we will show how we developed complete \nintegration tests that exercise all the capabilities of our software and run \nin environments without a real network access, without requiring root or sudo \nor touching the important OS interfaces.\n\nIn addition, our goal was that the tests must be easy to develop and must run \nboth locally on developer's machine as well as inside popular CI engines of \ntoday, like Travis or Semaphore. To meet these goals, we had to leverage \nexisting testing tools, but also build new ones such as pam_wrapper or \nlibpamtest to be able to test OS-level PAM authentication and authorization.\n\nThis talk will be useful for developers who write tests for software that is \nnormally not easy to test -- attending the talk will show you how to test \ncomplex software systems in isolation.","original_language":"eng","persons":["Andreas Schneider"],"tags":["osc16_dv"],"view_count":68,"promoted":false,"date":"2016-06-24T00:00:00.000+02:00","release_date":"2016-06-25T02:00:00.000+02:00","updated_at":"2026-03-13T08:00:05.551+01:00","length":2721,"duration":2721,"thumb_url":"https://static.media.ccc.de/media/events/osc/2016/1052-sd.jpg","poster_url":"https://static.media.ccc.de/media/events/osc/2016/1052-sd_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/osc/2016/QKLVnOnbgM_kyssW9UOh5w-timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/osc/2016/QKLVnOnbgM_kyssW9UOh5w-thumbnails.vtt","frontend_link":"https://media.ccc.de/v/1052-testing-complex-software-in-ci","url":"https://api.media.ccc.de/public/events/QKLVnOnbgM_kyssW9UOh5w","conference_title":"openSUSE Conference 2016","conference_url":"https://api.media.ccc.de/public/conferences/osc16","related":[{"event_id":202,"event_guid":"import-ee4e2da9f8579fe7e5","weight":1},{"event_id":655,"event_guid":"import-016622512f1824d52c","weight":1},{"event_id":758,"event_guid":"import-540cd24572d4e80cfc","weight":1},{"event_id":2314,"event_guid":"dd999f2a-cb52-468b-abd9-8ecdee0f4fa3","weight":1},{"event_id":2448,"event_guid":"49d47154-9156-46e4-8869-89c1a9be94c6","weight":1},{"event_id":2449,"event_guid":"cd793876-8f18-46cf-a28e-304e290ca3fd","weight":1},{"event_id":2466,"event_guid":"882370ef-642d-43ba-b91d-22e9e87e9a1f","weight":1},{"event_id":2492,"event_guid":"2b4f6479-8241-4ede-b025-328d476c52ba","weight":1},{"event_id":2540,"event_guid":"cd66723d-23cc-40e7-9b76-f9b38dc576ab","weight":1},{"event_id":2548,"event_guid":"df27b8d8-cd90-4127-8952-cd4cfe756e38","weight":1},{"event_id":2619,"event_guid":"cbba409c-d155-4e0b-b681-fdc66e514611","weight":1},{"event_id":2813,"event_guid":"7d2e79be-5d42-425b-a335-c41fd18431fb","weight":1},{"event_id":2869,"event_guid":"e6217eeb-68ef-44b4-8e6e-beebe6a5195c","weight":1},{"event_id":2890,"event_guid":"b7327513-182a-455a-932e-aab4791f5331","weight":1},{"event_id":3155,"event_guid":"85EHQFfFqbQ-xEz28bu9Ug","weight":1},{"event_id":3181,"event_guid":"1eCzWEKET26oH-amTkCmsg","weight":1},{"event_id":3191,"event_guid":"yaWEI3eHTzZhZQygkwro0Q","weight":1},{"event_id":3199,"event_guid":"Zz12nSU5j4wZHqNs1C9ktg","weight":1},{"event_id":3203,"event_guid":"o3ue0K_eHD78ZXszamXCfg","weight":1},{"event_id":3231,"event_guid":"ZailH5jsKoZjybdb_srn9A","weight":1},{"event_id":3585,"event_guid":"c6df6d43-bd15-53df-a4be-ff3d14e20c1b","weight":1},{"event_id":3590,"event_guid":"8edd7c4d-0b8e-57d9-8e38-df11f1434e22","weight":1},{"event_id":3591,"event_guid":"856fcabc-582c-54da-a457-ecb97febb7d9","weight":1},{"event_id":3628,"event_guid":"4de841b2-0f34-494e-ba5b-0b79ba2c88cd","weight":1},{"event_id":3774,"event_guid":"a26a0d23-549d-5bd6-8f1e-9803628d5850","weight":1},{"event_id":4288,"event_guid":"6e5a6877-3a72-464f-bf47-4bbd103b41fe","weight":1},{"event_id":4305,"event_guid":"b2b9237b-d45a-4271-9b63-66573c1de3c7","weight":1},{"event_id":4463,"event_guid":"d9f3ec8b-6036-494b-abbe-41de7fff4c5f","weight":1},{"event_id":4803,"event_guid":"23d59026-ab98-4f6c-a46d-0bb3e1788a67","weight":1},{"event_id":4826,"event_guid":"16645200-2036-4a3c-a44d-a5ff44ac2991","weight":1},{"event_id":4846,"event_guid":"832b8fb8-beb1-4d92-93d0-ba3b7568905a","weight":1},{"event_id":4855,"event_guid":"51b586be-500c-436e-b70c-fc433e65c4be","weight":1},{"event_id":4866,"event_guid":"117a52b4-f675-49dd-aafe-659c07b6bc9c","weight":1},{"event_id":4879,"event_guid":"73bcc647-faa3-4c6c-8a48-8d540de454ee","weight":1},{"event_id":4881,"event_guid":"b4ec41ce-8c36-47a3-87a3-984c111cb2a6","weight":1},{"event_id":5222,"event_guid":"42464643-3358-2020-2020-202020202020","weight":1},{"event_id":5225,"event_guid":"57423939-4845-2020-2020-202020202020","weight":1},{"event_id":5234,"event_guid":"43435a46-5951-2020-2020-202020202020","weight":1},{"event_id":5235,"event_guid":"52535255-5245-2020-2020-202020202020","weight":1},{"event_id":5238,"event_guid":"48334a59-4e4a-2020-2020-202020202020","weight":1},{"event_id":5239,"event_guid":"524a3859-5641-2020-2020-202020202020","weight":1},{"event_id":5241,"event_guid":"43335341-4154-2020-2020-202020202020","weight":1},{"event_id":6390,"event_guid":"6a5007f4-e7d6-4c63-9a10-26dd48a6eb6c","weight":1},{"event_id":6500,"event_guid":"064a7014-a88c-462a-b06f-7d6de62d622f","weight":1}],"recordings":[{"size":20,"length":2712,"mime_type":"audio/mpeg","language":"eng","filename":"osc16_dv-1052-eng-Testing_complex_software_in_CI.mp3","state":"new","folder":"mp3-audio-only","high_quality":false,"width":0,"height":0,"updated_at":"2016-06-25T13:16:13.103+02:00","recording_url":"https://cdn.media.ccc.de/events/osc/2016/mp3-audio-only/osc16_dv-1052-eng-Testing_complex_software_in_CI.mp3","url":"https://api.media.ccc.de/public/recordings/11170","event_url":"https://api.media.ccc.de/public/events/QKLVnOnbgM_kyssW9UOh5w","conference_url":"https://api.media.ccc.de/public/conferences/osc16"},{"size":213,"length":2721,"mime_type":"video/webm","language":"eng","filename":"osc16_dv-1052-eng-Testing_complex_software_in_CI_webm.webm","state":"new","folder":"webm","high_quality":false,"width":720,"height":576,"updated_at":"2016-06-25T14:52:22.793+02:00","recording_url":"https://cdn.media.ccc.de/events/osc/2016/webm/osc16_dv-1052-eng-Testing_complex_software_in_CI_webm.webm","url":"https://api.media.ccc.de/public/recordings/11184","event_url":"https://api.media.ccc.de/public/events/QKLVnOnbgM_kyssW9UOh5w","conference_url":"https://api.media.ccc.de/public/conferences/osc16"},{"size":15,"length":2712,"mime_type":"audio/opus","language":"eng","filename":"osc16_dv-1052-eng-Testing_complex_software_in_CI.opus","state":"new","folder":"opus","high_quality":false,"width":0,"height":0,"updated_at":"2016-06-25T13:29:21.468+02:00","recording_url":"https://cdn.media.ccc.de/events/osc/2016/opus/osc16_dv-1052-eng-Testing_complex_software_in_CI.opus","url":"https://api.media.ccc.de/public/recordings/11172","event_url":"https://api.media.ccc.de/public/events/QKLVnOnbgM_kyssW9UOh5w","conference_url":"https://api.media.ccc.de/public/conferences/osc16"},{"size":170,"length":2721,"mime_type":"video/mp4","language":"eng","filename":"osc16_dv-1052-eng-Testing_complex_software_in_CI_sd.mp4","state":"new","folder":"h264-sd","high_quality":false,"width":720,"height":576,"updated_at":"2016-06-25T12:50:17.123+02:00","recording_url":"https://cdn.media.ccc.de/events/osc/2016/h264-sd/osc16_dv-1052-eng-Testing_complex_software_in_CI_sd.mp4","url":"https://api.media.ccc.de/public/recordings/11161","event_url":"https://api.media.ccc.de/public/events/QKLVnOnbgM_kyssW9UOh5w","conference_url":"https://api.media.ccc.de/public/conferences/osc16"}]}