diff --git a/backend/backend_test.go b/backend/backend_test.go
new file mode 100644
index 0000000000000000000000000000000000000000..ac355c39b3e8cda86693a3c60a07d64131afa829
--- /dev/null
+++ b/backend/backend_test.go
@@ -0,0 +1,37 @@
+package backend
+
+import (
+	"testing"
+
+	"gopkg.in/yaml.v3"
+)
+
+var testYAML = `---
+type: "test-type"
+params:
+  param1: 42
+  param2: foo
+`
+
+type testParams struct {
+	Param1 int    `yaml:"param1"`
+	Param2 string `yaml:"param2"`
+}
+
+func TestPartialConfigDeserialization(t *testing.T) {
+	var c Config
+	var p testParams
+
+	if err := yaml.Unmarshal([]byte(testYAML), &c); err != nil {
+		t.Fatalf("first unmarshal: %v", err)
+	}
+	if err := c.Params.Decode(&p); err != nil {
+		t.Fatalf("second unmarshal: %v", err)
+	}
+	if p.Param1 != 42 {
+		t.Errorf("param1 is %d, expected 42", p.Param1)
+	}
+	if p.Param2 != "foo" {
+		t.Errorf("param2 is '%s', expected 'foo'", p.Param2)
+	}
+}