Does the /data/test directory exist prior to execution? Otherwise cp is just copying the result set one at a time to a regular file at /data/test.
You may want to append a forward slash to the directory name, as that will cause cp to error if the directory doesn't exist instead. Or chain the command after mkdir -p /output/dir. That will error the same if it isn't a directory, but also create it if it doesn't exist. Since you are interested in the files' timestamps, you may way to use --preserve to preserve them.
So, something like this:
dest_dir='/data/test'; mkdir -p "${dest_dir}" && find . -type f -mtime +10 -name "*.txt" -exec cp --preserve {} "${dest_dir}" \;