Abstract
Software engineering researchers and practitioners have pursued manners to reduce the amount of time and effort required to develop code and increase productivity since the emergence of the discipline. Generative language models are another step in this journey, but it will probably not be the last one. In this chapter, we propose DAnTE, a Degree of Automation Taxonomy for software Engineering, describing several levels of automation based on the idiosyncrasies of the field. Based on the taxonomy, we evaluated several tools used in the past and in the present for software engineering practices. Then, we give particular attention to AI-based tools, including generative language models, discussing how they are located within the proposed taxonomy and reasoning about possible limitations they currently have. Based on this analysis, we discuss novel tools that could emerge in the middle and long term.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Ahmad, A., Waseem, M., Liang, P., Fahmideh, M., Aktar, M.S., Mikkonen, T.: Towards human-bot collaborative software architecting with ChatGPT. In: Proceedings of the 27th International Conference on Evaluation and Assessment in Software Engineering, pp. 279–285. ACM, New York (2023). https://doi.org/10.1145/3593434.3593468
Arcuri, A.: RESTful API automated test case generation. In: 2017 IEEE International Conference on Software Quality, Reliability and Security, pp. 9–20. IEEE, New York (2017)
Arcuri, A.: RESTful API automated test case generation with EvoMaster. ACM Trans. Softw. Eng. Methodol. (TOSEM) 28(1), 1–37 (2019)
Bosch, J., Olsson, H.H., Crnkovic, I.: It takes three to tango: requirement, outcome/data, and AI driven development. In: Software-intensive Business Workshop on Start-ups, Platforms and Ecosystems (SiBW 2018), pp. 177–192. CEUR-WS.org, Espoo (2018)
Braione, P., Denaro, G., Mattavelli, A., Pezzè, M.: Sushi: a test generator for programs with complex structured inputs. In: Proceedings of the 40th International Conference on Software Engineering: Companion Proceedings, pp. 21–24 (2018)
Cheon, Y., Leavens, G.T.: A simple and practical approach to unit testing: the JML and JUnit way. In: ECOOP 2002—Object-Oriented Programming: 16th European Conference Málaga, Spain, June 10–14 Proceedings, pp. 231–255. Springer, Berlin (2002)
Dallmeier, V., Pohl, B., Burger, M., Mirold, M., Zeller, A.: WebMate: web application test generation in the real world. In: 2014 IEEE Seventh International Conference on Software Testing, Verification and Validation Workshops, pp. 413–418. IEEE, New York (2014)
Feldt, R., de Oliveira Neto, F.G., Torkar, R.: Ways of applying artificial intelligence in software engineering. In: Proceedings of the 6th International Workshop on Realizing Artificial Intelligence Synergies in Software Engineering, pp. 35–41. ACM, New York (2018). https://doi.org/10.1145/3194104.3194109
Ferreira Campos, U., Smethurst, G., Moraes, J.P., Bonifacio, R., Pinto, G.: Mining rule violations in JavaScript code snippets. In: 2019 IEEE/ACM 16th International Conference on Mining Software Repositories (MSR), pp. 195–199. IEEE, New York (2019). https://doi.org/10.1109/MSR.2019.00039
Fraser, G., Arcuri, A.: EvoSuite: automatic test suite generation for object-oriented software. In: Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering, pp. 416–419 (2011)
Gori, M., Betti, A., Melacci, S.: Learning principles. In: Machine Learning, pp. 53–111. Elsevier, Amsterdam (2024). https://doi.org/10.1016/B978-0-32-389859-1.00009-X
Taxonomy and definitions for terms related to driving automation systems for on-road motor vehicles. Standard, International Organization for Standardization, Geneva (2021)
Kracht, J.S., Petrovic, J.Z., Walcott-Justice, K.R.: Empirically evaluating the quality of automatically generated and manually written test suites. In: 2014 14th International Conference on Quality Software, pp. 256–265. IEEE, New York (2014)
Marinke, R., Guerra, E.M., Fagundes Silveira, F., Azevedo, R.M., Nascimento, W., de Almeida, R.S., Rodrigues Demboscki, B., da Silva, T.S.: Towards an extensible architecture for refactoring test code. In: Computational Science and Its Applications–ICCSA 2019: 19th International Conference, Saint Petersburg, Russia, July 1–4, 2019, Proceedings, Part IV 19, pp. 456–471. Springer, Berlin (2019)
McMinn, P.: Search-based software test data generation: a survey. Softw. Test. Verif. Reliab. 14(2), 105–156 (2004)
Moradi Dakhel, A., Majdinasab, V., Nikanjam, A., Khomh, F., Desmarais, M.C., Jiang, Z.M.J.: GitHub Copilot AI pair programmer: Asset or Liability? J. Syst. Softw. 203, 111734 (2023). https://doi.org/10.1016/j.jss.2023.111734
Murphy, G., Kersten, M., Findlater, L.: How are Java software developers using the Eclipse IDE? IEEE Softw. 23(4), 76–83 (2006). https://doi.org/10.1109/MS.2006.105
Nguyen, N., Nadi, S.: An empirical evaluation of GitHub copilot’s code suggestions. In: Proceedings of the 19th International Conference on Mining Software Repositories, pp. 1–5. ACM, New York (2022). https://doi.org/10.1145/3524842.3528470
Palomba, F., Zaidman, A., De Lucia, A.: Automatic test smell detection using information retrieval techniques. In: 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME), pp. 311–322. IEEE, New York (2018)
Parsons, J., Wand, Y.: Using cognitive principles to guide classification in information systems modeling. MIS Q. 32(4), 839 (2008). https://doi.org/10.2307/25148874
Peruma, A., Almalki, K., Newman, C.D., Mkaouer, M.W., Ouni, A., Palomba, F.: tsDetect: an open source test smells detection tool, pp. 1650–1654. ESEC/FSE 2020, Association for Computing Machinery, New York (2020). https://doi.org/10.1145/3368089.3417921
Ralph, P.: Toward methodological guidelines for process theories and taxonomies in software engineering. IEEE Trans. Softw. Eng. 45(7), 712–735 (2019). https://doi.org/10.1109/TSE.2018.2796554
Rokis, K., Kirikova, M.: Challenges of low-code/no-code software development: a literature review. In: Lecture Notes in Business Information Processing, vol. 462 LNBIP, pp. 3–17. Springer International Publishing, New York (2022). https://doi.org/10.1007/978-3-031-16947-2_1
Sahay, A., Indamutsa, A., Di Ruscio, D., Pierantonio, A.: Supporting the understanding and comparison of low-code development platforms. In: 2020 46th Euromicro Conference on Software Engineering and Advanced Applications (SEAA), pp. 171–178. IEEE, New York (2020). https://doi.org/10.1109/SEAA51224.2020.00036
Savary-Leblanc, M., Burgueño, L., Cabot, J., Le Pallec, X., Gérard, S.: Software assistants in software engineering: a systematic map** study. Softw. Pract. Experience 53(3), 856–892 (2023). https://doi.org/10.1002/spe.3170
Shahid, M., Ibrahim, S.: An evaluation of test coverage tools in software testing. In: 2011 International Conference on Telecommunication Technology and Applications Proceedings of CSIT, vol. 5. sn (2011)
Shamshiri, S., Just, R., Rojas, J.M., Fraser, G., McMinn, P., Arcuri, A.: Do automatically generated unit tests find real faults? an empirical study of effectiveness and challenges (t). In: 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE), pp. 201–211. IEEE, New York (2015)
Shaw, M.: Prospects for an engineering discipline of software. IEEE Softw. 7(6), 15–24 (1990). https://doi.org/10.1109/52.60586. http://ieeexplore.ieee.org/document/60586/
Sheridan, T.B., Parasuraman, R.: Human-automation interaction. Rev. Hum. Factors Ergon. 1(1), 89–129 (2005). https://doi.org/10.1518/155723405783703082
Šmite, D., Wohlin, C., Galviņa, Z., Prikladnicki, R.: An empirically based terminology and taxonomy for global software engineering. Empir. Softw. Eng. 19, 105–153 (2014)
Svyatkovskiy, A., Deng, S.K., Fu, S., Sundaresan, N.: IntelliCode compose: code generation using transformer. In: Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, pp. 1433–1443. ACM, New York (2020). https://doi.org/10.1145/3368089.3417058
Tanimoto, S.L.: VIVA: a visual language for image processing. J. Vis. Lang. Comput. 1(2), 127–139 (1990). https://doi.org/10.1016/S1045-926X(05)80012-6
Tanimoto, S.L.: A perspective on the evolution of live programming. In: 2013 1st International Workshop on Live Programming, LIVE 2013—Proceedings, pp. 31–34 (2013). https://doi.org/10.1109/LIVE.2013.6617346
Teitelman, W., Masinter, L.: The Interlisp programming environment. Computer 14(4), 25–33 (1981). https://doi.org/10.1109/C-M.1981.220410
Tomasdottir, K.F., Aniche, M., van Deursen, A.: Why and how JavaScript developers use linters. In: 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE), pp. 578–589. IEEE, New York (2017). https://doi.org/10.1109/ASE.2017.8115668
Usman, M., Britto, R., Börstler, J., Mendes, E.: Taxonomies in software engineering: a Systematic map** study and a revised taxonomy development method. Inf. Softw. Technol. 85, 43–59 (2017). https://doi.org/10.1016/j.infsof.2017.01.006
Vaithilingam, P., Zhang, T., Glassman, E.L.: Expectation vs. experience: evaluating the usability of code generation tools powered by large language models. In: CHI Conference on Human Factors in Computing Systems Extended Abstracts, pp. 1–7. ACM, New York (2022). https://doi.org/10.1145/3491101.3519665
Viglianisi, E., Dallago, M., Ceccato, M.: Resttestgen: Automated black-box testing of RESTful APIs. In: 2020 IEEE 13th International Conference on Software Testing, Validation and Verification (ICST), pp. 142–152. IEEE, New York (2020)
Wheaton, G.R., Fleishman, E.A.: Development of a Taxonomy of Human Performance: A Review of Classificatory Systems Relating to Tasks and Performance. Clearinghouse, Mumbai (1968)
**ng, Z., Stroulia, E.: Refactoring practice: how it is and how it should be supported—an eclipse case study. In: IEEE International Conference on Software Maintenance (ICSM), pp. 458–467 (2006). https://doi.org/10.1109/ICSM.2006.52
Xuan, J., Cornu, B., Martinez, M., Baudry, B., Seinturier, L., Monperrus, M.: B-refactoring: automatic test code refactoring to improve dynamic analysis. Inf. Softw. Technol. 76, 65–80 (2016)
Yuan, Z., Lou, Y., Liu, M., Ding, S., Wang, K., Chen, Y., Peng, X.: No more manual tests? evaluating and improving ChatGPT for unit test generation. ar**v preprint ar**v:2305.04207 (2023)
Zanchin, B.C., Adamshuk, R., Santos, M.M., Collazos, K.S.: On the instrumentation and classification of autonomous cars. In: 2017 IEEE International Conference on Systems, Man, and Cybernetics (SMC), pp. 2631–2636. IEEE, New York (2017). https://doi.org/10.1109/SMC.2017.8123022
Zhang, B., Hill, E., Clause, J.: Automatically generating test templates from test names (n). In: 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE), pp. 506–511. IEEE, New York (2015)
Zhang, H., Wu, H., Rountev, A.: Automated test generation for detection of leaks in android applications. In: Proceedings of the 11th International Workshop on Automation of Software Test, pp. 64–70 (2016)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this chapter
Cite this chapter
Melegati, J., Guerra, E. (2024). DAnTE: A Taxonomy for the Automation Degree of Software Engineering Tasks. In: Nguyen-Duc, A., Abrahamsson, P., Khomh, F. (eds) Generative AI for Effective Software Development. Springer, Cham. https://doi.org/10.1007/978-3-031-55642-5_3
Download citation
DOI: https://doi.org/10.1007/978-3-031-55642-5_3
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-55641-8
Online ISBN: 978-3-031-55642-5
eBook Packages: Computer ScienceComputer Science (R0)