Introduction to Software Testing

所在平台: Coursera

课程主页: https://www.coursera.org/learn/introduction-software-testing

课程评论:没有评论

第一个写评论        关注课程

课程简介

课程名称:软件测试入门 课程概述:完成本课程后,您将理解软件测试的基本原则和流程。您将积极创建测试用例,并使用自动化测试工具运行它们。您将学会编写和识别良好的测试用例,包括输入数据和期望结果。 完成本课程后,您将能够: - 描述验证与确认之间的区别。 - 解释测试的目标。 - 在沟通中使用适当的测试术语,如测试夹具、逻辑测试用例、具体测试用例、测试脚本、测试 oracle 和缺陷。 - 描述白盒和黑盒测试的动机。 - 比较测试优先和测试后开发技术。 - 使用语句覆盖和分支覆盖来衡量测试充分性。 - 理解测试覆盖不足的原因及其可接受性。 - 通过变异测试评估功能测试套件的缺陷发现有效性。 - 批评黑盒和白盒测试,描述两者在更大开发工作中的优缺点。 - 区分期望值(真实)、启发式、一致性(在 A/B 回归中使用)和概率测试oracle,并选择最适合测试目标的类型。 - 编写单元和集成测试用例以检测代码中的缺陷,并使用 JUnit 自动化这些测试。在此过程中,学生将使用测试替身来支持测试,包括用于状态验证的桩和用于行为验证的模拟(mock)。 本课程主要面向对以下角色感兴趣的学习者:软件工程师、测试软件工程师、测试自动化工程师、DevOps 工程师、软件开发人员、程序员和计算机爱好者。我们预计您应具备 Java 编程语言(或任何类似面向对象语言)的基础知识,并能快速掌握 Java 语法,以及对软件开发生命周期有一定了解。 教学大纲: - 名称:介绍 描述:在本模块中,您将了解测试的基础知识,尤其是在整个课程中使用的各种术语。 - 名称:测试基础 描述:在本模块中,您将研究各种测试原则、测试模型和系统测试策略类型。 - 名称:软件开发生命周期中的测试 描述:在本模块中,您将学习测试的社会方面,包括测试计划、测试状态报告和缺陷报告。 - 名称:编写良好的单元测试 描述:在本模块中,您将学习如何编写单元测试,并通过三个编程作业获得编写这些测试的实践经验,每个作业都包含额外的测试复杂性。

课程大纲

Name:Introduction

Description:In this module, you will be introduced to the basics of testing, especially the variety of terminology to be used through the rest of the course.

Name:Testing Foundations

Description:In this module, you will investigate a variety of testing principles, models of testing, and types of systematic testing strategies.

Name:Testing in the Software Development Lifecycle

Description:In this module, you will learn about the social aspects of testing. We will learn about test plans, testing status reports, and defect reporting.

Name:Writing Good Unit Tests

Description:In this module, you will learn about writing unit tests and gain practice in writing these tests through three coding assignments, each with additional testing sophistication.

课程评论(0条)

课程详情

After completing this course, you will have an understanding of the fundamental principles and processes of software testing. You will have actively created test cases and run them using an automated testing tool. You will being writing and recognizing good test cases, including input data and expected outcomes. After completing this course, you will be able to… - Describe the difference between verification and validation. - Explain the goal of testing. - Use appropriate test terminology in communication; specifically: test fixture, logical test case, concrete test case, test script, test oracle, and fault. - Describe the motivations for white and black box testing. - Compare and contrast test-first and test-last development techniques. - Measure test adequacy using statement and branch coverage. - Reason about the causes and acceptability of and poor coverage - Assess the fault-finding effectiveness of a functional test suite using mutation testing. - Critique black-box and white-box testing, describing the benefits and use of each within the greater development effort. - Distinguish among the expected-value (true), heuristic, consistency (as used in A/B regression), and probability test oracles and select the one best-suited to the testing objective. - Craft unit and integration test cases to detect defects within code and automate these tests using JUnit. To achieve this, students will employ test doubles to support their tests, including stubs (for state verification) and mocks (for behavioral verification) (https://martinfowler.com/articles/mocksArentStubs.html). This course is primarily aimed at those learners interested in any of the following roles: Software Engineer, Software Engineer in Test, Test Automation Engineer, DevOps Engineer, Software Developer, Programmer, Computer Enthusiast. We expect that you should have an understanding of the Java programming language (or any similar object-oriented language and the ability to pick up Java syntax quickly) and some knowledge of the Software Development Lifecycle.

课程标签

0人关注该课程

主题相关的课程