UPDATE: Found optimal solution
Simple upper bound:
70: Group the tests in 8 pairs and create a problem for each group of 4 pairs. 8-choose-4 is 70.
Better upper bound:
50:
Rows are tests, columns are problems, "X" means problem is part of test, "." means not.
XXXXXXXX........X.X.....XX..XXXXX.X.....XX..XXXXX.
XXXXXXXX.........X.X......XXXXXX.X.X......XXXXXXX.
........XXXXXXXXX.X.....XX..XXXX.X.X......XXXXXXX.
........XXXXXXXX.X.X......XXXXXXX.X.....XX..XXXXX.
XXXX....XXXX....XXXXX.X.....XX..XXXXX.X.....XX...X
XXXX....XXXX....XXXX.X.X......XXXXXX.X.X......XX.X
....XXXX....XXXXXXXXX.X.....XX..XXXX.X.X......XX.X
....XXXX....XXXXXXXX.X.X......XXXXXXX.X.....XX...X
XX..XX..XX..XX..XX..XXXXX.X.....XX..XXXXX.X.....X.
XX..XX..XX..XX....XXXXXX.X.X......XXXXXX.X.X....X.
..XX..XX..XX..XXXX..XXXXX.X.......XXXXXX.X.X....X.
..XX..XX..XX..XX..XXXXXX.X.X....XX..XXXXX.X.....X.
X.X.X.X.X.X.X.X.....XX..XXXXX.X.....XX..XXXXX.X..X
X.X.X.X.X.X.X.X.......XXXXXX.X.X......XXXXXX.X.X.X
.X.X.X.X.X.X.X.X....XX..XXXXX.X.......XXXXXX.X.X.X
.X.X.X.X.X.X.X.X......XXXXXX.X.X....XX..XXXXX.X..X
Optimal solution:
30: Found using a simple stochastic greedy algorithm on a partial, hand crafted preset. Right panel is the same as left but with rows and columns rearranged as to make structural features easier to pick out.
XXXXXXXX.........XX..XXX...XX. XXXX....XXXX....XXXX....X.X.X.
X.X..X.X.X.XX.X..XX..X..XXX..X XXXX........XXXX....XXXXX.X.X.
.X.XX.X.X.X..X.X.XX..X..XXX..X ....XXXXXXXX........XXXXX.X.X.
........XXXXXXXX.XX..XXX...XX. ....XXXX....XXXXXXXX....X.X.X.
XXXX....XXXX.....X.XX.XXXX.... XX..XX..XX..XX..XX..XX..X..X.X
XX....XX..XXXX..X.X.X..X.XX.X. XX..XX....XX..XX..XX..XXX..X.X
..XXXX..XX....XXX.X.X..X.XX.X. ..XX..XXXX..XX....XX..XXX..X.X
....XXXX....XXXX.X.XX.XXXX.... ..XX..XX..XX..XXXX..XX..X..X.X
XX..XX..XX..XX..X..X.X.XX.XX.. X.X.X.X.X.X.X.X.X.X.X.X..XX..X
X..X.XX.X..X.XX.X..X.XX..X..XX X.X.X.X..X.X.X.X.X.X.X.X.XX..X
.XX.X..X.XX.X..XX..X.XX..X..XX .X.X.X.XX.X.X.X..X.X.X.X.XX..X
..XX..XX..XX..XXX..X.X.XX.XX.. .X.X.X.X.X.X.X.XX.X.X.X..XX..X
X.X.X.X.X.X.X.X..X.XX.....XXXX X..X.XX.X..X.XX.X..X.XX..X.XX.
X..XX..X.XX..XX.X.X.X.X.X..X.X X..X.XX..XX.X..X.XX.X..X.X.XX.
.XX..XX.X..XX..XX.X.X.X.X..X.X .XX.X..XX..X.XX..XX.X..X.X.XX.
.X.X.X.X.X.X.X.X.X.XX.....XXXX .XX.X..X.XX.X..XX..X.XX..X.XX.
Structure and function:
Going by the right panel we can split the tests into four groups of four and the problems into the first 24 and the last 6. The last 6 in handle all 4-tuples that are covered by at most two test groups, i.e. those that distrbute 4-0-0-0, 3-1-0-0 or 2-2-0-0 over the four test groups. Note the pattern of all six 2-subsets of 4 which we'll also see prominently on the 24 first problems.
The 24 deal with the remaining cases 2-1-1-0 and 1-1-1-1. They naturally split into 3 groups of 8 which differ by the way each group of four is split into two. The 3 groups are actually identical up to shuffling rows.
There is also symmetry between the two upper and the two lower groups of 4 tests. Either pair is identical up to rearrangment of tests.
Let us look a bit into how it covers both 2-1-1-0 and 1-1-1-1 creating some synergy. The obvious strategyof handling 1-1-1-1 is to cover each of the four test groups with a quarter of the allowed number of problem copies. In our case that would be 2, so 2 problems are needed to cover a test group and since there are 4 groups a total of $2^4 = 16$ problems is required.
This is what I have done manually in the non-optimal example above.
The 2-1-1-0 on the other hand has the additional requirement that one of test group features 2 times such that a simply covering the group is no longer enough. Instead all 6 2-subsets must be made available. Doing the naive thing --- using the 16-cover 3 times (one for each 2/4 covering) would require 48 problems, clearly too many, so how does this solution get away with half that? It uses a reduced version of 16-cover which doesn't reliably work since it uses only $2^3$ problems which is enough to cover 3 groups but not necessarily 4. The trick here is that it will always happen to work in one of the three groups of 8 because they cover all possible splits of a test group into two, in particular the one split that doesn't split the two tests from the same group.
Optimal because:
We need only slightly improve @AxiomaticSystems's lower bound (26). Achieving 26 would amount to perfectly splitting the 16 tests into groups of 8 such that each group of 4 is contained in exactly one group of 8. Consider three tests a,b,c. They must share a problem with each of the remaining 13 tests. Because problems can only be used in 8 tests (5 other than a,b,c) a,b,c must have at least 3 problems in common. These three would optimally cover 15 tests other than a,b,c but since there are only 13 we waste two of them at a ratio of 15:13.