UMN - Introduction to Automated Analysis
- Offered byCoursera
Introduction to Automated Analysis at Coursera Overview
Duration | 19 hours |
Start from | Start Now |
Total fee | Free |
Mode of learning | Online |
Difficulty level | Intermediate |
Official Website | Explore Free Course |
Credential | Certificate |
Introduction to Automated Analysis at Coursera Highlights
- Shareable Certificate Earn a Certificate upon completion
- 100% online Start instantly and learn at your own schedule.
- Course 3 of 4 in the Software Testing and Automation Specialization
- Flexible deadlines Reset deadlines in accordance to your schedule.
- Intermediate Level IDE installed (e.g., Eclipse). Familiar with testing terminology and practice (see previous courses in specialization).
- Approx. 19 hours to complete
- English Subtitles: Arabic, French, Portuguese (European), Italian, Vietnamese, German, Russian, English, Spanish
Introduction to Automated Analysis at Coursera Course details
- 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.
Introduction to Automated Analysis at Coursera Curriculum
Introduction to Automated Analysis
Introduction to Automated Analysis
Automated Analysis Techniques
Symbolic Representations
Property Specification
Environmental Specification and Assumptions
Parameterized Unit Testing using junit-quickcheck
Environmental Specifications in junit-quickcheck
(Optional) Installation of Eclipse and Gradle
Overview and Syllabus
Introduction to Automated Analysis
Automated Analysis Techniques
Symbolic Representations
Property Specification
Environmental Specifications and Assumptions
Automated Test Generation
Overview of Automated Test Generation
Automated Test Generation using Random Testing
Automated Test Generation using Symbolic Execution
Automated Test Generation using Metaheuristic Search
Property-Based Testing for Real-Time Systems
Biasing Input Values in junit-quickcheck
Using Generators to Create Complex Inputs in junit-quickcheck
Explanation of Test Harness and Assignment for Microwave Example
Overview of Automated Test Generation
Automated Test Generation using Random Testing
Automated Test Generation Using Metaheuristic Search
Property-Based Testing for Real-Time Systems
Static Analysis
What is Static Analysis
Dataflow Analysis
Program Wellformedness Properties
Designing programs for analyzability
Static Analysis with Infer
Analysis Exercise with Infer
What is static analysis?
Designing programs for analyzability
Summative Review
Effective Automated Verification
Automating Regression Testing
Automating Security Testing Using Fuzz Testing
Runtime Monitoring
Where Automation Fails
Using Multiple Methods Effectively
The Evolution of Software Testing
Fuzz Testing with AFL
Runtime Monitoring Tools
Automating Regression Testing
Automating Security Testing Using Fuzz Testing
Runtime Monitoring
Summative Review of Week 4 material
Introduction to Automated Analysis at Coursera Admission Process
Important Dates
Other courses offered by Coursera
Introduction to Automated Analysis at Coursera Students Ratings & Reviews
- 4-51