Course

Introduction to Automated Analysis

University of Minnesota

This course, "Introduction to Automated Analysis," is a comprehensive exploration of state-of-the-art techniques for automated analysis in software development. The course delves into the fundamental theory and applications of automated analysis techniques, covering various aspects such as automated test generation, static analysis, and effective automated verification. Learners will gain a solid understanding of how to apply automated analysis techniques to ensure software meets requirements and is free from common defects that can lead to program failures or security issues.

Throughout the course, learners will become familiar with the foundations of automated verification, distinguish the strengths and weaknesses of different analysis techniques, and use various state-of-the-art tools for automated verification. The course also covers creating executable requirements for automated testing, utilizing both manual and automated tests, and understanding the impact of the choice of oracle on fault-finding for automated analysis strategies.

  • Introduction to Automated Analysis, including symbolic representations and property specification
  • Automated test generation techniques such as random testing and symbolic execution
  • Static analysis covering dataflow analysis and program wellformedness properties
  • Effective automated verification, including automating regression testing and security testing using fuzz testing

This course is ideal for individuals interested in understanding the principles of automation and the application of tools for analysis and testing of software, including roles such as Software Engineer, Test Automation Engineer, and Software Developer.

Certificate Available ✔

Get Started / More Info
Introduction to Automated Analysis
Course Modules

The course comprises modules covering Introduction to Automated Analysis, Automated Test Generation, Static Analysis, and Effective Automated Verification, providing a comprehensive understanding of automated analysis techniques in software development.

Introduction to Automated Analysis

This module introduces learners to the fundamental concepts of automated analysis, including symbolic representations, environmental specifications, and parameterized unit testing using junit-quickcheck. The module provides an overview of the syllabus and covers a variety of automated analysis techniques, equipping learners with essential knowledge for the subsequent modules.

Automated Test Generation

In this module, learners will explore automated test generation techniques, including random testing, symbolic execution, and metaheuristic search. The module also covers property-based testing for real-time systems and demonstrates the use of generators for creating complex inputs in junit-quickcheck, offering practical insights into automated test generation.

Static Analysis

This module focuses on static analysis, addressing topics such as dataflow analysis, program wellformedness properties, and the design of programs for analyzability. Learners will engage in an analysis exercise with Infer, gaining hands-on experience in applying static analysis techniques to real-world scenarios.

Effective Automated Verification

The final module delves into effective automated verification, including automating regression testing, security testing using fuzz testing, and runtime monitoring. Learners will explore the evolution of software testing and gain proficiency in utilizing multiple methods effectively for automated verification.

More Software Development Courses

Python 3 Programming

University of Michigan

Python 3 Programming teaches Python basics, data collection, and processing, as well as classes and inheritance. You'll also work on a project involving libraries...

Create User Stories in Jira

Coursera Project Network

Learn to create user stories in Jira and utilize sprints and epics for effective project management in the software field.

Restful Web Service Spring Boot Visual Studio Code Gradle

Coursera Project Network

Learn to create a restful web application using Spring Boot in this guided project with Visual Studio Code and Gradle.

Introducción al Desarrollo de Software

Pontificia Universidad Católica del Perú

Introducción al Desarrollo de Software es un curso introductorio que te sumerge en los conceptos esenciales y procesos del desarrollo de software, proporcionándote...