  An important concern in end user development (EUD) is accidentally embedding
personal information in program artifacts when sharing them. This issue is
particularly important in GUI-based programming-by-demonstration (PBD) systems
due to the lack of direct developer control of script contents. Prior studies
reported that these privacy concerns were the main barrier to script sharing in
EUD. We present a new approach that can identify and obfuscate the potential
personal information in GUI-based PBD scripts based on the uniqueness of
information entries with respect to the corresponding app GUI context. Compared
with the prior approaches, ours supports broader types of personal information
beyond explicitly pre-specified ones, requires minimal user effort, addresses
the threat of re-identification attacks, and can work with third-party apps
from any task domain. Our approach also recovers obfuscated fields locally on
the script consumer's side to preserve the shared scripts' transparency,
readability, robustness, and generalizability. Our evaluation shows that our
approach (1) accurately identifies the potential personal information in
scripts across different apps in diverse task domains; (2) allows end-user
developers to feel comfortable sharing their own scripts; and (3) enables
script consumers to understand the operation of shared scripts despite the
obfuscated fields.
