自动化软件测试:单元测试、覆盖标准和可测试性设计

Automated Software Testing: Unit Testing, Coverage Criteria and Design for Testability

Learn the software testing techniques, tools, and best practices required to deliver high-quality software.

737 次查看
代尔夫特理工大学
edX
  • 完成时间大约为 5
  • 中级
  • 英语
注:因开课平台的各种因素变化,以上开课日期仅供参考

你将学到什么

How to test any software system using current state-of-the-arttechniques

How to derive test cases that deal with exceptional, corner, and bad-weather cases by means of several different techniques

The limitations of current testing techniques and how to decide on the best testing strategies for a given context

How to develop testable architectures and to write maintainable test code

课程概况

Software testinggets a bad rap for being difficult, time-consuming, redundant, and above all – boring. But in fact, it is a proven way to ensure that your software will work flawlessly andcan meet release schedules.

In a two-course series, we will teach you automated software testing in an inspiring way. We will show you that testing is not as daunting a task as you might think, and how automated testing will make you a better developer who programs excellent software.

This first course will teach you specification-based testing, boundary testing, test adequacy and code coverage, unit vs system testing, mock objects, design for testability, and test code quality.

This is a highly practical course. Throughout the lessons, you will test various programs by means of different techniques. By the end, you will be able to choose the best testing strategies for different projects.

If you are or want to become a five-star software developer, QA engineer, or software tester, join this course. Testing will never be the same again!

课程大纲

Topic 1: Automated software testing

Understand some basic principles of testing and whyit requires creativity.
Get familiar withsome testing vocabulary, which improves our communication.
Devise our first set of tests for a Java program and automatethese testsusing JUnit.
Understand the differences between unit, integration, and system testing, as well as the testing pyramid.

Topic 2: Functional testing

Learn how to read a requirement and derive the partitions, which are the actual concrete tests we will perform to make sure our system works (we call it "partitioning" and "equivalent partitioning").
Learn how to think about and test possible corner cases, as developersoften forget to deal with such cases (we call itboundary testing).
Get a few tips, based on experience, on common corner cases.

Topic 3: Structural testing and code coverage

Learn how to analyze the structure of your source code and derive meaningful tests.
Be able to use the most popular structural testing adequacy criteria, such as line coverage, branch coverage, and path coverage as well as to understand their differences.
Derive a minimal set of tests when your branches (e.g., ifs) are too complex.
Use a standard industry code coverage tool and interpret its results.

Topic 4: Testability and mock objects

Understand the differences between different test levels (e.g., unit, integration, and system tests)
Understand what makes a system more or less testable.
Propose refactoring opportunities for increasing testability.
Be able to apply mock objects in order to unit test a class.
Understand when not to apply mock objects and go for integration tests.

Topic 5 : Test code smells

Judge the internal code quality of your test suite and advice possible improvements.
Understand and avoid flaky tests.
Refactor and clean smelly test code.

预备知识

Introductory knowledge of programming, specifically with Java.

千万首歌曲。全无广告干扰。
此外,您还能在所有设备上欣赏您的整个音乐资料库。免费畅听 3 个月,之后每月只需 ¥10.00。
Apple 广告
声明:MOOC中国十分重视知识产权问题,我们发布之课程均源自下列机构,版权均归其所有,本站仅作报道收录并尊重其著作权益。感谢他们对MOOC事业做出的贡献!
  • Coursera
  • edX
  • OpenLearning
  • FutureLearn
  • iversity
  • Udacity
  • NovoEd
  • Canvas
  • Open2Study
  • Google
  • ewant
  • FUN
  • IOC-Athlete-MOOC
  • World-Science-U
  • Codecademy
  • CourseSites
  • opencourseworld
  • ShareCourse
  • gacco
  • MiriadaX
  • JANUX
  • openhpi
  • Stanford-Open-Edx
  • 网易云课堂
  • 中国大学MOOC
  • 学堂在线
  • 顶你学堂
  • 华文慕课
  • 好大学在线CnMooc
  • (部分课程由Coursera、Udemy、Linkshare共同提供)

© 2008-2020 CMOOC.COM 慕课改变你,你改变世界