This is the SIR subject for the the php-agenda web application
artifact.  This artifact consists of 29 versions of the
php-agenda web application as they were used in the paper:

Hammoudi, Mouna.  Rothermel, Gregg.  Tonella, Paolo.  Why do record/playback
tests of web applications break?  in proceedings of the 2016 IEEE
International Conference on Software Testing, Verification and Validation
(ICST), April 10-15, 2016, Chicago, IL, USA.  978-1-5090-1827-7/16
DOI 10.1109/ICST.2016.16

Each source tree provided contains the application code, as a zip
file. Tests applicable to the version are contained within the testplans
directory by version, separated into a directory for Selenium XML test,
IDETests, and tests compatible with Selenium WebDriver in the
directory WDTests.

The original source for this development can be found on sourceforge: 

http://sourceforge.net/projects/php-agenda/?source=directory

The application expects to be installed into a LAMP server, thus
it requires MySQL, and PHP support along with the apache web server
or similar (should work with NGINX, this is untested however) and a
WAMP/MAMP/XAMPP server should also suffice.

A short description of the means of using the artifact is as follows:
Copy the version source into the directory that you can run
the web from, e.g. this could be the main directory tree of your LAMP
server, /var/www/htdocs typically, and unzip the source tree there.
Alternatively, you can copy and unzip into your personal web space,
typically ~/public_html if your web server is configured for personal
web hosting, or into the WAMP/MAMP instance htdocs directory.

Once unzipped the directory contained within will be created and
populated with the source code of the web.  Since each subject requires
a MySQL database to support it, you will next need initialize the
MySQL server to support it.  The database configuration file supplied
(addressbook.sql) The documentation for php-addressbook is written
such that it expects you have root priviledge on the MySQL server
and their instructions talk about (see the notes.htm file within the
source files of the v1 subject) 

All of the above actions are performed by the install.sh script which
permits using a command line or interactive means of installing
the php-agenda subject.  Run "./install.sh -?" to see the the
help string for command line use.  Running "./install.sh" enters
interactive mode.

Due to the limitations imposed by php-agenda, the database tables
cannot be created uniquely.  Thus, a setting in the config.sh (KEEPDB)
is provided that allows retaining the previous versions SQL data
in an SQL format file.  This saved database file will be created within the
outputs directory under the version number being installed (phpagenda/outputs/v?)
using the file name "prev_db.sql" .  This allows recovering the
database contents of the previous version for inspection.
This limitation is lifted in SIR version 28 and 29, but these are the
last two version, so specifying a PREFIXDBTABLES=1 will not result
in any prefixing being applied to SIR versions 1-27.

The install.sh script can be modified to your specific needs and
you are encouraged to do so.

Script files
The script files offered here are shell scripts intended to automate
the installation process of the phpaddressbook versions.  This allows
building scripts that will progressively install and test each version.

config.sh          - configuration settings for the install.sh script SET
                     THE VALUES IN THIS FILE SPECIFIC TO YOUR INSTALLATION
install.sh         - installs a specified version including DB init
                     into the config.sh specified web hosting directory
                     run install.sh -? to see options for command-line use
functions.sh       - generic functions used by install.sh for subject copy
                     to source directory and SQL database initialization
                     using the values specified in config.sh
agendafunctions.sh - functions specific to configuration of PHP Agenda subject
                     using the values specified in config.sh
m5.php             - a PHP script needed to generate a compatible MD5
                     hash of the user password
t.php              - a PHP script needed to generate a compatible time value
verlist            - a file mapping SIR versions to original version numbers
                     of the PHP Agenda subject from Sourceforge.net
README             - this file
