Leonardo da Silva Sousa is an Assistant Teaching Professor in the Department of Electrical and Computer Engineering (ECE) at Carnegie Mellon University’s (CMU) Silicon Valley location. He received the Ph.D. in Computer Science from the Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio). He received the MSc in Computer Science from Universidade Federal de Goiás and the BS in Computer Science from the Universidade Federal de Mato Grosso. His main research interests are: Code Smells, Design Problems, Refactoring, Software Architecture, Software Testing and Empirical Software Engineering.
PhD in Computer Science (Major in Software Engineering)
Pontifical Catholic University of Rio de Janeiro, PUC-Rio, Rio de Janeiro, Brasil. In cooperation with: University of Southern California, Los Angeles – USA.
MSc in Computer Science (Major in Software Testing)
State University of Goiás, UFG, Goiânia, Goiás, Brazil
BSc in Computer Science
State University of Mato Grosso, UFMT, Barra do Garças, Mato Grosso, Brazil
Research Project, 2017 – Current. In cooperation with Newcastle University, UK, Newton Fund.
Research Project, 2015 – 2016. In cooperation with University of Southern California (EUA), and University of California at Irvine (EUA)
Research Project, 2015 – 2016. In cooperation with Newcastle University, UK, Newton Fund.
Software Verification & Testing
Verification and testing (VT) support software engineers and development teams in their endeavor to build dependable systems. These interrelated activities form the backbone of a high-quality software solution that performs its function as intended. VT is no longer considered an exclusively backend phase undertaken by a separate quality assurance unit, vulnerable to availability of discretionary resources near project end. Rather, VT is a cross-functional discipline applied throughout the software lifecycle from beginning to end. As such VT is an integral and essential part of any sensible software development process. This course introduces the students to concepts, principles, theory, types, tools, and techniques of VT with exposure to both modern, widely-applicable approaches and traditional, formal techniques. Students will acquire sufficient depth and breadth in VT through a balanced coverage of topics. The course syllabus spans fundamentals such as VT principles, systematic testing, input space analysis, and test coverage; practical strategies such as test-driven development, unit testing, and test design; and formal approaches such as abstraction, model checking, static analysis, and symbolic execution. Please note that this course is intended for ECE master students with a concentration in Software Engineering and will satisfy the Analysis area core course requirement. Please note that this course is intended for ECE master students with a concentration in Software Engineering and will satisfy the Analysis area core course requirement.