Introduction to Automated Analysis (Coursera)

Introduction to Automated Analysis (Coursera)

This course introduces state-of-the-art techniques for automated analysis. Automated analysis encompasses both approaches to automatically generate a very large number of tests to check whether programs meet requirements, and also means by which it is possible to prove that software meets requirements and that it is free from certain commonly-occurring defects, such as divide-by-zero, overflow/underflow, deadlock, race-condition freedom, buffer/array overflow, uncaught exceptions, and several other commonly-occurring bugs that can lead to program failures or security problems.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

The learner will become familiar with the fundamental theory and applications of such approaches, and apply a variety of automated analysis techniques on example programs.
After completing this course, a learner will be able to:

  • Understand the foundations of automated verification: randomization and symbolic representations
  • Distinguish the strengths and weaknesses of random testing, symbolic analysis, static analysis, and model checking
  • Use a variety of state-of-the-art static analysis and automated testing tools for automated verification
  • Create executable requirements as an oracle suitable for automated testing and symbolic analysis
  • Understand how the choice of oracle affects fault-finding for automated analysis strategies.
  • Use automated testing to achieve full mutation coverage
  • Create a test plan that utilizes both manually-written tests and automated tests towards maximizing rigor, minimizing effort and time, and minimizing test costs.

This course is intended for learners interested in understanding the principles of automation and the application of tools
for analysis and testing of software This knowledge would benefit several typical roles: Software Engineer, Software Engineer in Test, Test Automation Engineer, DevOps Engineer, Software Developer, Programmer, Computer Enthusiast. We expect that you have some familiarity with the Software development Life-Cycle, an understanding of the fundamentals of software testing, similar to what is covered in the Introduction to Software Testing and Black-box and White-Box Testing Courses.
Familiarity with an object-oriented language such as Java or ability to pick-up Java syntax quickly to write and modify code, and willingness to use tools and IDEs are assumed.
Course 3 of 4 in the Software Testing and Automation Specialization.

Syllabus

WEEK 1
Introduction to Automated Analysis
In this module we will learn about a range of techniques for analysis of programs and methods to automate testing. Along the way we will learn how to specify properties of interest to check about a program and capture assumptions about the environment for effective testing. To reinforce some of the important concepts learned we will practice automated testing using effective tools on a concrete example.

WEEK 2
Automated Test Generation
The focus of this module is to understand how various techniques can help us automate the generation of useful and numerous tests. We will examine ways to specify and use properties of the system and the environment to guide the generation of test data.

WEEK 3
Static Analysis
The goal of this module is to introduce the learner to the principles of statically analyzing programs, understand how analysis techniques work by looking at some example analyses, and some good practices to follow when designing programs to enable the tools to help us detect and avoid defects. The learner will gain an understanding of using static analysis tools by looking at one concrete tool.

WEEK 4
Effective Automated Verification
This module will examine how to use effective automation techniques for a variety of purposes such as performing effective regression testing, discovering security vulnerabilities and monitoring software at run-time for critical properties.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Genome Sequencing (Bioinformatics II) (Coursera) Coursera
University of California, San Diego

Genome Sequencing (Bioinformatics II) (Coursera)

You may have heard a lot about genome sequencing and its potential to usher in an era of personalized medicine, but what does it mean to sequence a genome? Biologists still cannot read the nucleotides of an entire genome as you would read a book from beginning to end. However, they can read short pieces of DNA. In this course, we will see how graph theory can be used to assemble genomes from these short pieces. We will further learn about brute force algorithms and apply them to sequencing mini-proteins called antibiotics.

Aug 17th 2026
5-12 Weeks
Verification and Synthesis of Autonomous Systems (Coursera) Coursera
University of Colorado Boulder

Verification and Synthesis of Autonomous Systems (Coursera)

This course will provide different techniques on the verification of autonomous systems against stability, regular, or omega-regular properties. Such techniques include Lyapunov theories, reachability analysis, barrier certificates, and model checking. Finally, it will introduce several techniques on designing controllers enforcing properties of interest over the original autonomous systems.

Aug 3rd 2026
4 Weeks
Software Analysis & Testing (Udacity) Udacity
Georgia Institute of Technology,Udacity

Software Analysis & Testing (Udacity)

This course covers the theory and practice of software analysis, which lies at the heart of many software development processes such as diagnosing bugs, testing, debugging, and more. It presents diverse techniques, each with their own strengths and limitations, for automating tasks such as testing, debugging, and finding bugs in complex real-world programs. These techniques include dataflow analysis, constraint-based analysis, type systems, model checking, symbolic execution, and more. The course teaches the principles underlying these techniques as well as imparts hands-on experience with using and implementing tools based on these techniques.

Self Paced
Self-Paced
Learn Software Testing Certification course (Eduonix) Eduonix
Eduonix Learning Solutions Pvt. Ltd.

Learn Software Testing Certification course (Eduonix)

Software Testing is one of the most important and critical component of Software development life cycle. The testing team is ultimately responsible of Software quality and forms the bedrock before it goes out to actual users and to market place. Over the years with innovative development techniques the software testing and quality assurance field has undergone a sea change. With new techniques like TDD(Test driven development) taking hold in industry the software developers must understand the nuances of new approaches to software quality. This is a free course with a MOOC List coupon.

Self Paced
Self-Paced
Secure Software Development: Verification and More Specialized Topics (edX) EdX
Linux Foundation,LinuxFoundationX

Secure Software Development: Verification and More Specialized Topics (edX)

Learn how to verify software for security, and take a deeper dive into the basics of applying threat models and cryptography. Modern software is under constant attack, but many software developers have never been told how to effectively counter those attacks. This course works to solve that problem, by explaining the fundamentals of developing secure software.

Self Paced
Self-Paced
Decentralized Applications (Dapps) (Coursera) Coursera
University at Buffalo,The State University of New York

Decentralized Applications (Dapps) (Coursera)

This third course of the Blockchain specialization prepares you to design and develop end-to-end decentralized applications (Dapps) – which provide anyone with access to the blockchain’s features and services. You will use Truffle IDE, smart contracts, a simple web client and a MetaMask client. You will learn about the architecture of a Dapp: the front-end client interface, backed by the blockchain and smart contracts.

Aug 17th 2026
4 Weeks
Finding Mutations in DNA and Proteins (Bioinformatics VI) (Coursera) Coursera
University of California, San Diego

Finding Mutations in DNA and Proteins (Bioinformatics VI) (Coursera)

In previous courses in the Specialization, we have discussed how to sequence and compare genomes. This course will cover advanced topics in finding mutations lurking within DNA and proteins. In the first half of the course, we would like to ask how an individual's genome differs from the "reference genome" of the species.

Aug 17th 2026
5-12 Weeks
Angular Fundamentals: Building Responsive Web Apps with Ease (Coursera) Coursera
EDUCBA

Angular Fundamentals: Building Responsive Web Apps with Ease (Coursera)

This comprehensive course takes you through AngularJS, delving into foundational principles, including architecture, data binding, and essential features. You'll deepen your understanding of AngularJS architecture, empowering you to initiate critical application development. Exploring advanced concepts, you'll interpret adept implementation of routing, navigation, and form controls, showcasing proficiency in data binding.

Aug 3rd 2026
4 Weeks
Introduction to TensorFlow for Artificial Intelligence, Machine Learning, and Deep Learning (Coursera) Coursera
DeepLearning.AI

Introduction to TensorFlow for Artificial Intelligence, Machine Learning, and Deep Learning (Coursera)

If you are a software developer who wants to build scalable AI-powered algorithms, you need to understand how to use the tools to build them. This course is part of the upcoming Machine Learning in Tensorflow Specialization and will teach you best practices for using TensorFlow, a popular open-source framework for machine learning.

Aug 17th 2026
4 Weeks
Comparing Genes, Proteins, and Genomes (Bioinformatics III) (Coursera) Coursera
University of California, San Diego

Comparing Genes, Proteins, and Genomes (Bioinformatics III) (Coursera)

Once we have sequenced genomes in the previous course, we would like to compare them to determine how species have evolved and what makes them different. In the first half of the course, we will compare two short biological sequences, such as genes (i.e., short sequences of DNA) or proteins. We will encounter a powerful algorithmic tool called dynamic programming that will help us determine the number of mutations that have separated the two genes/proteins.

Aug 17th 2026
5-12 Weeks