Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3475716.3475786acmconferencesArticle/Chapter ViewAbstractPublication PagesesemConference Proceedingsconference-collections
research-article

Barriers to Shift-Left Security: The Unique Pain Points of Writing Automated Tests Involving Security Controls

Published: 11 October 2021 Publication History

Abstract

Background: Automated unit and integration tests allow software development teams to continuously evaluate their application's behavior and ensure requirements are satisfied. Interest in explicitly testing security at the unit and integration levels has risen as more teams begin to shift security left in their workflows, but there is little insight into any potential pain points developers may experience as they learn to adapt their existing skills to write these tests. Aims: Identify security unit and integration testing pain points that could negatively impact efforts to shift security (testing) left to this level. Method: An mixed-method empirical study was conducted on 525 Stack Overflow and Security Stack Exchange posts related to security unit and integration testing. Latent Dirichlet Allocation (LDA) was applied to identify commonly discussed topics, pain points were learned through qualitative analysis, and links were analyzed to study commonly-shared resources. Results: Nine topics representing security controls, components, and scenarios were identified; Authentication was the most commonly tested control. Developers experienced seven pain points unique to security unit and integration testing, which were all influenced by the complexity of security control designs and implementations. Most linked resources were other Q&A posts, but repositories and documentation for security tools and libraries were also common. Conclusions: Developers may experience several unique pain points when writing tests at this level involving security controls. Additional resources are needed to guide developers through these challenges, which should also influence the creation of strategies and tools to help shift security testing to this level. To accelerate this, actionable recommendations for practitioners and future research directions based on these findings are highlighted.

References

[1]
Yasemin Acar, Michael Backes, Sascha Fahl, Doowon Kim, Michelle L. Mazurek, and Christian Stransky. 2016. You Get Where You're Looking for: The Impact of Information Sources on Code Security. In 2016 IEEE Symposium on Security and Privacy (SP). IEEE, New York, USA. https://doi.org/10.1109/sp.2016.25
[2]
Yasemin Acar, Christian Stransky, Dominik Wermke, Charles Weir, Michelle L. Mazurek, and Sascha Fahl. 2017. Developers Need Support, Too: A Survey of Security Advice for Software Developers. In 2017 IEEE Cybersecurity Development (SecDev). IEEE, New York, USA. https://doi.org/10.1109/secdev.2017.17
[3]
Arshad Ahmad, Chong Feng, Shi Ge, and Abdallah Yousif. 2018. A survey on mining stack overflow: question and answering (Q&A) community. Data Technologies and Applications 52, 2 (April 2018), 190--247. https://doi.org/10.1108/dta-07-2017-0054
[4]
Jeff Atwood and Joel Spolsky. 2008. Security Stack Exchange. https://security.stackexchange.com/.
[5]
Jeff Atwood and Joel Spolsky. 2008. Stack Overflow. https://stackoverflow.com.
[6]
Kartik Bajaj, Karthik Pattabiraman, and Ali Mesbah. 2014. Mining questions asked by web developers. In Proceedings of the 11th Working Conference on Mining Software Repositories - MSR 2014. ACM, New York, USA. https://doi.org/10.1145/2597073.2597083
[7]
Anton Barua, Stephen W. Thomas, and Ahmed E. Hassan. 2012. What are developers talking about? An analysis of topics and trends in Stack Overflow. Empirical Software Engineering 19, 3 (Nov. 2012), 619--654. https://doi.org/10.1007/s10664-012-9231-y
[8]
Stefanie Beyer and Martin Pinzger. 2014. A Manual Categorization of Android App Development Issues on Stack Overflow. In 2014 IEEE International Conference on Software Maintenance and Evolution. IEEE, New York, USA, 531--535. https://doi.org/10.1109/icsme.2014.88
[9]
R. Binder and B. Beizer. 2000. Testing Object-oriented Systems: Models, Patterns, and Tools. Addison-Wesley, Boston, USA.
[10]
David M. Blei, Andrew Y. Ng, and Michael I. Jordan. 2003. Latent Dirichlet Allocation. J. Mach. Learn. Res. 3, null (March 2003), 993--1022.
[11]
Alex Cummaudo, Rajesh Vasa, Scott Barnett, John Grundy, and Mohamed Abdelrazek. 2020. Interpreting cloud computer vision pain-points. In Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering. ACM, New York, USA. https://doi.org/10.1145/3377811.3380404
[12]
Daniel Cuthbert, Andrew Van der Stock, and Jim Manico. 2021. OWASP Application Security Verification Standard, v4. OWASP Foundation 4 (2021). https://github.com/OWASP/ASVS
[13]
Ermira Daka and Gordon Fraser. 2014. A Survey on Unit Testing Practices and Problems. In 2014 IEEE 25th International Symposium on Software Reliability Engineering. IEEE, New York, USA. https://doi.org/10.1109/issre.2014.11
[14]
Stephen De Vries. 2006. Security Testing Web Applications throughout Automated Software Tests. In OWASP Europe Conference, Vol. 1. OWASP, California, USA, 1--13.
[15]
Stephen De Vries. 2007. Software Testing for security. Network Security 3 (2007), 11--15.
[16]
Amin Milani Fard, Ali Mesbah, and Eric Wohlstadter. 2015. Generating Fixtures for JavaScript Unit Testing (T). In 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE). IEEE, New York, USA. https://doi.org/10.1109/ase.2015.26
[17]
Michael Felderer, Matthias Büchler, Martin Johns, Achim D. Brucker, Ruth Breu, and Alexander Pretschner. 2016. Security Testing. In Advances in Computers. Elsevier, Amsterdam, NL, 1--51. https://doi.org/10.1016/bs.adcom.2015.11.003
[18]
Danielle Gonzalez, Michael Rath, and Mehdi Mirakhorli. 2020. Did You Remember To Test Your Tokens?. In Proceedings of the 17th International Conference on Mining Software Repositories. ACM, New York, USA. https://doi.org/10.1145/3379597.3387471
[19]
Mårten Gustafson. 2016. bouncy-castle-pgp. https://github.com/chids/bouncy-castle-pgp.
[20]
Takeshi Hagikura and Jeremy Walker. 2019. android-FingerprintDialog. https://github.com/googlearchive/android-FingerprintDialog.
[21]
Junxiao Han, Emad Shihab, Zhiyuan Wan, Shuiguang Deng, and Xin Xia. 2020. What do Programmers Discuss about Deep Learning Frameworks. Empirical Software Engineering 25, 4 (April 2020), 2694--2747. https://doi.org/10.1007/s10664-020-09819-6
[22]
Mubin Ul Haque, Leonardo Horn Iwaya, and M. Ali Babar. 2020. Challenges in Docker Development. In Proceedings of the 14th ACM / IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM). ACM, New York, USA. https://doi.org/10.1145/3382494.3410693
[23]
Deac Karns and Adam Stokes. 2019. django-sslserver. https://github.com/teddziuba/django-sslserver.
[24]
Vladimir Khorikov. 2020. Unit testing: Principles, Practices, and Patterns. Manning, Shelter Island, NY.
[25]
Pavneet Singh Kochhar. 2016. Mining testing questions on stack overflow. In Proceedings of the 5th International Workshop on Software Mining. ACM, New York, USA. https://doi.org/10.1145/2975961.2975966
[26]
John Kurkowski. 2011. tldextract. https://pypi.org/project/tldextract/.
[27]
Triet Huynh Minh Le, David Hin, Roland Croft, and M. Ali Babar. 2020. PUMiner. In Proceedings of the 17th International Conference on Mining Software Repositories. ACM, New York, USA. https://doi.org/10.1145/3379597.3387443
[28]
Jiakun Liu, Xin Xia, David Lo, Haoxiang Zhang, Ying Zou, Ahmed E. Hassan, and Shanping Li. 2020. Broken External Links on Stack Overflow. https://arxiv.org/abs/2010.04892. arXiv:2010.04892 [cs.SE]
[29]
Jiakun Liu, Haoxiang Zhang, Xin Xia, David Lo, Ying Zou, Ahmed E. Hassan, and Shanping Li. 2021. An Exploratory Study on the Repeatedly Shared External Links on Stack Overflow. https://arxiv.org/abs/2104.03518. arXiv:2104.03518 [cs.SE]
[30]
Tamara Lopez, Thein Tun, Arosha Bandara, Levine Mark, Bashar Nuseibeh, and Helen Sharp. 2018. An investigation of security conversations in stack overflow. In Proceedings of the 1st International Workshop on Security Awareness from Design to Deployment - SEAD '18. ACM, New York, USA. https://doi.org/10.1145/3194707.3194713
[31]
Tamara Lopez, Thein Tun, Arosha Bandara, Levine Mark, Bashar Nuseibeh, and Helen Sharp. 2019. An Anatomy of Security Conversations in Stack Overflow. In 2019 IEEE/ACM 41st International Conference on Software Engineering: Software Engineering in Society (ICSE-SEIS). IEEE, New York, USA. https://doi.org/10.1109/icse-seis.2019.00012
[32]
Jim Manico, Jim Bird, and Katy Anton. 2018. OWASP Top 10 Proactive Controls (2018). https://owasp.org/www-project-proactive-controls/.
[33]
Sarah Meldrum, Sherlock A. Licorish, and Bastin Tony Roy Savarimuthu. 2017. Crowdsourced Knowledge on Stack Overflow. In Proceedings of the 21st International Conference on Evaluation and Assessment in Software Engineering- EASE '17. ACM, New York, USA. https://doi.org/10.1145/3084226.3084267
[34]
Gerard Meszaros. 2007. xUnit test patterns: Refactoring test code. Pearson Education, London, England.
[35]
Mahmoud Mohammadi, Bill Chu, and Heather Richter Lipford. 2017. Detecting Cross-Site Scripting Vulnerabilities through Automated Unit Testing. In 2017 IEEE International Conference on Software Quality, Reliability and Security (QRS). IEEE, New York, USA, 364--373. https://doi.org/10.1109/QRS.2017.46
[36]
Mahmoud Mohammadi, Bill Chu, Heather Richter Lipford, and Emerson Murphy-Hill. 2016. Automatic Web Security Unit Testing: XSS Vulnerability Detection. In 2016 IEEE/ACM 11th International Workshop in Automation of Software Test (AST). IEEE, New York, USA, 78--84. https://doi.org/10.1109/AST.2016.020
[37]
Sarah Nadi, Stefan Krüger, Mira Mezini, and Eric Bodden. 2016. "Jumping Through Hoops": Why do Java Developers Struggle with Cryptography APIs?. In Proceedings of the 38th International Conference on Software Engineering - ICSE '16. ACM, New York, USA. https://doi.org/10.1145/2884781.2884790
[38]
David Newman, Jey Han Lau, Karl Grieser, and Timothy Baldwin. 2010. Automatic Evaluation of Topic Coherence. In Human Language Technologies: The 2010 Annual Conference of the North American Chapter of the Association for Computational Linguistics (Los Angeles, California) (HLT '10). Association for Computational Linguistics, USA, 100--108.
[39]
Michael Olan. 2003. Unit Testing: Test Early, Test Often. J. Comput. Sci. Coll. 19, 2 (Dec. 2003), 319--328.
[40]
Gerardo Orellana, Gulsher Laghari, Alessandro Murgia, and Serge Demeyer. 2017. On the Differences between Unit and Integration Testing in the TravisTorrent Dataset. In 2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR). IEEE, New York, USA. https://doi.org/10.1109/msr.2017.25
[41]
Stack Overflow. 2020. Annual Developer Survey. https://insights.stackoverflow.com/survey/2020.
[42]
Renas. 2016. robotium. https://github.com/robotiumtech/robotium.
[43]
Leonardo Jimenez Rodriguez, Xiaoran Wang, and Jilong Kuang. 2018. Insights on Apache Spark Usage by Mining Stack Overflow Questions. In 2018 IEEE International Congress on Big Data (BigData Congress). IEEE, New York, USA. https://doi.org/10.1109/bigdatacongress.2018.00037
[44]
Christoffer Rosen and Emad Shihab. 2015. What are mobile developers asking about? A large scale study using stack overflow. Empirical Software Engineering 21, 3 (April 2015), 1192--1223. https://doi.org/10.1007/s10664-015-9379-3
[45]
Elie Saad, Matteo Meucci, and Rick Mitchell. 2013. OWASP Testing Guide, v4. OWASP Foundation 4 (2013), 66--80.
[46]
Koen Schmeets. 2015. authority-laravel. https://github.com/Vespakoen/authority-laravel.
[47]
C.B. Seaman. 1999. Qualitative methods in empirical studies of software engineering. IEEE Transactions on Software Engineering 25, 4 (1999), 557--572. https://doi.org/10.1109/32.799955
[48]
Davide Spadini, Mauricio Aniche, Magiel Bruntink, and Alberto Bacchelli. 2017. To Mock or Not to Mock? An Empirical Study on Mocking Practices. In 2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR). IEEE, New York, USA. https://doi.org/10.1109/msr.2017.61
[49]
Keith Stevens, Philip Kegelmeyer, David Andrzejewski, and David Buttler. 2012. Exploring Topic Coherence over Many Models and Many Topics. In Proceedings of the 2012 Joint Conference on Empirical Methods in Natural Language Processing and Computational Natural Language Learning (Jeju Island, Korea) (EMNLP-CoNLL '12). Association for Computational Linguistics, USA, 952--961.
[50]
Alexander Tarlinder. 2016. Developer testing: Building quality into software. Addison-Wesley Professional, Boston, MA, USA.
[51]
Fangchao Tian, Peng Liang, and Muhammad Ali Babar. 2019. How Developers Discuss Architecture Smells? An Exploratory Study on Stack Overflow. In 2019 IEEE International Conference on Software Architecture (ICSA). IEEE, New York, USA. https://doi.org/10.1109/icsa.2019.00018
[52]
Fabian Trautsch, Steffen Herbold, and Jens Grabowski. 2020. Are unit and integration test definitions still valid for modern Java projects? An empirical study on open-source projects. Journal of Systems and Software 159 (Jan. 2020), 110421. https://doi.org/10.1016/j.jss.2019.110421
[53]
Filippo Valsorda. 2018. mkcert. https://github.com/FiloSottile/mkcert.
[54]
Julien Vehent. 2018. Securing DevOps: Security in the Cloud. Manning Publications Co., New York, USA.
[55]
Isabel K. Villanes, Silvia M. Ascate, Josias Gomes, and Arilo Claudio Dias-Neto. 2017. What are Software Engineers asking about Android Testing on Stack Overflow?. In Proceedings of the 31st Brazilian Symposium on Software Engineering - SBES'17. ACM, New York, USA. https://doi.org/10.1145/3131151.3131157
[56]
Xin-Li Yang, David Lo, Xin Xia, Zhi-Yuan Wan, and Jian-Ling Sun. 2016. What Security Questions Do Developers Ask? A Large-Scale Study of Stack Overflow Posts. Journal of Computer Science and Technology 31, 5 (Sept. 2016), 910--924. https://doi.org/10.1007/s11390-016-1672-0
[57]
Deheng Ye, Zhenchang Xing, and Nachiket Kapre. 2016. The structure and dynamics of knowledge network in domain-specific Q&A sites: a case study of stack overflow. Empirical Software Engineering 22, 1 (April 2016), 375--406. https://doi.org/10.1007/s10664-016-9430-z
[58]
Peng Zhang. 2019. What Topics Do Developers Concern? An Analysis of Java Related Posts on Stack Overflow. In 2019 2nd International Conference on Artificial Intelligence and Big Data (ICAIBD). IEEE, New York, USA. https://doi.org/10.1109/icaibd.2019.8837045
[59]
Radim Řehůřek and Petr Sojka. 2011. Gensim---statistical semantics in python. https://radimrehurek.com/gensim_4.0.0/index.html.

Cited By

View all
  • (2024)Better Left Shift Security! Framework for Secure Software Development2024 IEEE European Symposium on Security and Privacy Workshops (EuroS&PW)10.1109/EuroSPW61312.2024.00078(642-649)Online publication date: 8-Jul-2024
  • (2024)Identifying the primary dimensions of DevSecOpsJournal of Systems and Software10.1016/j.jss.2024.112063214:COnline publication date: 1-Aug-2024
  • (2023)Threat-Based Simulation of Data Exfiltration Toward Mitigating Multiple Ransomware ExtortionsDigital Threats: Research and Practice10.1145/35689934:4(1-23)Online publication date: 20-Oct-2023

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ESEM '21: Proceedings of the 15th ACM / IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM)
October 2021
368 pages
ISBN:9781450386654
DOI:10.1145/3475716
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 11 October 2021

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Integration Testing
  2. Latent Dirichlet Allocation
  3. Pain Points
  4. Security Testing
  5. Shift-Left Security
  6. Stack Overflow
  7. Unit Testing

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

ESEM '21
Sponsor:

Acceptance Rates

ESEM '21 Paper Acceptance Rate 24 of 124 submissions, 19%;
Overall Acceptance Rate 130 of 594 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)68
  • Downloads (Last 6 weeks)3
Reflects downloads up to 13 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Better Left Shift Security! Framework for Secure Software Development2024 IEEE European Symposium on Security and Privacy Workshops (EuroS&PW)10.1109/EuroSPW61312.2024.00078(642-649)Online publication date: 8-Jul-2024
  • (2024)Identifying the primary dimensions of DevSecOpsJournal of Systems and Software10.1016/j.jss.2024.112063214:COnline publication date: 1-Aug-2024
  • (2023)Threat-Based Simulation of Data Exfiltration Toward Mitigating Multiple Ransomware ExtortionsDigital Threats: Research and Practice10.1145/35689934:4(1-23)Online publication date: 20-Oct-2023

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media