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.
Status: Security Testing
Security Testing
Status: Continuous Monitoring
Continuous Monitoring
Intermediate·Course·19 hours
Featured reviews
5.0
·Reviewed 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.
4.0
·Reviewed Nov 12, 2020
Muy bueno!, seria interesante ver mas demostraciones con herramientas.
5.0
·Reviewed Dec 24, 2021
Really this is course was too much challenging and resourceful.
5.0
·Reviewed Jul 21, 2023
Please add specific tutorial on how to set up something
Mixed feelings. The instructors are very pleasant to listen to and explain things clearly. The subject matter is interesting but can be a bit dense at times, and at the end I hardly remember any of the terms you are bombarded with.
The programming assignments are a disaster. 90% of the packages that the instructors have prepared for the assignments cannot be properly imported into the IDE, and since there is no way to reach out other than the discussion forums (which are for the most part filled with people asking for others to share their code for an easy pass), I was often left to resolve these issues on my own, which could sometimes take days of searching online.
N
Nikolay
5.0
·Reviewed Dec 30, 2021
Not 5, but 4+ stars. Content is good. But, Week 3. It's difficult to understand Indian English and lector make many pauses in the middle of the phrases.
B
BRAYAN
1.0
·Reviewed Apr 15, 2025
Curso obsoleto y la manera en que se califica muy ineficaz
A
Alcides
5.0
·Reviewed Apr 5, 2022
Good course, the theory is well presented. I would like a bit more practical exercises like in the previous courses, but I understand its harder in this case.
H
Haresh
5.0
·Reviewed 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.
M
MD
5.0
·Reviewed Dec 25, 2021
Really this is course was too much challenging and resourceful.
A
Andy
5.0
·Reviewed Jul 22, 2023
Please add specific tutorial on how to set up something
A
Ashwini
5.0
·Reviewed Feb 25, 2026
Good platform to learn many things
A
Arwin
5.0
·Reviewed Sep 8, 2020
I learned something new. nice
D
Deep
5.0
·Reviewed Sep 21, 2020
It'is a good course
M
MOHAMMED
5.0
·Reviewed Mar 10, 2023
great course
H
Hala
5.0
·Reviewed Dec 17, 2024
good
T
Talluri
5.0
·Reviewed Apr 4, 2023
good
S
Sahdevbhai
5.0
·Reviewed Sep 21, 2020
good
A
Abhishek
5.0
·Reviewed Sep 29, 2020
X
B
Budi
4.0
·Reviewed Sep 22, 2021
Another great course from the SW testing specialization, conveying the general & detail ideas of various kind analysis to complement testing. Especially the exercise introduction to Facebook Infer tool is a real eye-opener.
H
Hemraj
4.0
·Reviewed Oct 17, 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.
L
Leonardo
4.0
·Reviewed Nov 12, 2020
Muy bueno!, seria interesante ver mas demostraciones con herramientas.