Exam: PCAT-31-01
Status: ACTIVE
The PCAT™-31-02 exam consists of single-select and multiple-select items designed to assess a candidate’s understanding of core testing concepts, including the importance of software testing, key testing techniques, and the ability to apply testing processes. Candidates will also demonstrate proficiency in basic Python programming, use of assertions and debugging tools, and basic principles of code quality improvement.
Each item is worth a maximum of 1 point. After completion, the candidate’s raw score is normalized and presented as a percentage.
The exam is divided into four blocks, each reflecting key areas of data analysis practice. The weight of each block indicates its importance in the overall exam.
The table below summarizes the distribution of exam items and their respective weight in the total exam score.
| Block Number | Block Name | Number of Items | Weight |
|---|---|---|---|
| 1 | Software Testing Essentials | 7 | 16.7% |
| 2 | Test Automation and Code Refactoring | 4 | 9.5% |
| 3 | Assertions, Context Managers, Decorators, and Python Methods | 5 | 11.9% |
| 4 | Foundations of Unit Testing | 12 | 28.6% |
| 5 | Advanced Unit Testing Techniques | 11 | 26.2% |
| 6 | Test-Driven and Behavior-Driven Development | 3 | 7.1% |
| 42 | 100% |
Last updated: July 5, 2024
Aligned with Exam PCAT-31-01
7 objectives covered by the block → 7 exam items
Software Testing Concepts and Terminology
Levels of Testing
Software Testing Definitions
Testing Principles
Start and End of the Testing Process
The Test Pyramid
Code coverage
3 objectives covered by the block → 4 exam items
The Goal and Importance of Test Automation
The Code Refactoring Loop
Code Refactoring
5 objectives covered by the block → 5 exam items
The Assertion Statement
Context Managers
Function Decorators
Class Decorators
Different Types of Python Methods
8 objectives covered by the block → 12 exam items
Anatomy of a Unit Test
xUnit Architecture
Running Tests
Good Practices
Specialized Assertions
Unit Tests as a Source of Documentation
AAA Pattern Used in Practice
Using the unittest Module
7 objectives covered by the block → 11 exam items
Unit Test Preparation
Unit Test Parametrization
Marking Tests for Special Conditions
Selective Test Execution
Using Test Doubles
Mocking with Patch
Handling Exceptions in Unit Tests
3 objectives covered by the block → 3 exam items
Test-Driven Development Fundamentals
Implementing the Red, Green, Refactor Phases
Behavior-Driven Development Fundamentals
A minimally qualified candidate (MQC) for the PCAT exam is expected to have a foundational understanding of software testing principles and practices, including various levels of testing such as unit, integration, system, and acceptance testing. They should possess basic programming skills in Python and be familiar with test automation, TDD, and BDD approaches. The candidate should also have a grasp of software engineering principles, such as code refactoring and using test doubles. Furthermore, they must demonstrate knowledge of test design and execution, utilizing tools like unittest, and have the capability to implement testing best practices. Effective communication skills are essential to present testing insights coherently, catering to diverse audiences.
This profile represents a blend of technical proficiency, analytical thinking, and communication skills crucial for navigating the complexities of software testing environments.
Block 1: Software Testing Essentials (16.7% of total exam)
Minimum Coverage: A candidate must demonstrate a basic understanding of software testing concepts and terminology, levels of testing, software testing definitions, and testing principles. They should also be familiar with the start and end of the testing process, the test pyramid, and code coverage.
Block 2: Test Automation and Code Refactoring (9.5% of total exam)
Minimum Coverage: Proficiency in explaining the purpose and benefits of test automation, describing the code refactoring loop, and implementing the Arrange, Act, Assert (AAA) triplet in automated tests using Python. They should also apply the DRY and KISS principles in code refactoring.
Block 3: Assertions, Context Managers, Decorators, and Python Methods (11.9% of total exam)
Minimum Coverage: Understanding the concept of assertions, the use of context managers, function and class decorators, and the different types of Python methods. They should be able to implement these techniques to enhance code quality and testing.
Block 4: Foundations of Unit Testing (28.6% of total exam)
Minimum Coverage: Basic capability to explain the F.I.R.S.T principles of unit testing, describe the xUnit architecture, run tests using different tools and frameworks, and follow good practices for test file structure and naming conventions. They should also implement specialized assertions, understand the value of unit tests as documentation, and utilize the unittest module.
Block 5: Advanced Unit Testing Techniques (26.2% of total exam)
Minimum Coverage: Proficiency in setting up and tearing down test environments with appropriate fixtures, implementing parameterized unit tests, marking tests for special conditions, and selectively executing tests. They should also be able to use test doubles and the patch mechanism from unittest.mock, and handle exceptions in unit tests.
Block 6: Test-Driven and Behavior-Driven Development (7.1% of total exam)
Minimum Coverage: Understanding the concepts and principles of Test-Driven Development (TDD) and Behavior-Driven Development (BDD). They should be able to explain the TDD cycle of Red, Green, Refactor, and describe the Given, When, Then syntax for writing behavior specifications.
To pass the PCAT exam, a candidate must achieve a cumulative average score of at least 75% across all exam blocks.