{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,7]],"date-time":"2026-04-07T06:21:13Z","timestamp":1775542873111,"version":"3.50.1"},"reference-count":51,"publisher":"Springer Science and Business Media LLC","issue":"2","license":[{"start":{"date-parts":[[2020,1,8]],"date-time":"2020-01-08T00:00:00Z","timestamp":1578441600000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"},{"start":{"date-parts":[[2020,1,8]],"date-time":"2020-01-08T00:00:00Z","timestamp":1578441600000},"content-version":"vor","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Empir Software Eng"],"published-print":{"date-parts":[[2020,3]]},"DOI":"10.1007\/s10664-019-09785-8","type":"journal-article","created":{"date-parts":[[2020,1,8]],"date-time":"2020-01-08T11:02:51Z","timestamp":1578481371000},"page":"1095-1135","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":74,"title":["An empirical characterization of bad practices in continuous integration"],"prefix":"10.1007","volume":"25","author":[{"given":"Fiorella","family":"Zampetti","sequence":"first","affiliation":[]},{"given":"Carmine","family":"Vassallo","sequence":"additional","affiliation":[]},{"given":"Sebastiano","family":"Panichella","sequence":"additional","affiliation":[]},{"given":"Gerardo","family":"Canfora","sequence":"additional","affiliation":[]},{"given":"Harald","family":"Gall","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-0340-9747","authenticated-orcid":false,"given":"Massimiliano","family":"Di Penta","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2020,1,8]]},"reference":[{"key":"9785_CR1","doi-asserted-by":"publisher","unstructured":"Abdalkareem R, Mujahid S, Shihab E, Rilling J (2019) Which commits can be CI skipped?. IEEE Trans Softw Eng:1\u20131. https:\/\/doi.org\/10.1109\/TSE.2019.2897300","DOI":"10.1109\/TSE.2019.2897300"},{"key":"9785_CR2","unstructured":"Amazon (2017) What is continuous delivery? https:\/\/aws.amazon.com\/devops\/continuous-delivery\/"},{"key":"9785_CR3","unstructured":"Basili V R (1992) Software modeling and measurement: The goal\/question\/metric paradigm. Tech. rep. College Park"},{"key":"9785_CR4","unstructured":"Beck K (2000) Extreme programming explained: embrace change. Addison-Wesley Professional"},{"key":"9785_CR5","doi-asserted-by":"crossref","unstructured":"Bell J, Legunsen O, Hilton M, Eloussi L, Yung T, Marinov D (2018) Deflaker: automatically detecting flaky tests. In: Proceedings of the 40th International Conference on Software Engineering, ICSE 2018, Gothenburg, Sweden, pp 433\u2013444","DOI":"10.1145\/3180155.3180164"},{"key":"9785_CR6","unstructured":"Bell J, Booch G (1991) Object Oriented Design: With Applications. Benjamin Cummings"},{"key":"9785_CR7","doi-asserted-by":"crossref","unstructured":"Bell J, Cohen J (1960) A coefficient of agreement for nominal scales. Educ Psychol Meas","DOI":"10.1177\/001316446002000104"},{"key":"9785_CR8","doi-asserted-by":"crossref","unstructured":"Bell J, Deshpande A, Riehle D (2008) Continuous integration in open source software development. Open source development, communities and quality","DOI":"10.1007\/978-0-387-09684-1_23"},{"key":"9785_CR9","doi-asserted-by":"crossref","unstructured":"Bell J, Beller M, Bholanath R, McIntosh S, Zaidman A (2016) Analyzing the state of static analysis: A large-scale evaluation in open source software. In: IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER)","DOI":"10.1109\/SANER.2016.105"},{"key":"9785_CR10","doi-asserted-by":"crossref","unstructured":"Bell J, Beller M, Gousios G, Zaidman A (2017) Oops, my tests broke the build: An explorative analysis of travis ci with github. In: Proceedings of the 14th International Conference on Mining Software Repositories. IEEE Press","DOI":"10.1109\/MSR.2017.62"},{"key":"9785_CR11","doi-asserted-by":"crossref","unstructured":"Bell J, Chen L (2017) Continuous delivery: Overcoming adoption challenges. Journal of Systems and Software","DOI":"10.1145\/2896941.2896956"},{"key":"9785_CR12","unstructured":"Duvall P, Matyas S M, Glover A (2007) Continuous Integration: Improving Software Quality and Reducing Risk. Addison-Wesley"},{"key":"9785_CR13","unstructured":"Duvall PM (2010) Continuous integration. patterns and antipatterns. DZone refcard #84 http:\/\/bit.ly\/l8rfVS"},{"key":"9785_CR14","unstructured":"Duvall PM (2011) Continuous delivery: Patterns and antipatterns in the software life cycle. DZone refcard #145 https:\/\/dzone.com\/refcardz\/continuous-delivery-patterns"},{"key":"9785_CR15","unstructured":"Fowler M, Beck K, Brant J (1999a) Refactoring: improving the design of existing code. Addison-Wesley"},{"key":"9785_CR16","unstructured":"Fowler M, Beck K, Brant J, Opdyke W, Roberts D (1999b) Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional"},{"issue":"1","key":"9785_CR17","doi-asserted-by":"publisher","first-page":"33","DOI":"10.1109\/TSE.2018.2838131","volume":"46","author":"Keheliya Gallaba","year":"2020","unstructured":"Gallaba K, McIntosh S (2018) Use and misuse of continuous integration features: An empirical study of projects that (mis)use Travis CI. IEEE Transactions on Software Engineering (to appear):1\u20131. https:\/\/doi.org\/10.1109\/TSE.2018.2838131","journal-title":"IEEE Transactions on Software Engineering"},{"issue":"4","key":"9785_CR18","doi-asserted-by":"publisher","first-page":"2102","DOI":"10.1007\/s10664-019-09695-9","volume":"24","author":"TA Ghaleb","year":"2019","unstructured":"Ghaleb T A, da Costa D A, Zou Y (2019) An empirical study of the long duration of continuous integration builds. Empir Softw Eng 24(4):2102\u20132139","journal-title":"Empir Softw Eng"},{"key":"9785_CR19","doi-asserted-by":"crossref","unstructured":"Goodman LA (1961) Snowball sampling. The annals of mathematical statistics","DOI":"10.1214\/aoms\/1177705148"},{"key":"9785_CR20","doi-asserted-by":"crossref","unstructured":"Hilton M, Tunnell T, Huang K, Marinov D, Dig D (2016) Usage, costs, and benefits of continuous integration in open-source projects. In: Proceedings of the 31st IEEE\/ACM International Conference on Automated Software Engineering (ASE)","DOI":"10.1145\/2970276.2970358"},{"key":"9785_CR21","doi-asserted-by":"crossref","unstructured":"Hilton M, Nelson N, Tunnell T, Marinov D, Dig D (2017) Trade-offs In continuous integration: Assurance, security, and flexibility. In: Proceedings of the 25th ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE","DOI":"10.1145\/3106237.3106270"},{"key":"9785_CR22","unstructured":"Humble J, Farley D (2010) Continuous delivery: Reliable Software Releases Through Build, Test, and Deployment Automation. Addison-Wesley Professional"},{"key":"9785_CR23","doi-asserted-by":"crossref","unstructured":"Johnson B, Song Y, Murphy-Hill E, Bowdidge R (2013) Why don\u2019t software developers use static analysis tools to find bugs? In: 2013 35th International Conference on Software Engineering (ICSE). IEEE","DOI":"10.1109\/ICSE.2013.6606613"},{"key":"9785_CR24","doi-asserted-by":"crossref","unstructured":"Kerzazi N, Khomh F, Adams B (2014) Why do automated builds break? an empirical study In: 30th IEEE International Conference on Software Maintenance and Evolution (ICSME). IEEE","DOI":"10.1109\/ICSME.2014.26"},{"key":"9785_CR25","unstructured":"Krippendorff K (1980) Content analysis: An introduction to its methodology. Sage"},{"key":"9785_CR26","doi-asserted-by":"crossref","unstructured":"Luo Q, Hariri F, Eloussi L, Marinov D (2014) An empirical analysis of flaky tests. In: Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, (FSE-22), Hong Kong, China, pp 643\u2013653","DOI":"10.1145\/2635868.2635920"},{"key":"9785_CR27","doi-asserted-by":"crossref","unstructured":"Orellana MG, Cordero AM, Laghari G, Demeyer S (2017) On the differences between unit and integration testing in the travistorrent dataset. In: Proceedings of the 14th working conference on mining software repositories","DOI":"10.1109\/MSR.2017.25"},{"key":"9785_CR28","doi-asserted-by":"crossref","unstructured":"McIntosh S, Adams B, Nguyen T H, Kamei Y, Hassan AE (2011) An empirical study of build maintenance effort. In: Proceedings of the Int\u2019l Conference on Software Engineering (ICSE)","DOI":"10.1145\/1985793.1985813"},{"issue":"2","key":"9785_CR29","doi-asserted-by":"publisher","first-page":"106","DOI":"10.1109\/TSE.2016.2591536","volume":"43","author":"Laura Moreno","year":"2017","unstructured":"Moreno L, Bavota G, Di Penta M, Oliveto R, Marcus A, Canfora G (2017) ARENA: an approach for the automated generation of release notes, vol 43","journal-title":"IEEE Transactions on Software Engineering"},{"key":"9785_CR30","doi-asserted-by":"crossref","unstructured":"Olsson HH, Alahyari H, Bosch J (2012) Climbing the \u201dstairway to heaven\u201d \u2013 a mulitiple-case study exploring barriers in the transition from agile development towards continuous deployment of software. In: Proceedings of the 2012 38th Euromicro Conference on Software Engineering and Advanced Applications, SEAA \u201912","DOI":"10.1109\/SEAA.2012.54"},{"key":"9785_CR31","unstructured":"Oppenheim B (1992) Questionnaire Design, Interviewing and Attitude Measurement. Pinter Publishers"},{"key":"9785_CR32","unstructured":"Palomba F, Zaidman A (2017) Does refactoring of test smells induce fixing flaky tests?. In: 2017 IEEE International conference on software maintenance and evolution, ICSME 2017, shanghai, China, pp 1\u201312"},{"key":"9785_CR33","doi-asserted-by":"crossref","unstructured":"Potdar A, Shihab E (2014) An exploratory study on self-admitted technical debt. In: 30th IEEE International Conference on Software Maintenance and Evolution","DOI":"10.1109\/ICSME.2014.31"},{"key":"9785_CR34","doi-asserted-by":"crossref","unstructured":"Rahman MT, Querel LP, Rigby PC, Adams B (2016) Feature toggles: practitioner practices and a case study. In: 2016 IEEE\/ACM 13th Working Conference on Mining Software Repositories (MSR). IEEE","DOI":"10.1145\/2901739.2901745"},{"key":"9785_CR35","doi-asserted-by":"crossref","unstructured":"Rahman A, Parnin C, Williams L (2019) The seven sins: security smells in infrastructure as code scripts. In: Proceedings of the 41st International Conference on Software Engineering, ICSE 2019, Montreal, QC, Canada, pp 164\u2013175","DOI":"10.1109\/ICSE.2019.00033"},{"issue":"4","key":"9785_CR36","doi-asserted-by":"publisher","first-page":"366","DOI":"10.1109\/TSE.2013.2297712","volume":"40","author":"S Rastkar","year":"2014","unstructured":"Rastkar S, Murphy G C, Murray G (2014) Automatic summarization of bug reports. IEEE Trans Softw Eng 40(4):366\u2013380","journal-title":"IEEE Trans Softw Eng"},{"key":"9785_CR37","doi-asserted-by":"crossref","unstructured":"Savor T, Douglas M, Gentili M, Williams L, Beck K, Stumm M (2016) Continuous deployment at facebook and OANDA. In: Companion proceedings of the 38th International Conference on Software Engineering (ICSE Companion)","DOI":"10.1145\/2889160.2889223"},{"key":"9785_CR38","doi-asserted-by":"crossref","unstructured":"Seo H, Sadowski C, Elbaum S G, Aftandilian E, Bowdidge R W (2014) Programmers\u2019 build errors: a case study (at Google). In: Proceedings of Int\u2019l Conf on Software Engineering (ICSE)","DOI":"10.1145\/2568225.2568255"},{"key":"9785_CR39","unstructured":"Spencer D (2009) Card sorting: Designing usable categories. Rosenfeld Media"},{"key":"9785_CR40","doi-asserted-by":"crossref","unstructured":"St\u00e5hl D, Bosch J (2014a) Automated software integration flows in industry: a multiple-case study. In: Companion Proceedings of the 36th International Conference on Software Engineering. ACM","DOI":"10.1145\/2591062.2591186"},{"key":"9785_CR41","doi-asserted-by":"crossref","unstructured":"St\u00e5hl D, Bosch J (2014b) Modeling continuous integration practice differences in industry software development. J Syst Softw","DOI":"10.1016\/j.jss.2013.08.032"},{"key":"9785_CR42","doi-asserted-by":"crossref","unstructured":"Thorve S, Sreshtha C, Meng N (2018) An empirical study of flaky tests in android apps. In: 2018 IEEE International conference on software maintenance and evolution, ICSME 2018, Madrid, Spain, pp 534\u2013538","DOI":"10.1109\/ICSME.2018.00062"},{"key":"9785_CR43","unstructured":"van Deursen A, Moonen L, Bergh A, Kok G (2001) Refactoring test code. In: Proceedings of the 2nd International Conference on Extreme Programming and Flexible Processes in Software Engineering (XP)"},{"key":"9785_CR44","doi-asserted-by":"crossref","unstructured":"Vasilescu B, Yu Y, Wang H, Devanbu P, Filkov V (2015) Quality and productivity outcomes relating to continuous integration in github. In: Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering. ACM","DOI":"10.1145\/2786805.2786850"},{"key":"9785_CR45","doi-asserted-by":"crossref","unstructured":"Vassallo C, Zampetti F, Romano D, Beller M, Panichella A, Di Penta M, Zaidman A (2016) Continuous delivery practices in a large financial organization. In: 32nd IEEE International Conference on Software Maintenance and Evolution (ICSME)","DOI":"10.1109\/ICSME.2016.72"},{"key":"9785_CR46","doi-asserted-by":"crossref","unstructured":"Vassallo C, Schermann G, Zampetti F, Romano D, Leitner P, Zaidman A, Di Penta M, Panichella S (2017) A tale of ci build failures: an open source and a financial organization perspective. In: 2017 IEEE International Conference on Software maintenance and evolution (ICSME). IEEE","DOI":"10.1109\/ICSME.2017.67"},{"key":"9785_CR47","doi-asserted-by":"crossref","unstructured":"Vassallo C, Proksch S, Gall H, Di Penta M (2019a) Automated reporting of anti-patterns and decay in continuous integration. In: Proceedings of the 41st International Conference on Software Engineering, ICSE 2019. IEEE, Montreal, pp (to appear)","DOI":"10.1109\/ICSE.2019.00028"},{"key":"9785_CR48","doi-asserted-by":"crossref","unstructured":"Vassallo C, Proksch S, Zemp T, Gall HC (2019b) Every build you break: Developer-oriented assistance for build failure resolution. Empirical Software Engineering (To appear)","DOI":"10.1007\/s10664-019-09765-y"},{"key":"9785_CR49","doi-asserted-by":"crossref","unstructured":"Wedyan F, Alrmuny D, Bieman J M (2009) The effectiveness of automated static analysis tools for fault detection and refactoring prediction. In: Second international conference on software testing verification and validation, ICST 2009, Denver, Colorado, pp 141\u2013150","DOI":"10.1109\/ICST.2009.21"},{"key":"9785_CR50","doi-asserted-by":"crossref","unstructured":"Zampetti F, Scalabrino S, Oliveto R, Canfora G, Di Penta M (2017) How open source projects use static code analysis tools in continuous integration pipelines. In: Proceedings of the 14th International Conference on Mining Software Repositories. IEEE Press","DOI":"10.1109\/MSR.2017.2"},{"key":"9785_CR51","doi-asserted-by":"crossref","unstructured":"Zampetti F, Vassallo C, Panichella S, Canfora G, Gall H, Di Penta M (2019) An empirical characterization of bad practices in continuous delivery (online appendix). Technical report, http:\/\/home.ing.unisannio.it\/fiorella.zampetti\/datasets\/CIBadPractices.zip","DOI":"10.1007\/s10664-019-09785-8"}],"container-title":["Empirical Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-019-09785-8.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/article\/10.1007\/s10664-019-09785-8\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-019-09785-8.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2021,1,7]],"date-time":"2021-01-07T01:01:19Z","timestamp":1609981279000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/s10664-019-09785-8"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,1,8]]},"references-count":51,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2020,3]]}},"alternative-id":["9785"],"URL":"https:\/\/doi.org\/10.1007\/s10664-019-09785-8","relation":{},"ISSN":["1382-3256","1573-7616"],"issn-type":[{"value":"1382-3256","type":"print"},{"value":"1573-7616","type":"electronic"}],"subject":[],"published":{"date-parts":[[2020,1,8]]},"assertion":[{"value":"8 January 2020","order":1,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}}]}}