VOOZH about

URL: https://www.coursera.org/learn/automated-analysis

⇱ Introduction to Automated Analysis | Coursera


Introduction to Automated Analysis

Introduction to Automated Analysis

19,099 already enrolled

Included with

β€’

Learn more

Ask Coursera

Gain insight into a topic and learn the fundamentals.
4.2

87 reviews

Intermediate level

Recommended experience

2 weeks to complete
at 10 hours a week
Flexible schedule
Learn at your own pace

Gain insight into a topic and learn the fundamentals.
4.2

87 reviews

Intermediate level

Recommended experience

2 weeks to complete
at 10 hours a week
Flexible schedule
Learn at your own pace

Build your subject-matter expertise

This course is part of the Software Testing and Automation Specialization
When you enroll in this course, you'll also be enrolled in this Specialization.
  • Learn new concepts from industry experts
  • Gain a foundational understanding of a subject or tool
  • Develop job-relevant skills with hands-on projects
  • Earn a shareable career certificate

There are 4 modules in this course

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. 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.

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.

What's included

8 videos1 reading5 assignments1 programming assignment

8 videosβ€’Total 68 minutes
  • Introduction to Automated Analysisβ€’13 minutes
  • Automated Analysis Techniquesβ€’9 minutes
  • Symbolic Representationsβ€’13 minutes
  • Property Specificationβ€’8 minutes
  • Environmental Specification and Assumptionsβ€’7 minutes
  • Parameterized Unit Testing using junit-quickcheckβ€’12 minutes
  • Environmental Specifications in junit-quickcheckβ€’3 minutes
  • (Optional) Installation of Eclipse and Gradleβ€’3 minutes
1 readingβ€’Total 10 minutes
  • Overview and Syllabusβ€’10 minutes
5 assignmentsβ€’Total 120 minutes
  • Introduction to Automated Analysisβ€’30 minutes
  • Automated Analysis Techniquesβ€’30 minutes
  • Symbolic Representationsβ€’30 minutes
  • Property Specificationβ€’30 minutes
  • Environmental Specifications and Assumptionsβ€’0 minutes
1 programming assignmentβ€’Total 180 minutes
  • Parameterized Unit Tests with junit-quickcheckβ€’180 minutes

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.

What's included

8 videos4 assignments1 programming assignment

8 videosβ€’Total 84 minutes
  • Overview of Automated Test Generationβ€’7 minutes
  • Automated Test Generation using Random Testingβ€’14 minutes
  • Automated Test Generation using Symbolic Executionβ€’16 minutes
  • Automated Test Generation using Metaheuristic Searchβ€’16 minutes
  • Property-Based Testing for Real-Time Systemsβ€’7 minutes
  • Biasing Input Values in junit-quickcheckβ€’6 minutes
  • Using Generators to Create Complex Inputs in junit-quickcheckβ€’10 minutes
  • Explanation of Test Harness and Assignment for Microwave Exampleβ€’8 minutes
4 assignmentsβ€’Total 79 minutes
  • Overview of Automated Test Generationβ€’7 minutes
  • Automated Test Generation using Random Testingβ€’30 minutes
  • Automated Test Generation Using Metaheuristic Searchβ€’12 minutes
  • Property-Based Testing for Real-Time Systemsβ€’30 minutes
1 programming assignmentβ€’Total 180 minutes
  • Property-Based Testing with junit-quickcheckβ€’180 minutes

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.

What's included

5 videos1 reading3 assignments

5 videosβ€’Total 64 minutes
  • What is Static Analysisβ€’15 minutes
  • Dataflow Analysisβ€’16 minutes
  • Program Wellformedness Propertiesβ€’12 minutes
  • Designing programs for analyzabilityβ€’9 minutes
  • Static Analysis with Inferβ€’12 minutes
1 readingβ€’Total 120 minutes
  • Analysis Exercise with Inferβ€’120 minutes
3 assignmentsβ€’Total 90 minutes
  • Summative Reviewβ€’30 minutes
  • What is static analysis?β€’30 minutes
  • Designing programs for analyzabilityβ€’30 minutes

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.

What's included

6 videos2 readings4 assignments

6 videosβ€’Total 61 minutes
  • Automating Regression Testingβ€’10 minutes
  • Automating Security Testing Using Fuzz Testingβ€’14 minutes
  • Runtime Monitoringβ€’7 minutes
  • Where Automation Failsβ€’9 minutes
  • Using Multiple Methods Effectivelyβ€’10 minutes
  • The Evolution of Software Testingβ€’10 minutes
2 readingsβ€’Total 20 minutes
  • Fuzz Testing with AFLβ€’10 minutes
  • Runtime Monitoring Toolsβ€’10 minutes
4 assignmentsβ€’Total 90 minutes
  • Summative Review of Week 4 materialβ€’0 minutes
  • Automating Regression Testingβ€’30 minutes
  • Automating Security Testing Using Fuzz Testingβ€’30 minutes
  • Runtime Monitoringβ€’30 minutes

Earn a career certificate

Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.

Instructors

Instructor ratings
4.1 (29 ratings)
University of Minnesota
2 Coursesβ€’31,960 learners

Explore more from Software Development

Why people choose Coursera for their career

πŸ‘ Image

Felipe M.

Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
πŸ‘ Image

Jennifer J.

Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
πŸ‘ Image

Larry W.

Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
πŸ‘ Image

Chaitanya A.

"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

Learner reviews

  • 5 stars

    58.62%

  • 4 stars

    19.54%

  • 3 stars

    10.34%

  • 2 stars

    4.59%

  • 1 star

    6.89%

Showing 3 of 87

AD
Β·

Reviewed on Jul 21, 2023

Please add specific tutorial on how to set up something

HH
Β·

Reviewed on Oct 16, 2024

The course is decent, the presentations are great in most, and lots of learning. Its scope is also vast and it only gives a glimpse into what is possible.

HS
Β·

Reviewed on Jul 15, 2024

I'm an university student. I would like to take this opportunity to thank the lecturers, University and Coursera. This course is amazing.

Frequently asked questions

To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.

When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.

Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.

Financial aid available,