CINXE.COM
Mark Harman | University College London - Academia.edu
<!DOCTYPE html> <html lang="en" xmlns:fb="http://www.facebook.com/2008/fbml" class="wf-loading"> <head prefix="og: https://ogp.me/ns# fb: https://ogp.me/ns/fb# academia: https://ogp.me/ns/fb/academia#"> <meta charset="utf-8"> <meta name=viewport content="width=device-width, initial-scale=1"> <meta rel="search" type="application/opensearchdescription+xml" href="/open_search.xml" title="Academia.edu"> <title>Mark Harman | University College London - Academia.edu</title> <!-- _ _ _ | | (_) | | __ _ ___ __ _ __| | ___ _ __ ___ _ __ _ ___ __| |_ _ / _` |/ __/ _` |/ _` |/ _ \ '_ ` _ \| |/ _` | / _ \/ _` | | | | | (_| | (_| (_| | (_| | __/ | | | | | | (_| || __/ (_| | |_| | \__,_|\___\__,_|\__,_|\___|_| |_| |_|_|\__,_(_)___|\__,_|\__,_| We're hiring! See https://www.academia.edu/hiring --> <link href="//a.academia-assets.com/images/favicons/favicon-production.ico" rel="shortcut icon" type="image/vnd.microsoft.icon"> <link rel="apple-touch-icon" sizes="57x57" href="//a.academia-assets.com/images/favicons/apple-touch-icon-57x57.png"> <link rel="apple-touch-icon" sizes="60x60" href="//a.academia-assets.com/images/favicons/apple-touch-icon-60x60.png"> <link rel="apple-touch-icon" sizes="72x72" href="//a.academia-assets.com/images/favicons/apple-touch-icon-72x72.png"> <link rel="apple-touch-icon" sizes="76x76" href="//a.academia-assets.com/images/favicons/apple-touch-icon-76x76.png"> <link rel="apple-touch-icon" sizes="114x114" href="//a.academia-assets.com/images/favicons/apple-touch-icon-114x114.png"> <link rel="apple-touch-icon" sizes="120x120" href="//a.academia-assets.com/images/favicons/apple-touch-icon-120x120.png"> <link rel="apple-touch-icon" sizes="144x144" href="//a.academia-assets.com/images/favicons/apple-touch-icon-144x144.png"> <link rel="apple-touch-icon" sizes="152x152" href="//a.academia-assets.com/images/favicons/apple-touch-icon-152x152.png"> <link rel="apple-touch-icon" sizes="180x180" href="//a.academia-assets.com/images/favicons/apple-touch-icon-180x180.png"> <link rel="icon" type="image/png" href="//a.academia-assets.com/images/favicons/favicon-32x32.png" sizes="32x32"> <link rel="icon" type="image/png" href="//a.academia-assets.com/images/favicons/favicon-194x194.png" sizes="194x194"> <link rel="icon" type="image/png" href="//a.academia-assets.com/images/favicons/favicon-96x96.png" sizes="96x96"> <link rel="icon" type="image/png" href="//a.academia-assets.com/images/favicons/android-chrome-192x192.png" sizes="192x192"> <link rel="icon" type="image/png" href="//a.academia-assets.com/images/favicons/favicon-16x16.png" sizes="16x16"> <link rel="manifest" href="//a.academia-assets.com/images/favicons/manifest.json"> <meta name="msapplication-TileColor" content="#2b5797"> <meta name="msapplication-TileImage" content="//a.academia-assets.com/images/favicons/mstile-144x144.png"> <meta name="theme-color" content="#ffffff"> <script> window.performance && window.performance.measure && window.performance.measure("Time To First Byte", "requestStart", "responseStart"); </script> <script> (function() { if (!window.URLSearchParams || !window.history || !window.history.replaceState) { return; } var searchParams = new URLSearchParams(window.location.search); var paramsToDelete = [ 'fs', 'sm', 'swp', 'iid', 'nbs', 'rcc', // related content category 'rcpos', // related content carousel position 'rcpg', // related carousel page 'rchid', // related content hit id 'f_ri', // research interest id, for SEO tracking 'f_fri', // featured research interest, for SEO tracking (param key without value) 'f_rid', // from research interest directory for SEO tracking 'f_loswp', // from research interest pills on LOSWP sidebar for SEO tracking 'rhid', // referrring hit id ]; if (paramsToDelete.every((key) => searchParams.get(key) === null)) { return; } paramsToDelete.forEach((key) => { searchParams.delete(key); }); var cleanUrl = new URL(window.location.href); cleanUrl.search = searchParams.toString(); history.replaceState({}, document.title, cleanUrl); })(); </script> <script async src="https://www.googletagmanager.com/gtag/js?id=G-5VKX33P2DS"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-5VKX33P2DS', { cookie_domain: 'academia.edu', send_page_view: false, }); gtag('event', 'page_view', { 'controller': "profiles/works", 'action': "summary", 'controller_action': 'profiles/works#summary', 'logged_in': 'false', 'edge': 'unknown', // Send nil if there is no A/B test bucket, in case some records get logged // with missing data - that way we can distinguish between the two cases. // ab_test_bucket should be of the form <ab_test_name>:<bucket> 'ab_test_bucket': null, }) </script> <script type="text/javascript"> window.sendUserTiming = function(timingName) { if (!(window.performance && window.performance.measure)) return; var entries = window.performance.getEntriesByName(timingName, "measure"); if (entries.length !== 1) return; var timingValue = Math.round(entries[0].duration); gtag('event', 'timing_complete', { name: timingName, value: timingValue, event_category: 'User-centric', }); }; window.sendUserTiming("Time To First Byte"); </script> <meta name="csrf-param" content="authenticity_token" /> <meta name="csrf-token" content="9PPiXkQ_ABxWcRz-5wzDAFS8hKwD9xVwlvPecE_1ngeaHPXumxF4lefh7Z_mWuoeRx97PPwIhjLRCIxq6BE-IQ" /> <link rel="stylesheet" href="//a.academia-assets.com/assets/wow-3d36c19b4875b226bfed0fcba1dcea3f2fe61148383d97c0465c016b8c969290.css" media="all" /><link rel="stylesheet" href="//a.academia-assets.com/assets/social/home-79e78ce59bef0a338eb6540ec3d93b4a7952115b56c57f1760943128f4544d42.css" media="all" /><link rel="stylesheet" href="//a.academia-assets.com/assets/single_work_page/figure_carousel-2004283e0948681916eefa74772df54f56cb5c7413d82b160212231c2f474bb3.css" media="all" /><script type="application/ld+json">{"@context":"https://schema.org","@type":"ProfilePage","mainEntity":{"@context":"https://schema.org","@type":"Person","name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman","image":"https://0.academia-photos.com/314132/63138/69396/s200_mark.harman.jpg","sameAs":["http://www.cs.ucl.ac.uk/staff/mharman/"]},"dateCreated":"2011-01-22T03:40:06-08:00","dateModified":"2020-05-23T11:38:47-07:00","name":"Mark Harman","description":"","image":"https://0.academia-photos.com/314132/63138/69396/s200_mark.harman.jpg","thumbnailUrl":"https://0.academia-photos.com/314132/63138/69396/s65_mark.harman.jpg","primaryImageOfPage":{"@type":"ImageObject","url":"https://0.academia-photos.com/314132/63138/69396/s200_mark.harman.jpg","width":200},"sameAs":["http://www.cs.ucl.ac.uk/staff/mharman/"],"relatedLink":"https://www.academia.edu/2787597/A_post_placement_side_effect_removal_algorithm"}</script><link rel="stylesheet" href="//a.academia-assets.com/assets/design_system/heading-95367dc03b794f6737f30123738a886cf53b7a65cdef98a922a98591d60063e3.css" media="all" /><link rel="stylesheet" href="//a.academia-assets.com/assets/design_system/button-8c9ae4b5c8a2531640c354d92a1f3579c8ff103277ef74913e34c8a76d4e6c00.css" media="all" /><link rel="stylesheet" href="//a.academia-assets.com/assets/design_system/body-170d1319f0e354621e81ca17054bb147da2856ec0702fe440a99af314a6338c5.css" media="all" /><style type="text/css">@media(max-width: 567px){:root{--token-mode: Parity;--dropshadow: 0 2px 4px 0 #22223340;--primary-brand: #0645b1;--error-dark: #b60000;--success-dark: #05b01c;--inactive-fill: #ebebee;--hover: #0c3b8d;--pressed: #082f75;--button-primary-fill-inactive: #ebebee;--button-primary-fill: #0645b1;--button-primary-text: #ffffff;--button-primary-fill-hover: #0c3b8d;--button-primary-fill-press: #082f75;--button-primary-icon: #ffffff;--button-primary-fill-inverse: #ffffff;--button-primary-text-inverse: #082f75;--button-primary-icon-inverse: #0645b1;--button-primary-fill-inverse-hover: #cddaef;--button-primary-stroke-inverse-pressed: #0645b1;--button-secondary-stroke-inactive: #b1b1ba;--button-secondary-fill: #eef2f9;--button-secondary-text: #082f75;--button-secondary-fill-press: #cddaef;--button-secondary-fill-inactive: #ebebee;--button-secondary-stroke: #cddaef;--button-secondary-stroke-hover: #386ac1;--button-secondary-stroke-press: #0645b1;--button-secondary-text-inactive: #b1b1ba;--button-secondary-icon: #082f75;--button-secondary-fill-hover: #e6ecf7;--button-secondary-stroke-inverse: #ffffff;--button-secondary-fill-inverse: rgba(255, 255, 255, 0);--button-secondary-icon-inverse: #ffffff;--button-secondary-icon-hover: #082f75;--button-secondary-icon-press: #082f75;--button-secondary-text-inverse: #ffffff;--button-secondary-text-hover: #082f75;--button-secondary-text-press: #082f75;--button-secondary-fill-inverse-hover: #043059;--button-xs-stroke: #141413;--button-xs-stroke-hover: #0c3b8d;--button-xs-stroke-press: #082f75;--button-xs-stroke-inactive: #ebebee;--button-xs-text: #141413;--button-xs-text-hover: #0c3b8d;--button-xs-text-press: #082f75;--button-xs-text-inactive: #91919e;--button-xs-icon: #141413;--button-xs-icon-hover: #0c3b8d;--button-xs-icon-press: #082f75;--button-xs-icon-inactive: #91919e;--button-xs-fill: #ffffff;--button-xs-fill-hover: #f4f7fc;--button-xs-fill-press: #eef2f9;--buttons-button-text-inactive: #91919e;--buttons-button-focus: #0645b1;--buttons-button-icon-inactive: #91919e;--buttons-small-buttons-corner-radius: 8px;--buttons-small-buttons-l-r-padding: 12px;--buttons-small-buttons-height: 44px;--buttons-small-buttons-gap: 8px;--buttons-small-buttons-icon-only-width: 44px;--buttons-small-buttons-icon-size: 20px;--buttons-small-buttons-stroke-default: 1px;--buttons-small-buttons-stroke-thick: 2px;--buttons-large-buttons-l-r-padding: 20px;--buttons-large-buttons-height: 54px;--buttons-large-buttons-icon-only-width: 54px;--buttons-large-buttons-icon-size: 20px;--buttons-large-buttons-gap: 8px;--buttons-large-buttons-corner-radius: 8px;--buttons-large-buttons-stroke-default: 1px;--buttons-large-buttons-stroke-thick: 2px;--buttons-extra-small-buttons-l-r-padding: 8px;--buttons-extra-small-buttons-height: 32px;--buttons-extra-small-buttons-icon-size: 16px;--buttons-extra-small-buttons-gap: 4px;--buttons-extra-small-buttons-corner-radius: 8px;--buttons-stroke-default: 1px;--buttons-stroke-thick: 2px;--background-beige: #f9f7f4;--error-light: #fff2f2;--text-placeholder: #6d6d7d;--stroke-dark: #141413;--stroke-light: #dddde2;--stroke-medium: #535366;--accent-green: #ccffd4;--accent-turquoise: #ccf7ff;--accent-yellow: #f7ffcc;--accent-peach: #ffd4cc;--accent-violet: #f7ccff;--accent-purple: #f4f7fc;--text-primary: #141413;--secondary-brand: #141413;--text-hover: #0c3b8d;--text-white: #ffffff;--text-link: #0645b1;--text-press: #082f75;--success-light: #f0f8f1;--background-light-blue: #eef2f9;--background-white: #ffffff;--premium-dark: #877440;--premium-light: #f9f6ed;--stroke-white: #ffffff;--inactive-content: #b1b1ba;--annotate-light: #a35dff;--annotate-dark: #824acc;--grid: #eef2f9;--inactive-stroke: #ebebee;--shadow: rgba(34, 34, 51, 0.25);--text-inactive: #6d6d7d;--text-error: #b60000;--stroke-error: #b60000;--background-error: #fff2f2;--background-black: #141413;--icon-default: #141413;--icon-blue: #0645b1;--background-grey: #dddde2;--icon-grey: #b1b1ba;--text-focus: #082f75;--brand-colors-neutral-black: #141413;--brand-colors-neutral-900: #535366;--brand-colors-neutral-800: #6d6d7d;--brand-colors-neutral-700: #91919e;--brand-colors-neutral-600: #b1b1ba;--brand-colors-neutral-500: #c8c8cf;--brand-colors-neutral-400: #dddde2;--brand-colors-neutral-300: #ebebee;--brand-colors-neutral-200: #f8f8fb;--brand-colors-neutral-100: #fafafa;--brand-colors-neutral-white: #ffffff;--brand-colors-blue-900: #043059;--brand-colors-blue-800: #082f75;--brand-colors-blue-700: #0c3b8d;--brand-colors-blue-600: #0645b1;--brand-colors-blue-500: #386ac1;--brand-colors-blue-400: #cddaef;--brand-colors-blue-300: #e6ecf7;--brand-colors-blue-200: #eef2f9;--brand-colors-blue-100: #f4f7fc;--brand-colors-gold-500: #877440;--brand-colors-gold-400: #e9e3d4;--brand-colors-gold-300: #f2efe8;--brand-colors-gold-200: #f9f6ed;--brand-colors-gold-100: #f9f7f4;--brand-colors-error-900: #920000;--brand-colors-error-500: #b60000;--brand-colors-success-900: #035c0f;--brand-colors-green: #ccffd4;--brand-colors-turquoise: #ccf7ff;--brand-colors-yellow: #f7ffcc;--brand-colors-peach: #ffd4cc;--brand-colors-violet: #f7ccff;--brand-colors-error-100: #fff2f2;--brand-colors-success-500: #05b01c;--brand-colors-success-100: #f0f8f1;--text-secondary: #535366;--icon-white: #ffffff;--background-beige-darker: #f2efe8;--icon-dark-grey: #535366;--type-font-family-sans-serif: Roboto;--type-font-family-serif: Georgia;--type-font-family-mono: IBM Plex Mono;--type-weights-300: 300;--type-weights-400: 400;--type-weights-500: 500;--type-weights-700: 700;--type-sizes-12: 12px;--type-sizes-14: 14px;--type-sizes-16: 16px;--type-sizes-18: 18px;--type-sizes-20: 20px;--type-sizes-22: 22px;--type-sizes-24: 24px;--type-sizes-28: 28px;--type-sizes-30: 30px;--type-sizes-32: 32px;--type-sizes-40: 40px;--type-sizes-42: 42px;--type-sizes-48-2: 48px;--type-line-heights-16: 16px;--type-line-heights-20: 20px;--type-line-heights-23: 23px;--type-line-heights-24: 24px;--type-line-heights-25: 25px;--type-line-heights-26: 26px;--type-line-heights-29: 29px;--type-line-heights-30: 30px;--type-line-heights-32: 32px;--type-line-heights-34: 34px;--type-line-heights-35: 35px;--type-line-heights-36: 36px;--type-line-heights-38: 38px;--type-line-heights-40: 40px;--type-line-heights-46: 46px;--type-line-heights-48: 48px;--type-line-heights-52: 52px;--type-line-heights-58: 58px;--type-line-heights-68: 68px;--type-line-heights-74: 74px;--type-line-heights-82: 82px;--type-paragraph-spacings-0: 0px;--type-paragraph-spacings-4: 4px;--type-paragraph-spacings-8: 8px;--type-paragraph-spacings-16: 16px;--type-sans-serif-xl-font-weight: 400;--type-sans-serif-xl-size: 32px;--type-sans-serif-xl-line-height: 46px;--type-sans-serif-xl-paragraph-spacing: 16px;--type-sans-serif-lg-font-weight: 400;--type-sans-serif-lg-size: 30px;--type-sans-serif-lg-line-height: 36px;--type-sans-serif-lg-paragraph-spacing: 16px;--type-sans-serif-md-font-weight: 400;--type-sans-serif-md-line-height: 30px;--type-sans-serif-md-paragraph-spacing: 16px;--type-sans-serif-md-size: 24px;--type-sans-serif-xs-font-weight: 700;--type-sans-serif-xs-line-height: 24px;--type-sans-serif-xs-paragraph-spacing: 0px;--type-sans-serif-xs-size: 18px;--type-sans-serif-sm-font-weight: 400;--type-sans-serif-sm-line-height: 32px;--type-sans-serif-sm-paragraph-spacing: 16px;--type-sans-serif-sm-size: 20px;--type-body-xl-font-weight: 400;--type-body-xl-size: 24px;--type-body-xl-line-height: 36px;--type-body-xl-paragraph-spacing: 0px;--type-body-sm-font-weight: 400;--type-body-sm-size: 14px;--type-body-sm-line-height: 20px;--type-body-sm-paragraph-spacing: 8px;--type-body-xs-font-weight: 400;--type-body-xs-size: 12px;--type-body-xs-line-height: 16px;--type-body-xs-paragraph-spacing: 0px;--type-body-md-font-weight: 400;--type-body-md-size: 16px;--type-body-md-line-height: 20px;--type-body-md-paragraph-spacing: 4px;--type-body-lg-font-weight: 400;--type-body-lg-size: 20px;--type-body-lg-line-height: 26px;--type-body-lg-paragraph-spacing: 16px;--type-body-lg-medium-font-weight: 500;--type-body-lg-medium-size: 20px;--type-body-lg-medium-line-height: 32px;--type-body-lg-medium-paragraph-spacing: 16px;--type-body-md-medium-font-weight: 500;--type-body-md-medium-size: 16px;--type-body-md-medium-line-height: 20px;--type-body-md-medium-paragraph-spacing: 4px;--type-body-sm-bold-font-weight: 700;--type-body-sm-bold-size: 14px;--type-body-sm-bold-line-height: 20px;--type-body-sm-bold-paragraph-spacing: 8px;--type-body-sm-medium-font-weight: 500;--type-body-sm-medium-size: 14px;--type-body-sm-medium-line-height: 20px;--type-body-sm-medium-paragraph-spacing: 8px;--type-serif-md-font-weight: 400;--type-serif-md-size: 32px;--type-serif-md-paragraph-spacing: 0px;--type-serif-md-line-height: 40px;--type-serif-sm-font-weight: 400;--type-serif-sm-size: 24px;--type-serif-sm-paragraph-spacing: 0px;--type-serif-sm-line-height: 26px;--type-serif-lg-font-weight: 400;--type-serif-lg-size: 48px;--type-serif-lg-paragraph-spacing: 0px;--type-serif-lg-line-height: 52px;--type-serif-xs-font-weight: 400;--type-serif-xs-size: 18px;--type-serif-xs-line-height: 24px;--type-serif-xs-paragraph-spacing: 0px;--type-serif-xl-font-weight: 400;--type-serif-xl-size: 48px;--type-serif-xl-paragraph-spacing: 0px;--type-serif-xl-line-height: 58px;--type-mono-md-font-weight: 400;--type-mono-md-size: 22px;--type-mono-md-line-height: 24px;--type-mono-md-paragraph-spacing: 0px;--type-mono-lg-font-weight: 400;--type-mono-lg-size: 40px;--type-mono-lg-line-height: 40px;--type-mono-lg-paragraph-spacing: 0px;--type-mono-sm-font-weight: 400;--type-mono-sm-size: 14px;--type-mono-sm-line-height: 24px;--type-mono-sm-paragraph-spacing: 0px;--spacing-xs-4: 4px;--spacing-xs-8: 8px;--spacing-xs-16: 16px;--spacing-sm-24: 24px;--spacing-sm-32: 32px;--spacing-md-40: 40px;--spacing-md-48: 48px;--spacing-lg-64: 64px;--spacing-lg-80: 80px;--spacing-xlg-104: 104px;--spacing-xlg-152: 152px;--spacing-xs-12: 12px;--spacing-page-section: 80px;--spacing-card-list-spacing: 48px;--spacing-text-section-spacing: 64px;--spacing-md-xs-headings: 40px;--corner-radius-radius-lg: 16px;--corner-radius-radius-sm: 4px;--corner-radius-radius-md: 8px;--corner-radius-radius-round: 104px}}@media(min-width: 568px)and (max-width: 1279px){:root{--token-mode: Parity;--dropshadow: 0 2px 4px 0 #22223340;--primary-brand: #0645b1;--error-dark: #b60000;--success-dark: #05b01c;--inactive-fill: #ebebee;--hover: #0c3b8d;--pressed: #082f75;--button-primary-fill-inactive: #ebebee;--button-primary-fill: #0645b1;--button-primary-text: #ffffff;--button-primary-fill-hover: #0c3b8d;--button-primary-fill-press: #082f75;--button-primary-icon: #ffffff;--button-primary-fill-inverse: #ffffff;--button-primary-text-inverse: #082f75;--button-primary-icon-inverse: #0645b1;--button-primary-fill-inverse-hover: #cddaef;--button-primary-stroke-inverse-pressed: #0645b1;--button-secondary-stroke-inactive: #b1b1ba;--button-secondary-fill: #eef2f9;--button-secondary-text: #082f75;--button-secondary-fill-press: #cddaef;--button-secondary-fill-inactive: #ebebee;--button-secondary-stroke: #cddaef;--button-secondary-stroke-hover: #386ac1;--button-secondary-stroke-press: #0645b1;--button-secondary-text-inactive: #b1b1ba;--button-secondary-icon: #082f75;--button-secondary-fill-hover: #e6ecf7;--button-secondary-stroke-inverse: #ffffff;--button-secondary-fill-inverse: rgba(255, 255, 255, 0);--button-secondary-icon-inverse: #ffffff;--button-secondary-icon-hover: #082f75;--button-secondary-icon-press: #082f75;--button-secondary-text-inverse: #ffffff;--button-secondary-text-hover: #082f75;--button-secondary-text-press: #082f75;--button-secondary-fill-inverse-hover: #043059;--button-xs-stroke: #141413;--button-xs-stroke-hover: #0c3b8d;--button-xs-stroke-press: #082f75;--button-xs-stroke-inactive: #ebebee;--button-xs-text: #141413;--button-xs-text-hover: #0c3b8d;--button-xs-text-press: #082f75;--button-xs-text-inactive: #91919e;--button-xs-icon: #141413;--button-xs-icon-hover: #0c3b8d;--button-xs-icon-press: #082f75;--button-xs-icon-inactive: #91919e;--button-xs-fill: #ffffff;--button-xs-fill-hover: #f4f7fc;--button-xs-fill-press: #eef2f9;--buttons-button-text-inactive: #91919e;--buttons-button-focus: #0645b1;--buttons-button-icon-inactive: #91919e;--buttons-small-buttons-corner-radius: 8px;--buttons-small-buttons-l-r-padding: 12px;--buttons-small-buttons-height: 44px;--buttons-small-buttons-gap: 8px;--buttons-small-buttons-icon-only-width: 44px;--buttons-small-buttons-icon-size: 20px;--buttons-small-buttons-stroke-default: 1px;--buttons-small-buttons-stroke-thick: 2px;--buttons-large-buttons-l-r-padding: 20px;--buttons-large-buttons-height: 54px;--buttons-large-buttons-icon-only-width: 54px;--buttons-large-buttons-icon-size: 20px;--buttons-large-buttons-gap: 8px;--buttons-large-buttons-corner-radius: 8px;--buttons-large-buttons-stroke-default: 1px;--buttons-large-buttons-stroke-thick: 2px;--buttons-extra-small-buttons-l-r-padding: 8px;--buttons-extra-small-buttons-height: 32px;--buttons-extra-small-buttons-icon-size: 16px;--buttons-extra-small-buttons-gap: 4px;--buttons-extra-small-buttons-corner-radius: 8px;--buttons-stroke-default: 1px;--buttons-stroke-thick: 2px;--background-beige: #f9f7f4;--error-light: #fff2f2;--text-placeholder: #6d6d7d;--stroke-dark: #141413;--stroke-light: #dddde2;--stroke-medium: #535366;--accent-green: #ccffd4;--accent-turquoise: #ccf7ff;--accent-yellow: #f7ffcc;--accent-peach: #ffd4cc;--accent-violet: #f7ccff;--accent-purple: #f4f7fc;--text-primary: #141413;--secondary-brand: #141413;--text-hover: #0c3b8d;--text-white: #ffffff;--text-link: #0645b1;--text-press: #082f75;--success-light: #f0f8f1;--background-light-blue: #eef2f9;--background-white: #ffffff;--premium-dark: #877440;--premium-light: #f9f6ed;--stroke-white: #ffffff;--inactive-content: #b1b1ba;--annotate-light: #a35dff;--annotate-dark: #824acc;--grid: #eef2f9;--inactive-stroke: #ebebee;--shadow: rgba(34, 34, 51, 0.25);--text-inactive: #6d6d7d;--text-error: #b60000;--stroke-error: #b60000;--background-error: #fff2f2;--background-black: #141413;--icon-default: #141413;--icon-blue: #0645b1;--background-grey: #dddde2;--icon-grey: #b1b1ba;--text-focus: #082f75;--brand-colors-neutral-black: #141413;--brand-colors-neutral-900: #535366;--brand-colors-neutral-800: #6d6d7d;--brand-colors-neutral-700: #91919e;--brand-colors-neutral-600: #b1b1ba;--brand-colors-neutral-500: #c8c8cf;--brand-colors-neutral-400: #dddde2;--brand-colors-neutral-300: #ebebee;--brand-colors-neutral-200: #f8f8fb;--brand-colors-neutral-100: #fafafa;--brand-colors-neutral-white: #ffffff;--brand-colors-blue-900: #043059;--brand-colors-blue-800: #082f75;--brand-colors-blue-700: #0c3b8d;--brand-colors-blue-600: #0645b1;--brand-colors-blue-500: #386ac1;--brand-colors-blue-400: #cddaef;--brand-colors-blue-300: #e6ecf7;--brand-colors-blue-200: #eef2f9;--brand-colors-blue-100: #f4f7fc;--brand-colors-gold-500: #877440;--brand-colors-gold-400: #e9e3d4;--brand-colors-gold-300: #f2efe8;--brand-colors-gold-200: #f9f6ed;--brand-colors-gold-100: #f9f7f4;--brand-colors-error-900: #920000;--brand-colors-error-500: #b60000;--brand-colors-success-900: #035c0f;--brand-colors-green: #ccffd4;--brand-colors-turquoise: #ccf7ff;--brand-colors-yellow: #f7ffcc;--brand-colors-peach: #ffd4cc;--brand-colors-violet: #f7ccff;--brand-colors-error-100: #fff2f2;--brand-colors-success-500: #05b01c;--brand-colors-success-100: #f0f8f1;--text-secondary: #535366;--icon-white: #ffffff;--background-beige-darker: #f2efe8;--icon-dark-grey: #535366;--type-font-family-sans-serif: Roboto;--type-font-family-serif: Georgia;--type-font-family-mono: IBM Plex Mono;--type-weights-300: 300;--type-weights-400: 400;--type-weights-500: 500;--type-weights-700: 700;--type-sizes-12: 12px;--type-sizes-14: 14px;--type-sizes-16: 16px;--type-sizes-18: 18px;--type-sizes-20: 20px;--type-sizes-22: 22px;--type-sizes-24: 24px;--type-sizes-28: 28px;--type-sizes-30: 30px;--type-sizes-32: 32px;--type-sizes-40: 40px;--type-sizes-42: 42px;--type-sizes-48-2: 48px;--type-line-heights-16: 16px;--type-line-heights-20: 20px;--type-line-heights-23: 23px;--type-line-heights-24: 24px;--type-line-heights-25: 25px;--type-line-heights-26: 26px;--type-line-heights-29: 29px;--type-line-heights-30: 30px;--type-line-heights-32: 32px;--type-line-heights-34: 34px;--type-line-heights-35: 35px;--type-line-heights-36: 36px;--type-line-heights-38: 38px;--type-line-heights-40: 40px;--type-line-heights-46: 46px;--type-line-heights-48: 48px;--type-line-heights-52: 52px;--type-line-heights-58: 58px;--type-line-heights-68: 68px;--type-line-heights-74: 74px;--type-line-heights-82: 82px;--type-paragraph-spacings-0: 0px;--type-paragraph-spacings-4: 4px;--type-paragraph-spacings-8: 8px;--type-paragraph-spacings-16: 16px;--type-sans-serif-xl-font-weight: 400;--type-sans-serif-xl-size: 42px;--type-sans-serif-xl-line-height: 46px;--type-sans-serif-xl-paragraph-spacing: 16px;--type-sans-serif-lg-font-weight: 400;--type-sans-serif-lg-size: 32px;--type-sans-serif-lg-line-height: 36px;--type-sans-serif-lg-paragraph-spacing: 16px;--type-sans-serif-md-font-weight: 400;--type-sans-serif-md-line-height: 34px;--type-sans-serif-md-paragraph-spacing: 16px;--type-sans-serif-md-size: 28px;--type-sans-serif-xs-font-weight: 700;--type-sans-serif-xs-line-height: 25px;--type-sans-serif-xs-paragraph-spacing: 0px;--type-sans-serif-xs-size: 20px;--type-sans-serif-sm-font-weight: 400;--type-sans-serif-sm-line-height: 30px;--type-sans-serif-sm-paragraph-spacing: 16px;--type-sans-serif-sm-size: 24px;--type-body-xl-font-weight: 400;--type-body-xl-size: 24px;--type-body-xl-line-height: 36px;--type-body-xl-paragraph-spacing: 0px;--type-body-sm-font-weight: 400;--type-body-sm-size: 14px;--type-body-sm-line-height: 20px;--type-body-sm-paragraph-spacing: 8px;--type-body-xs-font-weight: 400;--type-body-xs-size: 12px;--type-body-xs-line-height: 16px;--type-body-xs-paragraph-spacing: 0px;--type-body-md-font-weight: 400;--type-body-md-size: 16px;--type-body-md-line-height: 20px;--type-body-md-paragraph-spacing: 4px;--type-body-lg-font-weight: 400;--type-body-lg-size: 20px;--type-body-lg-line-height: 26px;--type-body-lg-paragraph-spacing: 16px;--type-body-lg-medium-font-weight: 500;--type-body-lg-medium-size: 20px;--type-body-lg-medium-line-height: 32px;--type-body-lg-medium-paragraph-spacing: 16px;--type-body-md-medium-font-weight: 500;--type-body-md-medium-size: 16px;--type-body-md-medium-line-height: 20px;--type-body-md-medium-paragraph-spacing: 4px;--type-body-sm-bold-font-weight: 700;--type-body-sm-bold-size: 14px;--type-body-sm-bold-line-height: 20px;--type-body-sm-bold-paragraph-spacing: 8px;--type-body-sm-medium-font-weight: 500;--type-body-sm-medium-size: 14px;--type-body-sm-medium-line-height: 20px;--type-body-sm-medium-paragraph-spacing: 8px;--type-serif-md-font-weight: 400;--type-serif-md-size: 40px;--type-serif-md-paragraph-spacing: 0px;--type-serif-md-line-height: 48px;--type-serif-sm-font-weight: 400;--type-serif-sm-size: 28px;--type-serif-sm-paragraph-spacing: 0px;--type-serif-sm-line-height: 32px;--type-serif-lg-font-weight: 400;--type-serif-lg-size: 58px;--type-serif-lg-paragraph-spacing: 0px;--type-serif-lg-line-height: 68px;--type-serif-xs-font-weight: 400;--type-serif-xs-size: 18px;--type-serif-xs-line-height: 24px;--type-serif-xs-paragraph-spacing: 0px;--type-serif-xl-font-weight: 400;--type-serif-xl-size: 74px;--type-serif-xl-paragraph-spacing: 0px;--type-serif-xl-line-height: 82px;--type-mono-md-font-weight: 400;--type-mono-md-size: 22px;--type-mono-md-line-height: 24px;--type-mono-md-paragraph-spacing: 0px;--type-mono-lg-font-weight: 400;--type-mono-lg-size: 40px;--type-mono-lg-line-height: 40px;--type-mono-lg-paragraph-spacing: 0px;--type-mono-sm-font-weight: 400;--type-mono-sm-size: 14px;--type-mono-sm-line-height: 24px;--type-mono-sm-paragraph-spacing: 0px;--spacing-xs-4: 4px;--spacing-xs-8: 8px;--spacing-xs-16: 16px;--spacing-sm-24: 24px;--spacing-sm-32: 32px;--spacing-md-40: 40px;--spacing-md-48: 48px;--spacing-lg-64: 64px;--spacing-lg-80: 80px;--spacing-xlg-104: 104px;--spacing-xlg-152: 152px;--spacing-xs-12: 12px;--spacing-page-section: 104px;--spacing-card-list-spacing: 48px;--spacing-text-section-spacing: 80px;--spacing-md-xs-headings: 40px;--corner-radius-radius-lg: 16px;--corner-radius-radius-sm: 4px;--corner-radius-radius-md: 8px;--corner-radius-radius-round: 104px}}@media(min-width: 1280px){:root{--token-mode: Parity;--dropshadow: 0 2px 4px 0 #22223340;--primary-brand: #0645b1;--error-dark: #b60000;--success-dark: #05b01c;--inactive-fill: #ebebee;--hover: #0c3b8d;--pressed: #082f75;--button-primary-fill-inactive: #ebebee;--button-primary-fill: #0645b1;--button-primary-text: #ffffff;--button-primary-fill-hover: #0c3b8d;--button-primary-fill-press: #082f75;--button-primary-icon: #ffffff;--button-primary-fill-inverse: #ffffff;--button-primary-text-inverse: #082f75;--button-primary-icon-inverse: #0645b1;--button-primary-fill-inverse-hover: #cddaef;--button-primary-stroke-inverse-pressed: #0645b1;--button-secondary-stroke-inactive: #b1b1ba;--button-secondary-fill: #eef2f9;--button-secondary-text: #082f75;--button-secondary-fill-press: #cddaef;--button-secondary-fill-inactive: #ebebee;--button-secondary-stroke: #cddaef;--button-secondary-stroke-hover: #386ac1;--button-secondary-stroke-press: #0645b1;--button-secondary-text-inactive: #b1b1ba;--button-secondary-icon: #082f75;--button-secondary-fill-hover: #e6ecf7;--button-secondary-stroke-inverse: #ffffff;--button-secondary-fill-inverse: rgba(255, 255, 255, 0);--button-secondary-icon-inverse: #ffffff;--button-secondary-icon-hover: #082f75;--button-secondary-icon-press: #082f75;--button-secondary-text-inverse: #ffffff;--button-secondary-text-hover: #082f75;--button-secondary-text-press: #082f75;--button-secondary-fill-inverse-hover: #043059;--button-xs-stroke: #141413;--button-xs-stroke-hover: #0c3b8d;--button-xs-stroke-press: #082f75;--button-xs-stroke-inactive: #ebebee;--button-xs-text: #141413;--button-xs-text-hover: #0c3b8d;--button-xs-text-press: #082f75;--button-xs-text-inactive: #91919e;--button-xs-icon: #141413;--button-xs-icon-hover: #0c3b8d;--button-xs-icon-press: #082f75;--button-xs-icon-inactive: #91919e;--button-xs-fill: #ffffff;--button-xs-fill-hover: #f4f7fc;--button-xs-fill-press: #eef2f9;--buttons-button-text-inactive: #91919e;--buttons-button-focus: #0645b1;--buttons-button-icon-inactive: #91919e;--buttons-small-buttons-corner-radius: 8px;--buttons-small-buttons-l-r-padding: 12px;--buttons-small-buttons-height: 44px;--buttons-small-buttons-gap: 8px;--buttons-small-buttons-icon-only-width: 44px;--buttons-small-buttons-icon-size: 20px;--buttons-small-buttons-stroke-default: 1px;--buttons-small-buttons-stroke-thick: 2px;--buttons-large-buttons-l-r-padding: 20px;--buttons-large-buttons-height: 54px;--buttons-large-buttons-icon-only-width: 54px;--buttons-large-buttons-icon-size: 20px;--buttons-large-buttons-gap: 8px;--buttons-large-buttons-corner-radius: 8px;--buttons-large-buttons-stroke-default: 1px;--buttons-large-buttons-stroke-thick: 2px;--buttons-extra-small-buttons-l-r-padding: 8px;--buttons-extra-small-buttons-height: 32px;--buttons-extra-small-buttons-icon-size: 16px;--buttons-extra-small-buttons-gap: 4px;--buttons-extra-small-buttons-corner-radius: 8px;--buttons-stroke-default: 1px;--buttons-stroke-thick: 2px;--background-beige: #f9f7f4;--error-light: #fff2f2;--text-placeholder: #6d6d7d;--stroke-dark: #141413;--stroke-light: #dddde2;--stroke-medium: #535366;--accent-green: #ccffd4;--accent-turquoise: #ccf7ff;--accent-yellow: #f7ffcc;--accent-peach: #ffd4cc;--accent-violet: #f7ccff;--accent-purple: #f4f7fc;--text-primary: #141413;--secondary-brand: #141413;--text-hover: #0c3b8d;--text-white: #ffffff;--text-link: #0645b1;--text-press: #082f75;--success-light: #f0f8f1;--background-light-blue: #eef2f9;--background-white: #ffffff;--premium-dark: #877440;--premium-light: #f9f6ed;--stroke-white: #ffffff;--inactive-content: #b1b1ba;--annotate-light: #a35dff;--annotate-dark: #824acc;--grid: #eef2f9;--inactive-stroke: #ebebee;--shadow: rgba(34, 34, 51, 0.25);--text-inactive: #6d6d7d;--text-error: #b60000;--stroke-error: #b60000;--background-error: #fff2f2;--background-black: #141413;--icon-default: #141413;--icon-blue: #0645b1;--background-grey: #dddde2;--icon-grey: #b1b1ba;--text-focus: #082f75;--brand-colors-neutral-black: #141413;--brand-colors-neutral-900: #535366;--brand-colors-neutral-800: #6d6d7d;--brand-colors-neutral-700: #91919e;--brand-colors-neutral-600: #b1b1ba;--brand-colors-neutral-500: #c8c8cf;--brand-colors-neutral-400: #dddde2;--brand-colors-neutral-300: #ebebee;--brand-colors-neutral-200: #f8f8fb;--brand-colors-neutral-100: #fafafa;--brand-colors-neutral-white: #ffffff;--brand-colors-blue-900: #043059;--brand-colors-blue-800: #082f75;--brand-colors-blue-700: #0c3b8d;--brand-colors-blue-600: #0645b1;--brand-colors-blue-500: #386ac1;--brand-colors-blue-400: #cddaef;--brand-colors-blue-300: #e6ecf7;--brand-colors-blue-200: #eef2f9;--brand-colors-blue-100: #f4f7fc;--brand-colors-gold-500: #877440;--brand-colors-gold-400: #e9e3d4;--brand-colors-gold-300: #f2efe8;--brand-colors-gold-200: #f9f6ed;--brand-colors-gold-100: #f9f7f4;--brand-colors-error-900: #920000;--brand-colors-error-500: #b60000;--brand-colors-success-900: #035c0f;--brand-colors-green: #ccffd4;--brand-colors-turquoise: #ccf7ff;--brand-colors-yellow: #f7ffcc;--brand-colors-peach: #ffd4cc;--brand-colors-violet: #f7ccff;--brand-colors-error-100: #fff2f2;--brand-colors-success-500: #05b01c;--brand-colors-success-100: #f0f8f1;--text-secondary: #535366;--icon-white: #ffffff;--background-beige-darker: #f2efe8;--icon-dark-grey: #535366;--type-font-family-sans-serif: Roboto;--type-font-family-serif: Georgia;--type-font-family-mono: IBM Plex Mono;--type-weights-300: 300;--type-weights-400: 400;--type-weights-500: 500;--type-weights-700: 700;--type-sizes-12: 12px;--type-sizes-14: 14px;--type-sizes-16: 16px;--type-sizes-18: 18px;--type-sizes-20: 20px;--type-sizes-22: 22px;--type-sizes-24: 24px;--type-sizes-28: 28px;--type-sizes-30: 30px;--type-sizes-32: 32px;--type-sizes-40: 40px;--type-sizes-42: 42px;--type-sizes-48-2: 48px;--type-line-heights-16: 16px;--type-line-heights-20: 20px;--type-line-heights-23: 23px;--type-line-heights-24: 24px;--type-line-heights-25: 25px;--type-line-heights-26: 26px;--type-line-heights-29: 29px;--type-line-heights-30: 30px;--type-line-heights-32: 32px;--type-line-heights-34: 34px;--type-line-heights-35: 35px;--type-line-heights-36: 36px;--type-line-heights-38: 38px;--type-line-heights-40: 40px;--type-line-heights-46: 46px;--type-line-heights-48: 48px;--type-line-heights-52: 52px;--type-line-heights-58: 58px;--type-line-heights-68: 68px;--type-line-heights-74: 74px;--type-line-heights-82: 82px;--type-paragraph-spacings-0: 0px;--type-paragraph-spacings-4: 4px;--type-paragraph-spacings-8: 8px;--type-paragraph-spacings-16: 16px;--type-sans-serif-xl-font-weight: 400;--type-sans-serif-xl-size: 42px;--type-sans-serif-xl-line-height: 46px;--type-sans-serif-xl-paragraph-spacing: 16px;--type-sans-serif-lg-font-weight: 400;--type-sans-serif-lg-size: 32px;--type-sans-serif-lg-line-height: 38px;--type-sans-serif-lg-paragraph-spacing: 16px;--type-sans-serif-md-font-weight: 400;--type-sans-serif-md-line-height: 34px;--type-sans-serif-md-paragraph-spacing: 16px;--type-sans-serif-md-size: 28px;--type-sans-serif-xs-font-weight: 700;--type-sans-serif-xs-line-height: 25px;--type-sans-serif-xs-paragraph-spacing: 0px;--type-sans-serif-xs-size: 20px;--type-sans-serif-sm-font-weight: 400;--type-sans-serif-sm-line-height: 30px;--type-sans-serif-sm-paragraph-spacing: 16px;--type-sans-serif-sm-size: 24px;--type-body-xl-font-weight: 400;--type-body-xl-size: 24px;--type-body-xl-line-height: 36px;--type-body-xl-paragraph-spacing: 0px;--type-body-sm-font-weight: 400;--type-body-sm-size: 14px;--type-body-sm-line-height: 20px;--type-body-sm-paragraph-spacing: 8px;--type-body-xs-font-weight: 400;--type-body-xs-size: 12px;--type-body-xs-line-height: 16px;--type-body-xs-paragraph-spacing: 0px;--type-body-md-font-weight: 400;--type-body-md-size: 16px;--type-body-md-line-height: 20px;--type-body-md-paragraph-spacing: 4px;--type-body-lg-font-weight: 400;--type-body-lg-size: 20px;--type-body-lg-line-height: 26px;--type-body-lg-paragraph-spacing: 16px;--type-body-lg-medium-font-weight: 500;--type-body-lg-medium-size: 20px;--type-body-lg-medium-line-height: 32px;--type-body-lg-medium-paragraph-spacing: 16px;--type-body-md-medium-font-weight: 500;--type-body-md-medium-size: 16px;--type-body-md-medium-line-height: 20px;--type-body-md-medium-paragraph-spacing: 4px;--type-body-sm-bold-font-weight: 700;--type-body-sm-bold-size: 14px;--type-body-sm-bold-line-height: 20px;--type-body-sm-bold-paragraph-spacing: 8px;--type-body-sm-medium-font-weight: 500;--type-body-sm-medium-size: 14px;--type-body-sm-medium-line-height: 20px;--type-body-sm-medium-paragraph-spacing: 8px;--type-serif-md-font-weight: 400;--type-serif-md-size: 40px;--type-serif-md-paragraph-spacing: 0px;--type-serif-md-line-height: 48px;--type-serif-sm-font-weight: 400;--type-serif-sm-size: 28px;--type-serif-sm-paragraph-spacing: 0px;--type-serif-sm-line-height: 32px;--type-serif-lg-font-weight: 400;--type-serif-lg-size: 58px;--type-serif-lg-paragraph-spacing: 0px;--type-serif-lg-line-height: 68px;--type-serif-xs-font-weight: 400;--type-serif-xs-size: 18px;--type-serif-xs-line-height: 24px;--type-serif-xs-paragraph-spacing: 0px;--type-serif-xl-font-weight: 400;--type-serif-xl-size: 74px;--type-serif-xl-paragraph-spacing: 0px;--type-serif-xl-line-height: 82px;--type-mono-md-font-weight: 400;--type-mono-md-size: 22px;--type-mono-md-line-height: 24px;--type-mono-md-paragraph-spacing: 0px;--type-mono-lg-font-weight: 400;--type-mono-lg-size: 40px;--type-mono-lg-line-height: 40px;--type-mono-lg-paragraph-spacing: 0px;--type-mono-sm-font-weight: 400;--type-mono-sm-size: 14px;--type-mono-sm-line-height: 24px;--type-mono-sm-paragraph-spacing: 0px;--spacing-xs-4: 4px;--spacing-xs-8: 8px;--spacing-xs-16: 16px;--spacing-sm-24: 24px;--spacing-sm-32: 32px;--spacing-md-40: 40px;--spacing-md-48: 48px;--spacing-lg-64: 64px;--spacing-lg-80: 80px;--spacing-xlg-104: 104px;--spacing-xlg-152: 152px;--spacing-xs-12: 12px;--spacing-page-section: 152px;--spacing-card-list-spacing: 48px;--spacing-text-section-spacing: 80px;--spacing-md-xs-headings: 40px;--corner-radius-radius-lg: 16px;--corner-radius-radius-sm: 4px;--corner-radius-radius-md: 8px;--corner-radius-radius-round: 104px}}</style><link crossorigin="" href="https://fonts.gstatic.com/" rel="preconnect" /><link href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Gupter:wght@400;500;700&family=IBM+Plex+Mono:wght@300;400&family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20,400,0,0&display=swap" rel="stylesheet" /><link rel="stylesheet" href="//a.academia-assets.com/assets/design_system/common-57f9da13cef3fd4e2a8b655342c6488eded3e557e823fe67571f2ac77acd7b6f.css" media="all" /> <meta name="author" content="mark harman" /> <meta name="description" content="Mark Harman, University College London: 811 Followers, 153 Following, 218 Research papers. Research interests: Computer Science, Software Testing, and Program…" /> <meta name="google-site-verification" content="bKJMBZA7E43xhDOopFZkssMMkBRjvYERV-NaN4R6mrs" /> <script> var $controller_name = 'works'; var $action_name = "summary"; var $rails_env = 'production'; var $app_rev = 'e58d2a87496185de52c683975e4423cce9d80f7b'; var $domain = 'academia.edu'; var $app_host = "academia.edu"; var $asset_host = "academia-assets.com"; var $start_time = new Date().getTime(); var $recaptcha_key = "6LdxlRMTAAAAADnu_zyLhLg0YF9uACwz78shpjJB"; var $recaptcha_invisible_key = "6Lf3KHUUAAAAACggoMpmGJdQDtiyrjVlvGJ6BbAj"; var $disableClientRecordHit = false; </script> <script> window.Aedu = { hit_data: null }; window.Aedu.SiteStats = {"premium_universities_count":13886,"monthly_visitors":"31 million","monthly_visitor_count":31300000,"monthly_visitor_count_in_millions":31,"user_count":286724898,"paper_count":55203019,"paper_count_in_millions":55,"page_count":432000000,"page_count_in_millions":432,"pdf_count":16500000,"pdf_count_in_millions":16}; window.Aedu.serverRenderTime = new Date(1744268367000); window.Aedu.timeDifference = new Date().getTime() - 1744268367000; window.Aedu.isUsingCssV1 = false; window.Aedu.enableLocalization = true; window.Aedu.activateFullstory = false; window.Aedu.serviceAvailability = { status: {"attention_db":"on","bibliography_db":"on","contacts_db":"on","email_db":"on","indexability_db":"on","mentions_db":"on","news_db":"on","notifications_db":"on","offsite_mentions_db":"on","redshift":"on","redshift_exports_db":"on","related_works_db":"on","ring_db":"on","user_tests_db":"on"}, serviceEnabled: function(service) { return this.status[service] === "on"; }, readEnabled: function(service) { return this.serviceEnabled(service) || this.status[service] === "read_only"; }, }; window.Aedu.viewApmTrace = function() { // Check if x-apm-trace-id meta tag is set, and open the trace in APM // in a new window if it is. var apmTraceId = document.head.querySelector('meta[name="x-apm-trace-id"]'); if (apmTraceId) { var traceId = apmTraceId.content; // Use trace ID to construct URL, an example URL looks like: // https://app.datadoghq.com/apm/traces?query=trace_id%31298410148923562634 var apmUrl = 'https://app.datadoghq.com/apm/traces?query=trace_id%3A' + traceId; window.open(apmUrl, '_blank'); } }; </script> <!--[if lt IE 9]> <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js"></script> <![endif]--> <link href="https://fonts.googleapis.com/css?family=Roboto:100,100i,300,300i,400,400i,500,500i,700,700i,900,900i" rel="stylesheet"> <link rel="preload" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" as="style" onload="this.rel='stylesheet'"> <link rel="stylesheet" href="//a.academia-assets.com/assets/libraries-a9675dcb01ec4ef6aa807ba772c7a5a00c1820d3ff661c1038a20f80d06bb4e4.css" media="all" /> <link rel="stylesheet" href="//a.academia-assets.com/assets/academia-e4a11c75ccedf64d34f117b334c28ebf40fe75db593398069c5640435b4cda98.css" media="all" /> <link rel="stylesheet" href="//a.academia-assets.com/assets/design_system_legacy-056a9113b9a0f5343d013b29ee1929d5a18be35fdcdceb616600b4db8bd20054.css" media="all" /> <script src="//a.academia-assets.com/assets/webpack_bundles/runtime-bundle-005434038af4252ca37c527588411a3d6a0eabb5f727fac83f8bbe7fd88d93bb.js"></script> <script src="//a.academia-assets.com/assets/webpack_bundles/webpack_libraries_and_infrequently_changed.wjs-bundle-7d36841b83a7f1e8e8bee77199e3df42524ded8fb4aae118d9fbe6bb45fb6052.js"></script> <script src="//a.academia-assets.com/assets/webpack_bundles/core_webpack.wjs-bundle-a5a92a7d7fd5e806e498818586e171b196d11c9bb64c0c2ba9e0ae84d2893cd5.js"></script> <script src="//a.academia-assets.com/assets/webpack_bundles/sentry.wjs-bundle-5fe03fddca915c8ba0f7edbe64c194308e8ce5abaed7bffe1255ff37549c4808.js"></script> <script> jade = window.jade || {}; jade.helpers = window.$h; jade._ = window._; </script> <!-- Google Tag Manager --> <script id="tag-manager-head-root">(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer_old','GTM-5G9JF7Z');</script> <!-- End Google Tag Manager --> <script> window.gptadslots = []; window.googletag = window.googletag || {}; window.googletag.cmd = window.googletag.cmd || []; </script> <script type="text/javascript"> // TODO(jacob): This should be defined, may be rare load order problem. // Checking if null is just a quick fix, will default to en if unset. // Better fix is to run this immedietely after I18n is set. if (window.I18n != null) { I18n.defaultLocale = "en"; I18n.locale = "en"; I18n.fallbacks = true; } </script> <link rel="canonical" href="https://ucl.academia.edu/MarkHarman" /> </head> <!--[if gte IE 9 ]> <body class='ie ie9 c-profiles/works a-summary logged_out'> <![endif]--> <!--[if !(IE) ]><!--> <body class='c-profiles/works a-summary logged_out'> <!--<![endif]--> <div id="fb-root"></div><script>window.fbAsyncInit = function() { FB.init({ appId: "2369844204", version: "v8.0", status: true, cookie: true, xfbml: true }); // Additional initialization code. if (window.InitFacebook) { // facebook.ts already loaded, set it up. window.InitFacebook(); } else { // Set a flag for facebook.ts to find when it loads. window.academiaAuthReadyFacebook = true; } };</script><script>window.fbAsyncLoad = function() { // Protection against double calling of this function if (window.FB) { return; } (function(d, s, id){ var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) {return;} js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/sdk.js"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); } if (!window.defer_facebook) { // Autoload if not deferred window.fbAsyncLoad(); } else { // Defer loading by 5 seconds setTimeout(function() { window.fbAsyncLoad(); }, 5000); }</script> <div id="google-root"></div><script>window.loadGoogle = function() { if (window.InitGoogle) { // google.ts already loaded, set it up. window.InitGoogle("331998490334-rsn3chp12mbkiqhl6e7lu2q0mlbu0f1b"); } else { // Set a flag for google.ts to use when it loads. window.GoogleClientID = "331998490334-rsn3chp12mbkiqhl6e7lu2q0mlbu0f1b"; } };</script><script>window.googleAsyncLoad = function() { // Protection against double calling of this function (function(d) { var js; var id = 'google-jssdk'; var ref = d.getElementsByTagName('script')[0]; if (d.getElementById(id)) { return; } js = d.createElement('script'); js.id = id; js.async = true; js.onload = loadGoogle; js.src = "https://accounts.google.com/gsi/client" ref.parentNode.insertBefore(js, ref); }(document)); } if (!window.defer_google) { // Autoload if not deferred window.googleAsyncLoad(); } else { // Defer loading by 5 seconds setTimeout(function() { window.googleAsyncLoad(); }, 5000); }</script> <div id="tag-manager-body-root"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5G9JF7Z" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <!-- Event listeners for analytics --> <script> window.addEventListener('load', function() { if (document.querySelector('input[name="commit"]')) { document.querySelector('input[name="commit"]').addEventListener('click', function() { gtag('event', 'click', { event_category: 'button', event_label: 'Log In' }) }) } }); </script> </div> <script>var _comscore = _comscore || []; _comscore.push({ c1: "2", c2: "26766707" }); (function() { var s = document.createElement("script"), el = document.getElementsByTagName("script")[0]; s.async = true; s.src = (document.location.protocol == "https:" ? "https://sb" : "http://b") + ".scorecardresearch.com/beacon.js"; el.parentNode.insertBefore(s, el); })();</script><img src="https://sb.scorecardresearch.com/p?c1=2&c2=26766707&cv=2.0&cj=1" style="position: absolute; visibility: hidden" /> <div id='react-modal'></div> <div class='DesignSystem'> <a class='u-showOnFocus' href='#site'> Skip to main content </a> </div> <div id="upgrade_ie_banner" style="display: none;"><p>Academia.edu no longer supports Internet Explorer.</p><p>To browse Academia.edu and the wider internet faster and more securely, please take a few seconds to <a href="https://www.academia.edu/upgrade-browser">upgrade your browser</a>.</p></div><script>// Show this banner for all versions of IE if (!!window.MSInputMethodContext || /(MSIE)/.test(navigator.userAgent)) { document.getElementById('upgrade_ie_banner').style.display = 'block'; }</script> <div class="DesignSystem bootstrap ShrinkableNav"><div class="navbar navbar-default main-header"><div class="container-wrapper" id="main-header-container"><div class="container"><div class="navbar-header"><div class="nav-left-wrapper u-mt0x"><div class="nav-logo"><a data-main-header-link-target="logo_home" href="https://www.academia.edu/"><img class="visible-xs-inline-block" style="height: 24px;" alt="Academia.edu" src="//a.academia-assets.com/images/academia-logo-redesign-2015-A.svg" width="24" height="24" /><img width="145.2" height="18" class="hidden-xs" style="height: 24px;" alt="Academia.edu" src="//a.academia-assets.com/images/academia-logo-redesign-2015.svg" /></a></div><div class="nav-search"><div class="SiteSearch-wrapper select2-no-default-pills"><form class="js-SiteSearch-form DesignSystem" action="https://www.academia.edu/search" accept-charset="UTF-8" method="get"><i class="SiteSearch-icon fa fa-search u-fw700 u-positionAbsolute u-tcGrayDark"></i><input class="js-SiteSearch-form-input SiteSearch-form-input form-control" data-main-header-click-target="search_input" name="q" placeholder="Search" type="text" value="" /></form></div></div></div><div class="nav-right-wrapper pull-right"><ul class="NavLinks js-main-nav list-unstyled"><li class="NavLinks-link"><a class="js-header-login-url Button Button--inverseGray Button--sm u-mb4x" id="nav_log_in" rel="nofollow" href="https://www.academia.edu/login">Log In</a></li><li class="NavLinks-link u-p0x"><a class="Button Button--inverseGray Button--sm u-mb4x" rel="nofollow" href="https://www.academia.edu/signup">Sign Up</a></li></ul><button class="hidden-lg hidden-md hidden-sm u-ml4x navbar-toggle collapsed" data-target=".js-mobile-header-links" data-toggle="collapse" type="button"><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button></div></div><div class="collapse navbar-collapse js-mobile-header-links"><ul class="nav navbar-nav"><li class="u-borderColorGrayLight u-borderBottom1"><a rel="nofollow" href="https://www.academia.edu/login">Log In</a></li><li class="u-borderColorGrayLight u-borderBottom1"><a rel="nofollow" href="https://www.academia.edu/signup">Sign Up</a></li><li class="u-borderColorGrayLight u-borderBottom1 js-mobile-nav-expand-trigger"><a href="#">more <span class="caret"></span></a></li><li><ul class="js-mobile-nav-expand-section nav navbar-nav u-m0x collapse"><li class="u-borderColorGrayLight u-borderBottom1"><a rel="false" href="https://www.academia.edu/about">About</a></li><li class="u-borderColorGrayLight u-borderBottom1"><a rel="nofollow" href="https://www.academia.edu/press">Press</a></li><li class="u-borderColorGrayLight u-borderBottom1"><a rel="false" href="https://www.academia.edu/documents">Papers</a></li><li class="u-borderColorGrayLight u-borderBottom1"><a rel="nofollow" href="https://www.academia.edu/terms">Terms</a></li><li class="u-borderColorGrayLight u-borderBottom1"><a rel="nofollow" href="https://www.academia.edu/privacy">Privacy</a></li><li class="u-borderColorGrayLight u-borderBottom1"><a rel="nofollow" href="https://www.academia.edu/copyright">Copyright</a></li><li class="u-borderColorGrayLight u-borderBottom1"><a rel="nofollow" href="https://www.academia.edu/hiring"><i class="fa fa-briefcase"></i> We're Hiring!</a></li><li class="u-borderColorGrayLight u-borderBottom1"><a rel="nofollow" href="https://support.academia.edu/hc/en-us"><i class="fa fa-question-circle"></i> Help Center</a></li><li class="js-mobile-nav-collapse-trigger u-borderColorGrayLight u-borderBottom1 dropup" style="display:none"><a href="#">less <span class="caret"></span></a></li></ul></li></ul></div></div></div><script>(function(){ var $moreLink = $(".js-mobile-nav-expand-trigger"); var $lessLink = $(".js-mobile-nav-collapse-trigger"); var $section = $('.js-mobile-nav-expand-section'); $moreLink.click(function(ev){ ev.preventDefault(); $moreLink.hide(); $lessLink.show(); $section.collapse('show'); }); $lessLink.click(function(ev){ ev.preventDefault(); $moreLink.show(); $lessLink.hide(); $section.collapse('hide'); }); })() if ($a.is_logged_in() || false) { new Aedu.NavigationController({ el: '.js-main-nav', showHighlightedNotification: false }); } else { $(".js-header-login-url").attr("href", $a.loginUrlWithRedirect()); } Aedu.autocompleteSearch = new AutocompleteSearch({el: '.js-SiteSearch-form'});</script></div></div> <div id='site' class='fixed'> <div id="content" class="clearfix"> <script>document.addEventListener('DOMContentLoaded', function(){ var $dismissible = $(".dismissible_banner"); $dismissible.click(function(ev) { $dismissible.hide(); }); });</script> <script src="//a.academia-assets.com/assets/webpack_bundles/profile.wjs-bundle-363b60fb50261f5d4db037e3effdfe57e5d5d9cd08d6d306c74bfe20b92c1eb0.js" defer="defer"></script><script>$viewedUser = Aedu.User.set_viewed( {"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman","photo":"https://0.academia-photos.com/314132/63138/69396/s65_mark.harman.jpg","has_photo":true,"department":{"id":126,"name":"Computer Science","url":"https://ucl.academia.edu/Departments/Computer_Science/Documents","university":{"id":111,"name":"University College London","url":"https://ucl.academia.edu/"}},"position":"Faculty Member","position_id":1,"is_analytics_public":false,"interests":[{"id":422,"name":"Computer Science","url":"https://www.academia.edu/Documents/in/Computer_Science"},{"id":4761,"name":"Software Testing","url":"https://www.academia.edu/Documents/in/Software_Testing"},{"id":13891,"name":"Program Analysis","url":"https://www.academia.edu/Documents/in/Program_Analysis"},{"id":71833,"name":"Program Transformation","url":"https://www.academia.edu/Documents/in/Program_Transformation"},{"id":57945,"name":"Program Slicing","url":"https://www.academia.edu/Documents/in/Program_Slicing"},{"id":39821,"name":"Search Based Software Engineering","url":"https://www.academia.edu/Documents/in/Search_Based_Software_Engineering"},{"id":71830,"name":"Sbse","url":"https://www.academia.edu/Documents/in/Sbse"},{"id":5026,"name":"Genetic Algorithms","url":"https://www.academia.edu/Documents/in/Genetic_Algorithms"},{"id":449,"name":"Software Engineering","url":"https://www.academia.edu/Documents/in/Software_Engineering"},{"id":57934,"name":"Software Measurement","url":"https://www.academia.edu/Documents/in/Software_Measurement"},{"id":71836,"name":"Mutation testing","url":"https://www.academia.edu/Documents/in/Mutation_testing"}]} ); if ($a.is_logged_in() && $viewedUser.is_current_user()) { $('body').addClass('profile-viewed-by-owner'); } $socialProfiles = [{"id":186142,"link":"http://www.cs.ucl.ac.uk/staff/mharman/","name":"Homepage","link_domain":"www.cs.ucl.ac.uk","icon":"//www.google.com/s2/u/0/favicons?domain=www.cs.ucl.ac.uk"}]</script><div id="js-react-on-rails-context" style="display:none" data-rails-context="{"inMailer":false,"i18nLocale":"en","i18nDefaultLocale":"en","href":"https://ucl.academia.edu/MarkHarman","location":"/MarkHarman","scheme":"https","host":"ucl.academia.edu","port":null,"pathname":"/MarkHarman","search":null,"httpAcceptLanguage":null,"serverSide":false}"></div> <div class="js-react-on-rails-component" style="display:none" data-component-name="ProfileCheckPaperUpdate" data-props="{}" data-trace="false" data-dom-id="ProfileCheckPaperUpdate-react-component-ed2f8d43-b7b8-483a-a70c-d0599e975714"></div> <div id="ProfileCheckPaperUpdate-react-component-ed2f8d43-b7b8-483a-a70c-d0599e975714"></div> <div class="DesignSystem"><div class="onsite-ping" id="onsite-ping"></div></div><div class="profile-user-info DesignSystem"><div class="social-profile-container"><div class="left-panel-container"><div class="user-info-component-wrapper"><div class="user-summary-cta-container"><div class="user-summary-container"><div class="social-profile-avatar-container"><img class="profile-avatar u-positionAbsolute" alt="Mark Harman" border="0" onerror="if (this.src != '//a.academia-assets.com/images/s200_no_pic.png') this.src = '//a.academia-assets.com/images/s200_no_pic.png';" width="200" height="200" src="https://0.academia-photos.com/314132/63138/69396/s200_mark.harman.jpg" /></div><div class="title-container"><h1 class="ds2-5-heading-sans-serif-sm">Mark Harman</h1><div class="affiliations-container fake-truncate js-profile-affiliations"><div><a class="u-tcGrayDarker" href="https://ucl.academia.edu/">University College London</a>, <a class="u-tcGrayDarker" href="https://ucl.academia.edu/Departments/Computer_Science/Documents">Computer Science</a>, <span class="u-tcGrayDarker">Faculty Member</span></div></div></div></div><div class="sidebar-cta-container"><button class="ds2-5-button hidden profile-cta-button grow js-profile-follow-button" data-broccoli-component="user-info.follow-button" data-click-track="profile-user-info-follow-button" data-follow-user-fname="Mark" data-follow-user-id="314132" data-follow-user-source="profile_button" data-has-google="false"><span class="material-symbols-outlined" style="font-size: 20px" translate="no">add</span>Follow</button><button class="ds2-5-button hidden profile-cta-button grow js-profile-unfollow-button" data-broccoli-component="user-info.unfollow-button" data-click-track="profile-user-info-unfollow-button" data-unfollow-user-id="314132"><span class="material-symbols-outlined" style="font-size: 20px" translate="no">done</span>Following</button></div></div><div class="user-stats-container"><a><div class="stat-container js-profile-followers"><p class="label">Followers</p><p class="data">811</p></div></a><a><div class="stat-container js-profile-followees" data-broccoli-component="user-info.followees-count" data-click-track="profile-expand-user-info-following"><p class="label">Following</p><p class="data">153</p></div></a><span><div class="stat-container"><p class="label"><span class="js-profile-total-view-text">Public Views</span></p><p class="data"><span class="js-profile-view-count"></span></p></div></span></div><div class="user-bio-container"><div class="profile-bio fake-truncate js-profile-about" style="margin: 0px;"><b>Address: </b>Department of Computer Science,<br />University College London, <br />Malet Place, London, WC1E 6BT, UK.<br /><div class="js-profile-less-about u-linkUnstyled u-tcGrayDarker u-textDecorationUnderline u-displayNone">less</div></div></div><div class="suggested-academics-container"><div class="suggested-academics--header"><h3 class="ds2-5-heading-sans-serif-xs">Related Authors</h3></div><ul class="suggested-user-card-list" data-nosnippet="true"><div class="suggested-user-card"><div class="suggested-user-card__avatar social-profile-avatar-container"><a data-nosnippet="" href="https://muni.academia.edu/DavidKalhous"><img class="profile-avatar u-positionAbsolute" alt="David Kalhous related author profile picture" border="0" onerror="if (this.src != '//a.academia-assets.com/images/s200_no_pic.png') this.src = '//a.academia-assets.com/images/s200_no_pic.png';" width="200" height="200" src="https://0.academia-photos.com/63823/17963/10975883/s200_david.kalhous.jpg" /></a></div><div class="suggested-user-card__user-info"><a class="suggested-user-card__user-info__header ds2-5-body-sm-bold ds2-5-body-link" href="https://muni.academia.edu/DavidKalhous">David Kalhous</a><p class="suggested-user-card__user-info__subheader ds2-5-body-xs">Masaryk University</p></div></div><div class="suggested-user-card"><div class="suggested-user-card__avatar social-profile-avatar-container"><a data-nosnippet="" href="https://uni-koln.academia.edu/RemoCaponi"><img class="profile-avatar u-positionAbsolute" alt="Remo Caponi related author profile picture" border="0" onerror="if (this.src != '//a.academia-assets.com/images/s200_no_pic.png') this.src = '//a.academia-assets.com/images/s200_no_pic.png';" width="200" height="200" src="https://0.academia-photos.com/103326/28437/67684825/s200_remo.caponi.jpg" /></a></div><div class="suggested-user-card__user-info"><a class="suggested-user-card__user-info__header ds2-5-body-sm-bold ds2-5-body-link" href="https://uni-koln.academia.edu/RemoCaponi">Remo Caponi</a><p class="suggested-user-card__user-info__subheader ds2-5-body-xs">University of Cologne</p></div></div><div class="suggested-user-card"><div class="suggested-user-card__avatar social-profile-avatar-container"><a data-nosnippet="" href="https://gc-cuny.academia.edu/LevManovich"><img class="profile-avatar u-positionAbsolute" alt="Lev Manovich related author profile picture" border="0" onerror="if (this.src != '//a.academia-assets.com/images/s200_no_pic.png') this.src = '//a.academia-assets.com/images/s200_no_pic.png';" width="200" height="200" src="https://0.academia-photos.com/412778/130321/66062342/s200_lev.manovich.jpg" /></a></div><div class="suggested-user-card__user-info"><a class="suggested-user-card__user-info__header ds2-5-body-sm-bold ds2-5-body-link" href="https://gc-cuny.academia.edu/LevManovich">Lev Manovich</a><p class="suggested-user-card__user-info__subheader ds2-5-body-xs">Graduate Center of the City University of New York</p></div></div><div class="suggested-user-card"><div class="suggested-user-card__avatar social-profile-avatar-container"><a data-nosnippet="" href="https://rmit-vn.academia.edu/HadiWinarto"><img class="profile-avatar u-positionAbsolute" alt="Hadi Winarto related author profile picture" border="0" onerror="if (this.src != '//a.academia-assets.com/images/s200_no_pic.png') this.src = '//a.academia-assets.com/images/s200_no_pic.png';" width="200" height="200" src="https://0.academia-photos.com/786518/266999/315517/s200_hadi.winarto.jpg" /></a></div><div class="suggested-user-card__user-info"><a class="suggested-user-card__user-info__header ds2-5-body-sm-bold ds2-5-body-link" href="https://rmit-vn.academia.edu/HadiWinarto">Hadi Winarto</a><p class="suggested-user-card__user-info__subheader ds2-5-body-xs">RMIT International University Vietnam</p></div></div><div class="suggested-user-card"><div class="suggested-user-card__avatar social-profile-avatar-container"><a data-nosnippet="" href="https://unifacs.academia.edu/BSilva"><img class="profile-avatar u-positionAbsolute" alt="Bruno Silva related author profile picture" border="0" onerror="if (this.src != '//a.academia-assets.com/images/s200_no_pic.png') this.src = '//a.academia-assets.com/images/s200_no_pic.png';" width="200" height="200" src="https://0.academia-photos.com/1281486/470754/17503474/s200_bruno.silva.jpg" /></a></div><div class="suggested-user-card__user-info"><a class="suggested-user-card__user-info__header ds2-5-body-sm-bold ds2-5-body-link" href="https://unifacs.academia.edu/BSilva">Bruno Silva</a><p class="suggested-user-card__user-info__subheader ds2-5-body-xs">University Salvador - UNIFACS</p></div></div><div class="suggested-user-card"><div class="suggested-user-card__avatar social-profile-avatar-container"><a data-nosnippet="" href="https://unsa-ba.academia.edu/IsadSaric"><img class="profile-avatar u-positionAbsolute" alt="Isad Saric related author profile picture" border="0" onerror="if (this.src != '//a.academia-assets.com/images/s200_no_pic.png') this.src = '//a.academia-assets.com/images/s200_no_pic.png';" width="200" height="200" src="https://0.academia-photos.com/1805957/616944/14730335/s200_isad.saric.jpg" /></a></div><div class="suggested-user-card__user-info"><a class="suggested-user-card__user-info__header ds2-5-body-sm-bold ds2-5-body-link" href="https://unsa-ba.academia.edu/IsadSaric">Isad Saric</a><p class="suggested-user-card__user-info__subheader ds2-5-body-xs">University of Sarajevo</p></div></div><div class="suggested-user-card"><div class="suggested-user-card__avatar social-profile-avatar-container"><a data-nosnippet="" href="https://independent.academia.edu/SlimBechikh"><img class="profile-avatar u-positionAbsolute" alt="Slim Bechikh related author profile picture" border="0" onerror="if (this.src != '//a.academia-assets.com/images/s200_no_pic.png') this.src = '//a.academia-assets.com/images/s200_no_pic.png';" width="200" height="200" src="https://0.academia-photos.com/2931385/1504585/1831723/s200_slim.bechikh.jpg" /></a></div><div class="suggested-user-card__user-info"><a class="suggested-user-card__user-info__header ds2-5-body-sm-bold ds2-5-body-link" href="https://independent.academia.edu/SlimBechikh">Slim Bechikh</a></div></div><div class="suggested-user-card"><div class="suggested-user-card__avatar social-profile-avatar-container"><a data-nosnippet="" href="https://christuniversity.academia.edu/DrSandeepKumar"><img class="profile-avatar u-positionAbsolute" alt="Dr. Sandeep Kumar related author profile picture" border="0" onerror="if (this.src != '//a.academia-assets.com/images/s200_no_pic.png') this.src = '//a.academia-assets.com/images/s200_no_pic.png';" width="200" height="200" src="https://0.academia-photos.com/4617996/1929699/11614782/s200_dr_sandeep_kumar.poonia.jpg" /></a></div><div class="suggested-user-card__user-info"><a class="suggested-user-card__user-info__header ds2-5-body-sm-bold ds2-5-body-link" href="https://christuniversity.academia.edu/DrSandeepKumar">Dr. Sandeep Kumar</a><p class="suggested-user-card__user-info__subheader ds2-5-body-xs">Christ University, Bangalore, India</p></div></div><div class="suggested-user-card"><div class="suggested-user-card__avatar social-profile-avatar-container"><a data-nosnippet="" href="https://gachon.academia.edu/YooHwanSoo"><img class="profile-avatar u-positionAbsolute" alt="Yoo Hwan Soo related author profile picture" border="0" onerror="if (this.src != '//a.academia-assets.com/images/s200_no_pic.png') this.src = '//a.academia-assets.com/images/s200_no_pic.png';" width="200" height="200" src="https://0.academia-photos.com/16250478/19560060/19456903/s200_yoo.hwan_soo.jpg" /></a></div><div class="suggested-user-card__user-info"><a class="suggested-user-card__user-info__header ds2-5-body-sm-bold ds2-5-body-link" href="https://gachon.academia.edu/YooHwanSoo">Yoo Hwan Soo</a><p class="suggested-user-card__user-info__subheader ds2-5-body-xs">Gacheon University</p></div></div><div class="suggested-user-card"><div class="suggested-user-card__avatar social-profile-avatar-container"><a data-nosnippet="" href="https://ua-birmingham.academia.edu/LMessiaen"><img class="profile-avatar u-positionAbsolute" alt="Ludwine Messiaen related author profile picture" border="0" src="//a.academia-assets.com/images/s200_no_pic.png" /></a></div><div class="suggested-user-card__user-info"><a class="suggested-user-card__user-info__header ds2-5-body-sm-bold ds2-5-body-link" href="https://ua-birmingham.academia.edu/LMessiaen">Ludwine Messiaen</a><p class="suggested-user-card__user-info__subheader ds2-5-body-xs">University of Alabama at Birmingham</p></div></div></ul></div><style type="text/css">.suggested-academics--header h3{font-size:16px;font-weight:500;line-height:20px}</style><div class="ri-section"><div class="ri-section-header"><span>Interests</span><a class="ri-more-link js-profile-ri-list-card" data-click-track="profile-user-info-primary-research-interest" data-has-card-for-ri-list="314132">View All (7)</a></div><div class="ri-tags-container"><a data-click-track="profile-user-info-expand-research-interests" data-has-card-for-ri-list="314132" href="https://www.academia.edu/Documents/in/Computer_Science"><div id="js-react-on-rails-context" style="display:none" data-rails-context="{"inMailer":false,"i18nLocale":"en","i18nDefaultLocale":"en","href":"https://ucl.academia.edu/MarkHarman","location":"/MarkHarman","scheme":"https","host":"ucl.academia.edu","port":null,"pathname":"/MarkHarman","search":null,"httpAcceptLanguage":null,"serverSide":false}"></div> <div class="js-react-on-rails-component" style="display:none" data-component-name="Pill" data-props="{"color":"gray","children":["Computer Science"]}" data-trace="false" data-dom-id="Pill-react-component-95a8b81c-4de9-45e2-a4e0-489ee5adc7b5"></div> <div id="Pill-react-component-95a8b81c-4de9-45e2-a4e0-489ee5adc7b5"></div> </a><a data-click-track="profile-user-info-expand-research-interests" data-has-card-for-ri-list="314132" href="https://www.academia.edu/Documents/in/Program_Analysis"><div class="js-react-on-rails-component" style="display:none" data-component-name="Pill" data-props="{"color":"gray","children":["Program Analysis"]}" data-trace="false" data-dom-id="Pill-react-component-e8d04462-8496-41bc-843f-e641ed91c883"></div> <div id="Pill-react-component-e8d04462-8496-41bc-843f-e641ed91c883"></div> </a><a data-click-track="profile-user-info-expand-research-interests" data-has-card-for-ri-list="314132" href="https://www.academia.edu/Documents/in/Program_Transformation"><div class="js-react-on-rails-component" style="display:none" data-component-name="Pill" data-props="{"color":"gray","children":["Program Transformation"]}" data-trace="false" data-dom-id="Pill-react-component-d5dd7bee-d747-4562-9ab9-13a2e6e0a0b1"></div> <div id="Pill-react-component-d5dd7bee-d747-4562-9ab9-13a2e6e0a0b1"></div> </a><a data-click-track="profile-user-info-expand-research-interests" data-has-card-for-ri-list="314132" href="https://www.academia.edu/Documents/in/Program_Slicing"><div class="js-react-on-rails-component" style="display:none" data-component-name="Pill" data-props="{"color":"gray","children":["Program Slicing"]}" data-trace="false" data-dom-id="Pill-react-component-5367ed75-da1c-4913-815f-4cf6aed20ca0"></div> <div id="Pill-react-component-5367ed75-da1c-4913-815f-4cf6aed20ca0"></div> </a><a data-click-track="profile-user-info-expand-research-interests" data-has-card-for-ri-list="314132" href="https://www.academia.edu/Documents/in/Search_Based_Software_Engineering"><div class="js-react-on-rails-component" style="display:none" data-component-name="Pill" data-props="{"color":"gray","children":["Search Based Software Engineering"]}" data-trace="false" data-dom-id="Pill-react-component-4a2470e6-50fc-42c3-88e8-faa7ce71c07c"></div> <div id="Pill-react-component-4a2470e6-50fc-42c3-88e8-faa7ce71c07c"></div> </a></div></div><div class="external-links-container"><ul class="profile-links new-profile js-UserInfo-social"><li class="profile-profiles js-social-profiles-container"><i class="fa fa-spin fa-spinner"></i></li></ul></div></div></div><div class="right-panel-container"><div class="user-content-wrapper"><div class="uploads-container" id="social-redesign-work-container"><div class="upload-header"><h2 class="ds2-5-heading-sans-serif-xs">Uploads</h2></div><div class="documents-container backbone-social-profile-documents" style="width: 100%;"><div class="u-taCenter"></div><div class="profile--tab_content_container js-tab-pane tab-pane active" id="all"><div class="profile--tab_heading_container js-section-heading" data-section="Papers" id="Papers"><h3 class="profile--tab_heading_container">Papers by Mark Harman</h3></div><div class="js-work-strip profile--work_container" data-work-id="2787597"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" rel="nofollow" href="https://www.academia.edu/2787597/A_post_placement_side_effect_removal_algorithm"><img alt="Research paper thumbnail of A post-placement side-effect removal algorithm" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title">A post-placement side-effect removal algorithm</div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract Side-effects are widely believed to impede program comprehension and have a detrimental ...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract Side-effects are widely believed to impede program comprehension and have a detrimental effect upon software maintenance. This paper introduces an algorithm for side-effect removal which splits the side-effects into their pure expression meaning and their state-changing meaning. Symbolic execution is used to determine the expression meaning, while transformation is used to place the state-changing part in a suitable location in a transformed version of the program.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787597"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787597"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787597; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787597]").text(description); $(".js-view-count[data-work-id=2787597]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787597; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787597']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (false){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "-1" } } $('.js-work-strip[data-work-id=2787597]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787597,"title":"A post-placement side-effect removal algorithm","translated_title":"","metadata":{"abstract":"Abstract Side-effects are widely believed to impede program comprehension and have a detrimental effect upon software maintenance. This paper introduces an algorithm for side-effect removal which splits the side-effects into their pure expression meaning and their state-changing meaning. Symbolic execution is used to determine the expression meaning, while transformation is used to place the state-changing part in a suitable location in a transformed version of the program.","publication_date":{"day":null,"month":null,"year":2002,"errors":{}}},"translated_abstract":"Abstract Side-effects are widely believed to impede program comprehension and have a detrimental effect upon software maintenance. This paper introduces an algorithm for side-effect removal which splits the side-effects into their pure expression meaning and their state-changing meaning. Symbolic execution is used to determine the expression meaning, while transformation is used to place the state-changing part in a suitable location in a transformed version of the program.","internal_url":"https://www.academia.edu/2787597/A_post_placement_side_effect_removal_algorithm","translated_internal_url":"","created_at":"2013-03-03T14:48:40.487-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[],"slug":"A_post_placement_side_effect_removal_algorithm","translated_slug":"","page_count":null,"language":"en","content_type":"Work","summary":"Abstract Side-effects are widely believed to impede program comprehension and have a detrimental effect upon software maintenance. This paper introduces an algorithm for side-effect removal which splits the side-effects into their pure expression meaning and their state-changing meaning. Symbolic execution is used to determine the expression meaning, while transformation is used to place the state-changing part in a suitable location in a transformed version of the program.","impression_tracking_id":null,"owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[],"research_interests":[],"urls":[{"id":671175,"url":"http://bura.brunel.ac.uk/bitstream/2438/3394/3/A%20post-placement%20side-effect%20removal%20algorithm.pdf.txt"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787597-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787596"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787596/Measuring_and_improving_latency_to_avoid_test_suite_wear_out"><img alt="Research paper thumbnail of Measuring and improving latency to avoid test suite wear out" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787596/Measuring_and_improving_latency_to_avoid_test_suite_wear_out">Measuring and improving latency to avoid test suite wear out</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract This paper introduces the concept of test suite latency. The more latent a test suite, t...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract This paper introduces the concept of test suite latency. The more latent a test suite, the more it is possible to repeatedly select subsets that achieve a test goal (such as coverage) without re-applying test cases. Where a test case is re-applied it cannot reveal new information. The more a test suite is forced to re-apply already applied test cases in order to achieve the test goal, the more it has becomeworn out'. Test suite latency is the flipside of wear out; the more latent a test suite, the less prone it is to wear out.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="e22a62e6cfc211aeae83750273253a2a" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30740350,"asset_id":2787596,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30740350/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787596"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787596"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787596; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787596]").text(description); $(".js-view-count[data-work-id=2787596]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787596; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787596']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "e22a62e6cfc211aeae83750273253a2a" } } $('.js-work-strip[data-work-id=2787596]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787596,"title":"Measuring and improving latency to avoid test suite wear out","translated_title":"","metadata":{"abstract":"Abstract This paper introduces the concept of test suite latency. The more latent a test suite, the more it is possible to repeatedly select subsets that achieve a test goal (such as coverage) without re-applying test cases. Where a test case is re-applied it cannot reveal new information. The more a test suite is forced to re-apply already applied test cases in order to achieve the test goal, the more it has becomeworn out'. Test suite latency is the flipside of wear out; the more latent a test suite, the less prone it is to wear out.","ai_title_tag":"Mitigating Test Suite Latency and Wear Out","publication_date":{"day":1,"month":4,"year":2009,"errors":{}}},"translated_abstract":"Abstract This paper introduces the concept of test suite latency. The more latent a test suite, the more it is possible to repeatedly select subsets that achieve a test goal (such as coverage) without re-applying test cases. Where a test case is re-applied it cannot reveal new information. The more a test suite is forced to re-apply already applied test cases in order to achieve the test goal, the more it has becomeworn out'. Test suite latency is the flipside of wear out; the more latent a test suite, the less prone it is to wear out.","internal_url":"https://www.academia.edu/2787596/Measuring_and_improving_latency_to_avoid_test_suite_wear_out","translated_internal_url":"","created_at":"2013-03-03T14:48:40.411-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30740350,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"Yoo2009it.pdf","download_url":"https://www.academia.edu/attachments/30740350/download_file","bulk_download_file_name":"Measuring_and_improving_latency_to_avoid.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740350/Yoo2009it-libre.pdf?1392108064=\u0026response-content-disposition=attachment%3B+filename%3DMeasuring_and_improving_latency_to_avoid.pdf\u0026Expires=1743457636\u0026Signature=etECx3QGGOWk2Yca1HvT15NNSDYrFia5mp3XadlesYwI9oZgbvHIoipVqNa2gREoM2s2PjpDaGyPIrvarvZYpE8dQZpjT8AYUPYa0VhJgXRCML7eHZSpQEYJZjdrA~tjnL79snvhBFBC1O08dkEy1e1S8SN302xRIQVw4rfelIcNXoXuBATa~cPK~BUWBGm4FIvjF4cILJN8-LOsMMMu7qxzhvtaxynl5QF~fxcG2uK6roLcLn61fzHxJ9wiu1jYBjJj12BwrhvYwxThrYz-WbtLphUEA9mxYfGyFR6ryrO57z7EwMQtc1tC5yFlEg7LQxIR1wlv3TO9OpAf0Ox3Vg__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"Measuring_and_improving_latency_to_avoid_test_suite_wear_out","translated_slug":"","page_count":10,"language":"en","content_type":"Work","summary":"Abstract This paper introduces the concept of test suite latency. The more latent a test suite, the more it is possible to repeatedly select subsets that achieve a test goal (such as coverage) without re-applying test cases. Where a test case is re-applied it cannot reveal new information. The more a test suite is forced to re-apply already applied test cases in order to achieve the test goal, the more it has becomeworn out'. Test suite latency is the flipside of wear out; the more latent a test suite, the less prone it is to wear out.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30740350,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"Yoo2009it.pdf","download_url":"https://www.academia.edu/attachments/30740350/download_file","bulk_download_file_name":"Measuring_and_improving_latency_to_avoid.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740350/Yoo2009it-libre.pdf?1392108064=\u0026response-content-disposition=attachment%3B+filename%3DMeasuring_and_improving_latency_to_avoid.pdf\u0026Expires=1743457636\u0026Signature=etECx3QGGOWk2Yca1HvT15NNSDYrFia5mp3XadlesYwI9oZgbvHIoipVqNa2gREoM2s2PjpDaGyPIrvarvZYpE8dQZpjT8AYUPYa0VhJgXRCML7eHZSpQEYJZjdrA~tjnL79snvhBFBC1O08dkEy1e1S8SN302xRIQVw4rfelIcNXoXuBATa~cPK~BUWBGm4FIvjF4cILJN8-LOsMMMu7qxzhvtaxynl5QF~fxcG2uK6roLcLn61fzHxJ9wiu1jYBjJj12BwrhvYwxThrYz-WbtLphUEA9mxYfGyFR6ryrO57z7EwMQtc1tC5yFlEg7LQxIR1wlv3TO9OpAf0Ox3Vg__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671174,"url":"http://www0.cs.ucl.ac.uk/staff/s.yoo/papers/Yoo2009it.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787596-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787595"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" rel="nofollow" href="https://www.academia.edu/2787595/Efficient_multi_objective_higher_order_mutation_testing_with_genetic_programming"><img alt="Research paper thumbnail of Efficient multi-objective higher order mutation testing with genetic programming" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title">Efficient multi-objective higher order mutation testing with genetic programming</div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">It is said 90% of faults that survive manufacturer's testing procedures are complex. That is, the...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">It is said 90% of faults that survive manufacturer's testing procedures are complex. That is, the corresponding bug fix contains multiple changes. Higher order mutation testing is used to study defect interactions and their impact on software testing for fault finding. We adopt a multi-objective Pareto optimal approach using Monte Carlo sampling, genetic algorithms and genetic programming to search for higher order mutants which are both hard-to-kill and realistic.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787595"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787595"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787595; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787595]").text(description); $(".js-view-count[data-work-id=2787595]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787595; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787595']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (false){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "-1" } } $('.js-work-strip[data-work-id=2787595]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787595,"title":"Efficient multi-objective higher order mutation testing with genetic programming","translated_title":"","metadata":{"abstract":"It is said 90% of faults that survive manufacturer's testing procedures are complex. That is, the corresponding bug fix contains multiple changes. Higher order mutation testing is used to study defect interactions and their impact on software testing for fault finding. We adopt a multi-objective Pareto optimal approach using Monte Carlo sampling, genetic algorithms and genetic programming to search for higher order mutants which are both hard-to-kill and realistic.","journal_name":"Journal of systems and Software","publication_date":{"day":31,"month":12,"year":2010,"errors":{}}},"translated_abstract":"It is said 90% of faults that survive manufacturer's testing procedures are complex. That is, the corresponding bug fix contains multiple changes. Higher order mutation testing is used to study defect interactions and their impact on software testing for fault finding. We adopt a multi-objective Pareto optimal approach using Monte Carlo sampling, genetic algorithms and genetic programming to search for higher order mutants which are both hard-to-kill and realistic.","internal_url":"https://www.academia.edu/2787595/Efficient_multi_objective_higher_order_mutation_testing_with_genetic_programming","translated_internal_url":"","created_at":"2013-03-03T14:48:40.337-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[],"slug":"Efficient_multi_objective_higher_order_mutation_testing_with_genetic_programming","translated_slug":"","page_count":null,"language":"en","content_type":"Work","summary":"It is said 90% of faults that survive manufacturer's testing procedures are complex. That is, the corresponding bug fix contains multiple changes. Higher order mutation testing is used to study defect interactions and their impact on software testing for fault finding. We adopt a multi-objective Pareto optimal approach using Monte Carlo sampling, genetic algorithms and genetic programming to search for higher order mutants which are both hard-to-kill and realistic.","impression_tracking_id":null,"owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[],"research_interests":[],"urls":[{"id":671173,"url":"http://www0.cs.ucl.ac.uk/staff/ucacbbl/ftp/papers/langdon_jss.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787595-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787594"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787594/Testing_and_verification_in_service_oriented_architecture_a_survey"><img alt="Research paper thumbnail of Testing and verification in service‐oriented architecture: a survey" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787594/Testing_and_verification_in_service_oriented_architecture_a_survey">Testing and verification in service‐oriented architecture: a survey</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">SUMMARY Service-oriented architecture (SOA) is gaining momentum as an emerging distributed system...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">SUMMARY Service-oriented architecture (SOA) is gaining momentum as an emerging distributed system architecture for business-to-business collaborations. This momentum can be observed in both industry and academic research. SOA presents new challenges and opportunities for testing and verification, leading to an upsurge in research.</span></div><div class="wp-workCard_item"><div class="carousel-container carousel-container--sm" id="profile-work-2787594-figures"><div class="prev-slide-container js-prev-button-container"><button aria-label="Previous" class="carousel-navigation-button js-profile-work-2787594-figures-prev"><span class="material-symbols-outlined" style="font-size: 24px" translate="no">arrow_back_ios</span></button></div><div class="slides-container js-slides-container"><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/24387005/figure-1-testing-and-verification-in-serviceoriented"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740343/figure_001.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/24387008/figure-3-publication-trends-of-testing-methodologies-applied"><img alt="Figure 3. Publication trends of testing methodologies applied to ScST Analysis of the academic work in Figure 2 and Figure 3 do not yield results similar to Bloomberg’s analysis. For example, in the 2002-2003 period 5 publications on formal verification, 1 on test data generation, 1 on integration, 1 on QoS and 1 on collaborative testing were published. In academic research, the first work using unit testing appeared in " class="figure-slide-image" src="https://figures.academia-assets.com/30740343/figure_002.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/24387011/figure-4-this-highlights-one-of-the-great-problems-in-scst"><img alt="This figure highlights one of the great problems in ScST research; lack of real-world case studies. Unfortunately, 71% of the research publications provide no experimental results. The synthetic service portion of the graph mainly includes approaches for testing BPEL compositions. The most common examples are the loan approval and the travel agency (travel booking) systems that are provided with BPEL engines. There are also experiments on existing Java code that are turned into services such as javaDNS, JNFS and Haboob. The real services used in experiments are generally existing small public services that can be found on the internet. There are four experiments performed on existing projects such as government projects, Mars communication service and an HR system. Figure 4. Distribution of case study types used in experimental validation. Number with the circle indicate absolute number of papers. " class="figure-slide-image" src="https://figures.academia-assets.com/30740343/figure_003.jpg" /></a></figure></div><div class="next-slide-container js-next-button-container"><button aria-label="Next" class="carousel-navigation-button js-profile-work-2787594-figures-next"><span class="material-symbols-outlined" style="font-size: 24px" translate="no">arrow_forward_ios</span></button></div></div></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="28b73cfb4d20518683ea7eba1177eca7" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30740343,"asset_id":2787594,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30740343/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787594"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787594"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787594; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787594]").text(description); $(".js-view-count[data-work-id=2787594]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787594; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787594']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "28b73cfb4d20518683ea7eba1177eca7" } } $('.js-work-strip[data-work-id=2787594]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787594,"title":"Testing and verification in service‐oriented architecture: a survey","translated_title":"","metadata":{"abstract":"SUMMARY Service-oriented architecture (SOA) is gaining momentum as an emerging distributed system architecture for business-to-business collaborations. This momentum can be observed in both industry and academic research. SOA presents new challenges and opportunities for testing and verification, leading to an upsurge in research.","ai_title_tag":"Survey of Testing in Service-Oriented Architecture","journal_name":"Software Testing, Verification and Reliability","publication_date":{"day":null,"month":null,"year":2009,"errors":{}}},"translated_abstract":"SUMMARY Service-oriented architecture (SOA) is gaining momentum as an emerging distributed system architecture for business-to-business collaborations. This momentum can be observed in both industry and academic research. SOA presents new challenges and opportunities for testing and verification, leading to an upsurge in research.","internal_url":"https://www.academia.edu/2787594/Testing_and_verification_in_service_oriented_architecture_a_survey","translated_internal_url":"","created_at":"2013-03-03T14:48:40.264-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30740343,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"Bozkurt_Harman_Hassoun_Testing_Verification_In_SOA_A_Survey.pdf","download_url":"https://www.academia.edu/attachments/30740343/download_file","bulk_download_file_name":"Testing_and_verification_in_service_orie.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740343/Bozkurt_Harman_Hassoun_Testing_Verification_In_SOA_A_Survey-libre.pdf?1392098123=\u0026response-content-disposition=attachment%3B+filename%3DTesting_and_verification_in_service_orie.pdf\u0026Expires=1744178956\u0026Signature=CAf3Xjub4EkB7Ti1029aUszdko7TJfEbjUeEA80~erJdjxGg2ZP3Wi9J7bwMVM-bHRtIZ1~E87PAo6AqtT9iIlzezylGN~CycJiZbOWlrdNCnWTwC8E5iBQ3CPVkcGeQ4GE2~ST3OMObkyD5u3lTzEUr2kQXY~-exgkgQv6KMaHra33knwHupFxJwk7wJYTpQs3~SSZBl3RfeW~Loue1oYTikX8wUpZByJjnskgh7odBvjhpux5mIwL1DawtS7r6CRmI9UQnUFLZr-iAT6DEIKCLPHlZyILj3iB6ZHtu9jalZYo~UkVDQmcxmTs0pmCqb7ocHVUULHiRjGDFcaL9XA__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"Testing_and_verification_in_service_oriented_architecture_a_survey","translated_slug":"","page_count":67,"language":"en","content_type":"Work","summary":"SUMMARY Service-oriented architecture (SOA) is gaining momentum as an emerging distributed system architecture for business-to-business collaborations. This momentum can be observed in both industry and academic research. SOA presents new challenges and opportunities for testing and verification, leading to an upsurge in research.","impression_tracking_id":null,"owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30740343,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"Bozkurt_Harman_Hassoun_Testing_Verification_In_SOA_A_Survey.pdf","download_url":"https://www.academia.edu/attachments/30740343/download_file","bulk_download_file_name":"Testing_and_verification_in_service_orie.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740343/Bozkurt_Harman_Hassoun_Testing_Verification_In_SOA_A_Survey-libre.pdf?1392098123=\u0026response-content-disposition=attachment%3B+filename%3DTesting_and_verification_in_service_orie.pdf\u0026Expires=1744178956\u0026Signature=CAf3Xjub4EkB7Ti1029aUszdko7TJfEbjUeEA80~erJdjxGg2ZP3Wi9J7bwMVM-bHRtIZ1~E87PAo6AqtT9iIlzezylGN~CycJiZbOWlrdNCnWTwC8E5iBQ3CPVkcGeQ4GE2~ST3OMObkyD5u3lTzEUr2kQXY~-exgkgQv6KMaHra33knwHupFxJwk7wJYTpQs3~SSZBl3RfeW~Loue1oYTikX8wUpZByJjnskgh7odBvjhpux5mIwL1DawtS7r6CRmI9UQnUFLZr-iAT6DEIKCLPHlZyILj3iB6ZHtu9jalZYo~UkVDQmcxmTs0pmCqb7ocHVUULHiRjGDFcaL9XA__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671172,"url":"http://www0.cs.ucl.ac.uk/staff/M.Bozkurt/files/pdf/Bozkurt_Harman_Hassoun_Testing_Verification_In_SOA_A_Survey.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (true) { Aedu.setUpFigureCarousel('profile-work-2787594-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787593"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787593/_Fairness_Analysis_in_Requirements_Assignments"><img alt="Research paper thumbnail of “Fairness Analysis” in Requirements Assignments" class="work-thumbnail" src="https://attachments.academia-assets.com/30889749/thumbnails/1.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787593/_Fairness_Analysis_in_Requirements_Assignments">“Fairness Analysis” in Requirements Assignments</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract Requirements engineering for multiple customers, each of whom have competing and often c...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract Requirements engineering for multiple customers, each of whom have competing and often conflicting priorities, raises issues of negotiation, mediation and conflict resolution. This paper uses a multi-objective optimisation approach to support investigation of the trade-offs in various notions of fairness between multiple customers. Results are presented to validate the approach using two real-world data sets and also using data sets created specifically to stress test the approach.</span></div><div class="wp-workCard_item"><div class="carousel-container carousel-container--sm" id="profile-work-2787593-figures"><div class="prev-slide-container js-prev-button-container"><button aria-label="Previous" class="carousel-navigation-button js-profile-work-2787593-figures-prev"><span class="material-symbols-outlined" style="font-size: 24px" translate="no">arrow_back_ios</span></button></div><div class="slides-container js-slides-container"><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/40741999/figure-1-it-is-assumed-that-not-all-requirements-are-equally"><img alt="It is assumed that not all requirements are equally important for a given customer. The level of satisfaction for a given customer depends on the requirements that are satisfied in the next release of the software, which provide value to the customers’ organizations. Each customer cj(1 < 7 < m) assigns a value to require- ment r;(1 < i < n) denoted by: valwe(r;,c;) where value(r;,c;) > 0 if customer j desires implementation of the requirement 2 and 0 otherwise. Each customer c; has therefore, a subset of requirements that they expect to be satisfied denoted by R; " class="figure-slide-image" src="https://figures.academia-assets.com/30889749/figure_001.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/40742009/figure-2-experimental-set-up"><img alt="4 Experimental Set Up " class="figure-slide-image" src="https://figures.academia-assets.com/30889749/figure_002.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/40742018/figure-1-results-of-fairness-on-absolute-number-of-fulfilled"><img alt="Figure 1: Results of Fairness on Absolute Number of Fulfilled Requirements " class="figure-slide-image" src="https://figures.academia-assets.com/30889749/figure_003.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/40742027/figure-4-fairness-analysis-in-requirements-assignments"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30889749/figure_004.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/40742039/figure-5-fairness-analysis-in-requirements-assignments"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30889749/figure_005.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/40742049/figure-6-fairness-analysis-in-requirements-assignments"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30889749/figure_006.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/40742058/table-1-fairness-analysis-in-requirements-assignments"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30889749/table_001.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/40742069/table-2-fairness-analysis-in-requirements-assignments"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30889749/table_002.jpg" /></a></figure></div><div class="next-slide-container js-next-button-container"><button aria-label="Next" class="carousel-navigation-button js-profile-work-2787593-figures-next"><span class="material-symbols-outlined" style="font-size: 24px" translate="no">arrow_forward_ios</span></button></div></div></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="f0c8cb56d6057503e70b282d0522602b" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30889749,"asset_id":2787593,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30889749/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787593"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787593"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787593; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787593]").text(description); $(".js-view-count[data-work-id=2787593]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787593; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787593']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "f0c8cb56d6057503e70b282d0522602b" } } $('.js-work-strip[data-work-id=2787593]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787593,"title":"“Fairness Analysis” in Requirements Assignments","translated_title":"","metadata":{"abstract":"Abstract Requirements engineering for multiple customers, each of whom have competing and often conflicting priorities, raises issues of negotiation, mediation and conflict resolution. This paper uses a multi-objective optimisation approach to support investigation of the trade-offs in various notions of fairness between multiple customers. Results are presented to validate the approach using two real-world data sets and also using data sets created specifically to stress test the approach.","ai_title_tag":"Multi-Objective Fairness in Requirements","publication_date":{"day":8,"month":9,"year":2008,"errors":{}}},"translated_abstract":"Abstract Requirements engineering for multiple customers, each of whom have competing and often conflicting priorities, raises issues of negotiation, mediation and conflict resolution. This paper uses a multi-objective optimisation approach to support investigation of the trade-offs in various notions of fairness between multiple customers. Results are presented to validate the approach using two real-world data sets and also using data sets created specifically to stress test the approach.","internal_url":"https://www.academia.edu/2787593/_Fairness_Analysis_in_Requirements_Assignments","translated_internal_url":"","created_at":"2013-03-03T14:48:40.198-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30889749,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://attachments.academia-assets.com/30889749/thumbnails/1.jpg","file_name":"fair.pdf","download_url":"https://www.academia.edu/attachments/30889749/download_file","bulk_download_file_name":"Fairness_Analysis_in_Requirements_Assig.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30889749/fair-libre.pdf?1392169744=\u0026response-content-disposition=attachment%3B+filename%3DFairness_Analysis_in_Requirements_Assig.pdf\u0026Expires=1743457636\u0026Signature=YzmaqaAzKpPCs2kkFT7uIN0380XAchLz8jLvckfl5IKz34T3jQJqoPJ-~9jAyAZBbcJU3Sj9Nmc4BoJJwdKcMXTklAcTHfEJWw8Ebqznf2y58Ks77IwMZDaUn5GoAVOzziQzM45HkM~i4S5bGI0KiroaJmMeiOxGl5GgA5lXlEGDK8zIMRssTQw7BNNc3CkmFTEHUSKOF-6HTWl2GRgDnoPoIBsi330NZoo2HCoBnGKx89N8lhtXXqpsZO7vsLpf2N2BL0Ju9fIaMmBvm44QZNrH1rvvhhMSxBnMRJiOmvAJGGtXXi~g~B9ileLDx7tFFNFbgBIMNDiI5SgqSha4aQ__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"_Fairness_Analysis_in_Requirements_Assignments","translated_slug":"","page_count":10,"language":"en","content_type":"Work","summary":"Abstract Requirements engineering for multiple customers, each of whom have competing and often conflicting priorities, raises issues of negotiation, mediation and conflict resolution. This paper uses a multi-objective optimisation approach to support investigation of the trade-offs in various notions of fairness between multiple customers. Results are presented to validate the approach using two real-world data sets and also using data sets created specifically to stress test the approach.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30889749,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://attachments.academia-assets.com/30889749/thumbnails/1.jpg","file_name":"fair.pdf","download_url":"https://www.academia.edu/attachments/30889749/download_file","bulk_download_file_name":"Fairness_Analysis_in_Requirements_Assig.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30889749/fair-libre.pdf?1392169744=\u0026response-content-disposition=attachment%3B+filename%3DFairness_Analysis_in_Requirements_Assig.pdf\u0026Expires=1743457636\u0026Signature=YzmaqaAzKpPCs2kkFT7uIN0380XAchLz8jLvckfl5IKz34T3jQJqoPJ-~9jAyAZBbcJU3Sj9Nmc4BoJJwdKcMXTklAcTHfEJWw8Ebqznf2y58Ks77IwMZDaUn5GoAVOzziQzM45HkM~i4S5bGI0KiroaJmMeiOxGl5GgA5lXlEGDK8zIMRssTQw7BNNc3CkmFTEHUSKOF-6HTWl2GRgDnoPoIBsi330NZoo2HCoBnGKx89N8lhtXXqpsZO7vsLpf2N2BL0Ju9fIaMmBvm44QZNrH1rvvhhMSxBnMRJiOmvAJGGtXXi~g~B9ileLDx7tFFNFbgBIMNDiI5SgqSha4aQ__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671171,"url":"http://www0.cs.ucl.ac.uk/staff/A.Finkelstein/papers/fair.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (true) { Aedu.setUpFigureCarousel('profile-work-2787593-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787592"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787592/Generic_Software_Subgraph_Isomorphism"><img alt="Research paper thumbnail of Generic Software Subgraph Isomorphism" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787592/Generic_Software_Subgraph_Isomorphism">Generic Software Subgraph Isomorphism</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract. The omnipresence of software graphs as useful intermediate representations means that t...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract. The omnipresence of software graphs as useful intermediate representations means that the identification of near-match subgraphs (Error-Correcting Subgraph Isomorphism) has diverse and widespread applications in software engineering, such as querying, clone detection and model checking. Each software engineering subarea has developed specific tailored approaches to subgraph isomorphism, thereby reducing comparability and generality, and potentially yielding sub-optimal results.</span></div><div class="wp-workCard_item"><div class="carousel-container carousel-container--sm" id="profile-work-2787592-figures"><div class="prev-slide-container js-prev-button-container"><button aria-label="Previous" class="carousel-navigation-button js-profile-work-2787592-figures-prev"><span class="material-symbols-outlined" style="font-size: 24px" translate="no">arrow_back_ios</span></button></div><div class="slides-container js-slides-container"><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539068/figure-1-generic-software-subgraph-isomorphism"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_001.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539069/figure-2-generic-software-subgraph-isomorphism"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_002.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539070/figure-3-generic-software-subgraph-isomorphism"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_003.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539071/figure-1-overview-of-the-experiment"><img alt="Fig. 1. Overview of the experiment " class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_004.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539072/figure-3-aggregated-weights-of-groups-the-weight-of-groups"><img alt="Fig. 3. Aggregated weights of groups The weight of groups was aggregated from all four projects and weighted with the size of the learning set. Two aspects were created to examine the validity of the weights calculated by the Ga. " class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_005.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539073/figure-2-fitness-values-of-prediction-per-project-fitness"><img alt="Fig. 2. Fitness values of prediction per project Table 2. Fitness values of prediction per project base model 59,8000% 47,0000% 44,2000% 45,3000% enhanced model 75,2630% 66,6425% 67,4835% 60,2791% " class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_006.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539074/figure-1-sequence-generation-by-iteratively-selecting-from"><img alt="Fig. 1. Sequence generation by iteratively selecting from the set of currently available actions. The ultimate goal is to crash the SUT. (Not all possible actions are displayed in order to preserve clarity) " class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_007.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539075/figure-1-example-service-composition-simulation-and-the"><img alt="Fig. 1. Example service composition simulation and the results from the test suite execution The table depicts test cases in the suite with their reliability, branch coverage and execution cost calculated. For the given test suite (T1,...,T6) it is expected that test cases T1 and T2 will be eliminated to get the optimal test suite (T3,T4,T5,T6) which achieves 100% coverage with lowest cost and highest reliability. " class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_008.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539076/figure-1-iterative-hierarchy-generation-in-bunch-each-part"><img alt="Fig. 1. Iterative hierarchy generation in Bunch; each part is a search, from the bottom level in part (a) to the top level in part (f) Module dependency graphs (MDGs) represent the files or classes in a system as nodes in a graph, edges represent references between files. Bunch [7] modularises the files in an MDG using a hill climber to locate the most appropriate assign- ment of modules. The assignment is evaluated by the “Modularisation Quality” fitness function, which is based on the ratio of edges within a cluster to edges leaving or entering it for each cluster [5]. " class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_009.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539077/figure-2-violin-plot-and-density-plot-of-normalised-mq"><img alt="Fig. 2. Violin plot and density plot of normalised MQ values, N = 900 " class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_010.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539078/figure-4-mutants-with-higher-mean-mq-values-parallel"><img alt="Fig.4. Mutants with higher Mean MQ values Fig. 5. Parallel coordinate plot for 150 mutants " class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_011.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539079/figure-12-generic-software-subgraph-isomorphism"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_012.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539080/figure-1-user-interaction-workflow-of-our-tool-for-search"><img alt="Fig. 1. User interaction workflow of our tool for search-based testing of SL models " class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_013.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539081/table-1-generic-software-subgraph-isomorphism"><img alt="Table 1. GA parameters " class="figure-slide-image" src="https://figures.academia-assets.com/30740329/table_001.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539082/table-2-comparison-of-the-number-of-generations-iterations"><img alt="Table 2. Comparison of the Number of Generations / Iterations required. " class="figure-slide-image" src="https://figures.academia-assets.com/30740329/table_002.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539083/table-1-comparison-of-mean-best-coupling-fcgo"><img alt="Table 1. Comparison of Mean Best Coupling ( fcgo). " class="figure-slide-image" src="https://figures.academia-assets.com/30740329/table_003.jpg" /></a></figure></div><div class="next-slide-container js-next-button-container"><button aria-label="Next" class="carousel-navigation-button js-profile-work-2787592-figures-next"><span class="material-symbols-outlined" style="font-size: 24px" translate="no">arrow_forward_ios</span></button></div></div></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="c7f8f64df4e06608990e22c0c5aa9111" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30740329,"asset_id":2787592,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30740329/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787592"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787592"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787592; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787592]").text(description); $(".js-view-count[data-work-id=2787592]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787592; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787592']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "c7f8f64df4e06608990e22c0c5aa9111" } } $('.js-work-strip[data-work-id=2787592]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787592,"title":"Generic Software Subgraph Isomorphism","translated_title":"","metadata":{"abstract":"Abstract. The omnipresence of software graphs as useful intermediate representations means that the identification of near-match subgraphs (Error-Correcting Subgraph Isomorphism) has diverse and widespread applications in software engineering, such as querying, clone detection and model checking. Each software engineering subarea has developed specific tailored approaches to subgraph isomorphism, thereby reducing comparability and generality, and potentially yielding sub-optimal results.","journal_name":"4 th Symposium on Search Based-Software Engineering","publication_date":{"day":28,"month":9,"year":2012,"errors":{}}},"translated_abstract":"Abstract. The omnipresence of software graphs as useful intermediate representations means that the identification of near-match subgraphs (Error-Correcting Subgraph Isomorphism) has diverse and widespread applications in software engineering, such as querying, clone detection and model checking. Each software engineering subarea has developed specific tailored approaches to subgraph isomorphism, thereby reducing comparability and generality, and potentially yielding sub-optimal results.","internal_url":"https://www.academia.edu/2787592/Generic_Software_Subgraph_Isomorphism","translated_internal_url":"","created_at":"2013-03-03T14:48:40.125-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30740329,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"SSBSE_2012_Fast_Abstracts.pdf","download_url":"https://www.academia.edu/attachments/30740329/download_file","bulk_download_file_name":"Generic_Software_Subgraph_Isomorphism.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740329/SSBSE_2012_Fast_Abstracts-libre.pdf?1363448501=\u0026response-content-disposition=attachment%3B+filename%3DGeneric_Software_Subgraph_Isomorphism.pdf\u0026Expires=1743457636\u0026Signature=J2yWHuMu9-ButigCorforZhGxyXKCwERyF-xsiRKPwXniDBySk1OJksf3vHaYpM6QOzEI-~0989rRwWlbtWz5farT6CveXmlVvpBnGblyTmV2Eh9-RQcI6Si4~QCzHuEMueZrFWMFklk2d3LnBaH5h94MwGYt4Ovd89XVuMo1FtaZA~U8Lp7ll9AN2X2xprZyduVcCqcOTPbV09s2pHrv1TjJrxIRmFwUTfuaJ393d9RAkWHRJsubbRak4coM7o-~3IVnpYEr-K3I02V7CglsPozVWgDszndIu82qsbI1YxiZhkbNekZjmrv0ozSugWSvJAgZxcSJVy4WhH9mm6-zQ__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"Generic_Software_Subgraph_Isomorphism","translated_slug":"","page_count":65,"language":"en","content_type":"Work","summary":"Abstract. The omnipresence of software graphs as useful intermediate representations means that the identification of near-match subgraphs (Error-Correcting Subgraph Isomorphism) has diverse and widespread applications in software engineering, such as querying, clone detection and model checking. Each software engineering subarea has developed specific tailored approaches to subgraph isomorphism, thereby reducing comparability and generality, and potentially yielding sub-optimal results.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30740329,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"SSBSE_2012_Fast_Abstracts.pdf","download_url":"https://www.academia.edu/attachments/30740329/download_file","bulk_download_file_name":"Generic_Software_Subgraph_Isomorphism.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740329/SSBSE_2012_Fast_Abstracts-libre.pdf?1363448501=\u0026response-content-disposition=attachment%3B+filename%3DGeneric_Software_Subgraph_Isomorphism.pdf\u0026Expires=1743457636\u0026Signature=J2yWHuMu9-ButigCorforZhGxyXKCwERyF-xsiRKPwXniDBySk1OJksf3vHaYpM6QOzEI-~0989rRwWlbtWz5farT6CveXmlVvpBnGblyTmV2Eh9-RQcI6Si4~QCzHuEMueZrFWMFklk2d3LnBaH5h94MwGYt4Ovd89XVuMo1FtaZA~U8Lp7ll9AN2X2xprZyduVcCqcOTPbV09s2pHrv1TjJrxIRmFwUTfuaJ393d9RAkWHRJsubbRak4coM7o-~3IVnpYEr-K3I02V7CglsPozVWgDszndIu82qsbI1YxiZhkbNekZjmrv0ozSugWSvJAgZxcSJVy4WhH9mm6-zQ__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671170,"url":"http://selab.fbk.eu/ssbse2012/documents/SSBSE_2012_Fast_Abstracts.pdf#page=53"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (true) { Aedu.setUpFigureCarousel('profile-work-2787592-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787590"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787590/Domain_Reduction_for_Search_Based_Test_Data_Generation"><img alt="Research paper thumbnail of Domain Reduction for Search-Based Test Data Generation" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787590/Domain_Reduction_for_Search_Based_Test_Data_Generation">Domain Reduction for Search-Based Test Data Generation</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">ABSTRACT There has recently been a great deal of interest in search–based test data generation, w...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">ABSTRACT There has recently been a great deal of interest in search–based test data generation, with many local and global search algorithms being proposed. However, to date, there has been no investigation of the relationship between the size of the input domain (the search space) and performance of the search–based algorithms. Static analysis can be used to remove irrelevant variables for a given test data generation problem, thereby reducing the search space size.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="24ad2564fc409618a1095dbc77a90ac6" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30889752,"asset_id":2787590,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30889752/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787590"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787590"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787590; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787590]").text(description); $(".js-view-count[data-work-id=2787590]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787590; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787590']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "24ad2564fc409618a1095dbc77a90ac6" } } $('.js-work-strip[data-work-id=2787590]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787590,"title":"Domain Reduction for Search-Based Test Data Generation","translated_title":"","metadata":{"abstract":"ABSTRACT There has recently been a great deal of interest in search–based test data generation, with many local and global search algorithms being proposed. However, to date, there has been no investigation of the relationship between the size of the input domain (the search space) and performance of the search–based algorithms. Static analysis can be used to remove irrelevant variables for a given test data generation problem, thereby reducing the search space size.","publication_date":{"day":null,"month":null,"year":2007,"errors":{}}},"translated_abstract":"ABSTRACT There has recently been a great deal of interest in search–based test data generation, with many local and global search algorithms being proposed. However, to date, there has been no investigation of the relationship between the size of the input domain (the search space) and performance of the search–based algorithms. Static analysis can be used to remove irrelevant variables for a given test data generation problem, thereby reducing the search space size.","internal_url":"https://www.academia.edu/2787590/Domain_Reduction_for_Search_Based_Test_Data_Generation","translated_internal_url":"","created_at":"2013-03-03T14:48:40.040-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30889752,"title":"","file_type":"eps","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"fse07.ai","download_url":"https://www.academia.edu/attachments/30889752/download_file","bulk_download_file_name":"Domain_Reduction_for_Search_Based_Test_D.eps","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30889752/fse07.ai?1738047239=\u0026response-content-disposition=attachment%3B+filename%3DDomain_Reduction_for_Search_Based_Test_D.eps\u0026Expires=1743457636\u0026Signature=SQZqO-rFOW1PBq4wyzZoU5ZiYleqdReUlNON-8noN3kKHum9IsAqnRb-Jswqz4XyfdsqOi4SqVeVIc6LhPIGCsYTLZI3wmnYnpulTQswqRAWGAAf3JiGhgpOkdIQ8QtI4K0zdQXL75rV0ga3ZhGflAlEKN5rL4SSU9vu9trgDt0RK8yTBJWO3N5X9Y5Sw1SvKmgOksx5pU9-3S2MEwEa10FohNc1vmt2~52pZvHOf7LzUmkfNKuoOazP8KGRcLIv-5roOW5ZH7bOfYmgN08Eh4Ae2J1mIRqnqOMrQZ08WUrMLOV1xRzEXlolw86VFilc1AKUqK2~CqDi0~0Flnsqmg__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"Domain_Reduction_for_Search_Based_Test_Data_Generation","translated_slug":"","page_count":null,"language":"en","content_type":"Work","summary":"ABSTRACT There has recently been a great deal of interest in search–based test data generation, with many local and global search algorithms being proposed. However, to date, there has been no investigation of the relationship between the size of the input domain (the search space) and performance of the search–based algorithms. Static analysis can be used to remove irrelevant variables for a given test data generation problem, thereby reducing the search space size.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30889752,"title":"","file_type":"eps","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"fse07.ai","download_url":"https://www.academia.edu/attachments/30889752/download_file","bulk_download_file_name":"Domain_Reduction_for_Search_Based_Test_D.eps","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30889752/fse07.ai?1738047239=\u0026response-content-disposition=attachment%3B+filename%3DDomain_Reduction_for_Search_Based_Test_D.eps\u0026Expires=1743457636\u0026Signature=SQZqO-rFOW1PBq4wyzZoU5ZiYleqdReUlNON-8noN3kKHum9IsAqnRb-Jswqz4XyfdsqOi4SqVeVIc6LhPIGCsYTLZI3wmnYnpulTQswqRAWGAAf3JiGhgpOkdIQ8QtI4K0zdQXL75rV0ga3ZhGflAlEKN5rL4SSU9vu9trgDt0RK8yTBJWO3N5X9Y5Sw1SvKmgOksx5pU9-3S2MEwEa10FohNc1vmt2~52pZvHOf7LzUmkfNKuoOazP8KGRcLIv-5roOW5ZH7bOfYmgN08Eh4Ae2J1mIRqnqOMrQZ08WUrMLOV1xRzEXlolw86VFilc1AKUqK2~CqDi0~0Flnsqmg__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671168,"url":"http://www0.cs.ucl.ac.uk/staff/M.Harman/fse07.ps"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787590-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787589"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787589/Characterising_explaining_and_exploiting_the_approximate_nature_of_static_analysis_through_animation"><img alt="Research paper thumbnail of Characterising, explaining, and exploiting the approximate nature of static analysis through animation" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787589/Characterising_explaining_and_exploiting_the_approximate_nature_of_static_analysis_through_animation">Characterising, explaining, and exploiting the approximate nature of static analysis through animation</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract This paper addresses the question:" How can animated visualisation be used to express in...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract This paper addresses the question:" How can animated visualisation be used to express interesting properties of static analysis?" The particular focus is upon static dependence analysis, but the approach adopted in the paper is applicable to other forms of static analysis. The challenge is twofold. First, there is the inherent difficultly of using animation, which is inherently dynamic, as a representation of static analysis, which is not. The paper shows one way in which this apparent contradiction can be overcome.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="42ce9bceaa4e340cf5e8d73da2ac1f0d" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30740331,"asset_id":2787589,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30740331/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787589"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787589"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787589; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787589]").text(description); $(".js-view-count[data-work-id=2787589]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787589; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787589']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "42ce9bceaa4e340cf5e8d73da2ac1f0d" } } $('.js-work-strip[data-work-id=2787589]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787589,"title":"Characterising, explaining, and exploiting the approximate nature of static analysis through animation","translated_title":"","metadata":{"abstract":"Abstract This paper addresses the question:\" How can animated visualisation be used to express interesting properties of static analysis?\" The particular focus is upon static dependence analysis, but the approach adopted in the paper is applicable to other forms of static analysis. The challenge is twofold. First, there is the inherent difficultly of using animation, which is inherently dynamic, as a representation of static analysis, which is not. The paper shows one way in which this apparent contradiction can be overcome.","publication_date":{"day":null,"month":9,"year":2006,"errors":{}}},"translated_abstract":"Abstract This paper addresses the question:\" How can animated visualisation be used to express interesting properties of static analysis?\" The particular focus is upon static dependence analysis, but the approach adopted in the paper is applicable to other forms of static analysis. The challenge is twofold. First, there is the inherent difficultly of using animation, which is inherently dynamic, as a representation of static analysis, which is not. The paper shows one way in which this apparent contradiction can be overcome.","internal_url":"https://www.academia.edu/2787589/Characterising_explaining_and_exploiting_the_approximate_nature_of_static_analysis_through_animation","translated_internal_url":"","created_at":"2013-03-03T14:48:39.923-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30740331,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"scam06.pdf","download_url":"https://www.academia.edu/attachments/30740331/download_file","bulk_download_file_name":"Characterising_explaining_and_exploiting.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740331/scam06-libre.pdf?1392054588=\u0026response-content-disposition=attachment%3B+filename%3DCharacterising_explaining_and_exploiting.pdf\u0026Expires=1743457636\u0026Signature=LHhzSzrQ3U0P1A2sEjnSnUoVv5TYRKa6OrBH~U7ZN2LJgaKJCRZU0ddxgJIVCK68v4Xm20uMZLb7eM3~bi5Ort5AFgFZ1N8B4Htp~AsKI8mucDvbluqCj4M1WmqIENDPo7VctJABr1tUgSglx13p4~76vWmhzqd0OYYPgq-eQ7OuZnRVJ4RfgEKayTuiI9mUmLeQ-iN-fpYfj92o9qVRE6QCajTv~CkKXvyjogflIOsBKoZEyWm6iy4T~S1M2uHeleEEqqBFKUjQmgPop6GM~1XbZwXeY6JHm9-MI6qSjkySCaO7EinCpDs8SRK2N9WLSk6sDpJwiQAQoTu09n1u8Q__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"Characterising_explaining_and_exploiting_the_approximate_nature_of_static_analysis_through_animation","translated_slug":"","page_count":10,"language":"en","content_type":"Work","summary":"Abstract This paper addresses the question:\" How can animated visualisation be used to express interesting properties of static analysis?\" The particular focus is upon static dependence analysis, but the approach adopted in the paper is applicable to other forms of static analysis. The challenge is twofold. First, there is the inherent difficultly of using animation, which is inherently dynamic, as a representation of static analysis, which is not. The paper shows one way in which this apparent contradiction can be overcome.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30740331,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"scam06.pdf","download_url":"https://www.academia.edu/attachments/30740331/download_file","bulk_download_file_name":"Characterising_explaining_and_exploiting.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740331/scam06-libre.pdf?1392054588=\u0026response-content-disposition=attachment%3B+filename%3DCharacterising_explaining_and_exploiting.pdf\u0026Expires=1743457636\u0026Signature=LHhzSzrQ3U0P1A2sEjnSnUoVv5TYRKa6OrBH~U7ZN2LJgaKJCRZU0ddxgJIVCK68v4Xm20uMZLb7eM3~bi5Ort5AFgFZ1N8B4Htp~AsKI8mucDvbluqCj4M1WmqIENDPo7VctJABr1tUgSglx13p4~76vWmhzqd0OYYPgq-eQ7OuZnRVJ4RfgEKayTuiI9mUmLeQ-iN-fpYfj92o9qVRE6QCajTv~CkKXvyjogflIOsBKoZEyWm6iy4T~S1M2uHeleEEqqBFKUjQmgPop6GM~1XbZwXeY6JHm9-MI6qSjkySCaO7EinCpDs8SRK2N9WLSk6sDpJwiQAQoTu09n1u8Q__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671167,"url":"http://www0.cs.ucl.ac.uk/staff/j.krinke/publications/scam06.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787589-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787588"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787588/Equivalence_of_conservative_free_linear_program_schemas_is_decidable"><img alt="Research paper thumbnail of Equivalence of conservative, free, linear program schemas is decidable" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787588/Equivalence_of_conservative_free_linear_program_schemas_is_decidable">Equivalence of conservative, free, linear program schemas is decidable</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">A program schema defines a class of programs, all of which have identical statement structures, b...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">A program schema defines a class of programs, all of which have identical statement structures, but whose expressions may differ. We prove that given any two structured schemas which are conservative, linear and free, it is decidable whether they are equivalent.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="c98c92b6798bd3f3b8b43059e9436207" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30740305,"asset_id":2787588,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30740305/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787588"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787588"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787588; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787588]").text(description); $(".js-view-count[data-work-id=2787588]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787588; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787588']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "c98c92b6798bd3f3b8b43059e9436207" } } $('.js-work-strip[data-work-id=2787588]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787588,"title":"Equivalence of conservative, free, linear program schemas is decidable","translated_title":"","metadata":{"abstract":"A program schema defines a class of programs, all of which have identical statement structures, but whose expressions may differ. We prove that given any two structured schemas which are conservative, linear and free, it is decidable whether they are equivalent.","ai_title_tag":"Decidability of Conservative Linear Program Schemas","journal_name":"Theoretical Computer Science","publication_date":{"day":1,"month":1,"year":2003,"errors":{}}},"translated_abstract":"A program schema defines a class of programs, all of which have identical statement structures, but whose expressions may differ. We prove that given any two structured schemas which are conservative, linear and free, it is decidable whether they are equivalent.","internal_url":"https://www.academia.edu/2787588/Equivalence_of_conservative_free_linear_program_schemas_is_decidable","translated_internal_url":"","created_at":"2013-03-03T14:48:39.841-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30740305,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"Equivalence_of_Conservative.pdf","download_url":"https://www.academia.edu/attachments/30740305/download_file","bulk_download_file_name":"Equivalence_of_conservative_free_linear.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740305/Equivalence_of_Conservative-libre.pdf?1392073885=\u0026response-content-disposition=attachment%3B+filename%3DEquivalence_of_conservative_free_linear.pdf\u0026Expires=1743457636\u0026Signature=KXPSiSB~pAH2mg9gH7YfSPNPDblz4v1HUXoZUAemk-Z2vml6L3h2zrtBbE~JlGjFgCIlYklVzGRSrwryTj7UQZDPZd1rZvu8lu2ULNqbxN-HfZcCO9WVMWOTIx~0iw9K08x~Yt5Y-MsJtsDX8J~eX7NywoZr-Bq-caANowTMxw1cCosWprqvGOzER~lSC7EIwPAazzOUHaVBLceiQGa8lVlEQ9LYl9vua2TuVLYl8hU-K4UazME2ZGDeVzNL7Rzqq-~zoGlYG7fZUCMj0kOApTvmUkNgSr3Sby5B7evLnDpX1C3kNpmDCFUAkJBmRAYyQYNeEMgxQDTtzFa5SeeauQ__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"Equivalence_of_conservative_free_linear_program_schemas_is_decidable","translated_slug":"","page_count":40,"language":"en","content_type":"Work","summary":"A program schema defines a class of programs, all of which have identical statement structures, but whose expressions may differ. We prove that given any two structured schemas which are conservative, linear and free, it is decidable whether they are equivalent.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30740305,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"Equivalence_of_Conservative.pdf","download_url":"https://www.academia.edu/attachments/30740305/download_file","bulk_download_file_name":"Equivalence_of_conservative_free_linear.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740305/Equivalence_of_Conservative-libre.pdf?1392073885=\u0026response-content-disposition=attachment%3B+filename%3DEquivalence_of_conservative_free_linear.pdf\u0026Expires=1743457636\u0026Signature=KXPSiSB~pAH2mg9gH7YfSPNPDblz4v1HUXoZUAemk-Z2vml6L3h2zrtBbE~JlGjFgCIlYklVzGRSrwryTj7UQZDPZd1rZvu8lu2ULNqbxN-HfZcCO9WVMWOTIx~0iw9K08x~Yt5Y-MsJtsDX8J~eX7NywoZr-Bq-caANowTMxw1cCosWprqvGOzER~lSC7EIwPAazzOUHaVBLceiQGa8lVlEQ9LYl9vua2TuVLYl8hU-K4UazME2ZGDeVzNL7Rzqq-~zoGlYG7fZUCMj0kOApTvmUkNgSr3Sby5B7evLnDpX1C3kNpmDCFUAkJBmRAYyQYNeEMgxQDTtzFa5SeeauQ__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671166,"url":"http://dspace.brunel.ac.uk/bitstream/2438/364/1/Equivalence%20of%20Conservative.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787588-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787587"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787587/The_GISMOE_challenge_constructing_the_pareto_program_surface_using_genetic_programming_to_find_better_programs_keynote_paper_"><img alt="Research paper thumbnail of The GISMOE challenge: constructing the pareto program surface using genetic programming to find better programs (keynote paper)" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787587/The_GISMOE_challenge_constructing_the_pareto_program_surface_using_genetic_programming_to_find_better_programs_keynote_paper_">The GISMOE challenge: constructing the pareto program surface using genetic programming to find better programs (keynote paper)</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract Optimising programs for non-functional properties such as speed, size, throughput, power...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract Optimising programs for non-functional properties such as speed, size, throughput, power consumption and bandwidth can be demanding; pity the poor programmer who is asked to cater for them all at once! We set out an alternate vision for a new kind of software development environment inspired by recent results from Search Based Software Engineering (SBSE).</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="d4f600023526c3ce82c6f0c1b8eaa79d" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30740335,"asset_id":2787587,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30740335/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787587"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787587"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787587; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787587]").text(description); $(".js-view-count[data-work-id=2787587]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787587; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787587']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "d4f600023526c3ce82c6f0c1b8eaa79d" } } $('.js-work-strip[data-work-id=2787587]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787587,"title":"The GISMOE challenge: constructing the pareto program surface using genetic programming to find better programs (keynote paper)","translated_title":"","metadata":{"abstract":"Abstract Optimising programs for non-functional properties such as speed, size, throughput, power consumption and bandwidth can be demanding; pity the poor programmer who is asked to cater for them all at once! We set out an alternate vision for a new kind of software development environment inspired by recent results from Search Based Software Engineering (SBSE).","publication_date":{"day":3,"month":9,"year":2012,"errors":{}}},"translated_abstract":"Abstract Optimising programs for non-functional properties such as speed, size, throughput, power consumption and bandwidth can be demanding; pity the poor programmer who is asked to cater for them all at once! We set out an alternate vision for a new kind of software development environment inspired by recent results from Search Based Software Engineering (SBSE).","internal_url":"https://www.academia.edu/2787587/The_GISMOE_challenge_constructing_the_pareto_program_surface_using_genetic_programming_to_find_better_programs_keynote_paper_","translated_internal_url":"","created_at":"2013-03-03T14:48:39.759-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30740335,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"Harman_2012_ASE.pdf","download_url":"https://www.academia.edu/attachments/30740335/download_file","bulk_download_file_name":"The_GISMOE_challenge_constructing_the_pa.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740335/Harman_2012_ASE-libre.pdf?1390982636=\u0026response-content-disposition=attachment%3B+filename%3DThe_GISMOE_challenge_constructing_the_pa.pdf\u0026Expires=1743457636\u0026Signature=ciq~jx6QvD8TiHhcGWRRAs5S-cvfrNOndcm4y-FA28sezjGA7XLOA2fan22gC3tTqKVR~zWmahMhn1u8zHHWflKadhff16LvIKjWaKXGQm94Saa5tdLEmTU0fre2yaY5A4BOoYlXAPQXNjF7PNoJVWp1ewPWE-SB03c1jVosNDf2wkSZN3VXzxX6b7fyn2X~KhT7q9oeV6uKf1F5KJTxmpYhzCmnYgXbzb0LeEmS10jEDDZEQBqFtQK~V7QLBhIMLIq8W~Y9kDMdSW0l7M2csl9E95QzkUvAEAFgejVVu5J2a-NgDTpVx7CazJJ0ddPrVMAZX2XzaM6rXTVLWx0r4w__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"The_GISMOE_challenge_constructing_the_pareto_program_surface_using_genetic_programming_to_find_better_programs_keynote_paper_","translated_slug":"","page_count":14,"language":"en","content_type":"Work","summary":"Abstract Optimising programs for non-functional properties such as speed, size, throughput, power consumption and bandwidth can be demanding; pity the poor programmer who is asked to cater for them all at once! We set out an alternate vision for a new kind of software development environment inspired by recent results from Search Based Software Engineering (SBSE).","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30740335,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"Harman_2012_ASE.pdf","download_url":"https://www.academia.edu/attachments/30740335/download_file","bulk_download_file_name":"The_GISMOE_challenge_constructing_the_pa.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740335/Harman_2012_ASE-libre.pdf?1390982636=\u0026response-content-disposition=attachment%3B+filename%3DThe_GISMOE_challenge_constructing_the_pa.pdf\u0026Expires=1743457636\u0026Signature=ciq~jx6QvD8TiHhcGWRRAs5S-cvfrNOndcm4y-FA28sezjGA7XLOA2fan22gC3tTqKVR~zWmahMhn1u8zHHWflKadhff16LvIKjWaKXGQm94Saa5tdLEmTU0fre2yaY5A4BOoYlXAPQXNjF7PNoJVWp1ewPWE-SB03c1jVosNDf2wkSZN3VXzxX6b7fyn2X~KhT7q9oeV6uKf1F5KJTxmpYhzCmnYgXbzb0LeEmS10jEDDZEQBqFtQK~V7QLBhIMLIq8W~Y9kDMdSW0l7M2csl9E95QzkUvAEAFgejVVu5J2a-NgDTpVx7CazJJ0ddPrVMAZX2XzaM6rXTVLWx0r4w__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671165,"url":"http://www0.cs.ucl.ac.uk/staff/w.langdon/gismo/Harman_2012_ASE.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787587-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787586"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787586/A_search_based_approach_to_overlapping_concept_boundaries"><img alt="Research paper thumbnail of A search based approach to overlapping concept boundaries" class="work-thumbnail" src="https://attachments.academia-assets.com/30889748/thumbnails/1.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787586/A_search_based_approach_to_overlapping_concept_boundaries">A search based approach to overlapping concept boundaries</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract This paper presents techniques to integrate boundary overlap into concept assignment usi...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract This paper presents techniques to integrate boundary overlap into concept assignment using Plausible Reasoning. Heuristic search techniques such as Hill climbing and Genetic Algorithms are investigated. A new fitness measure appropriate for overlapping concept assignment is introduced. The new algorithms are compared to randomly generated results and the Genetic Algorithm is shown to be the best of the proposed search algorithms in terms of the quality of concept binding, as measured by the fitness function.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="8a3592af727f1e441d3e7fa2f12adf51" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30889748,"asset_id":2787586,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30889748/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787586"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787586"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787586; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787586]").text(description); $(".js-view-count[data-work-id=2787586]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787586; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787586']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "8a3592af727f1e441d3e7fa2f12adf51" } } $('.js-work-strip[data-work-id=2787586]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787586,"title":"A search based approach to overlapping concept boundaries","translated_title":"","metadata":{"abstract":"Abstract This paper presents techniques to integrate boundary overlap into concept assignment using Plausible Reasoning. Heuristic search techniques such as Hill climbing and Genetic Algorithms are investigated. A new fitness measure appropriate for overlapping concept assignment is introduced. The new algorithms are compared to randomly generated results and the Genetic Algorithm is shown to be the best of the proposed search algorithms in terms of the quality of concept binding, as measured by the fitness function.","journal_name":"22nd International Conference on Software Maintenance (ICSM 06), Philadelphia, Pennsylvania, USA","publication_date":{"day":null,"month":9,"year":2006,"errors":{}}},"translated_abstract":"Abstract This paper presents techniques to integrate boundary overlap into concept assignment using Plausible Reasoning. Heuristic search techniques such as Hill climbing and Genetic Algorithms are investigated. A new fitness measure appropriate for overlapping concept assignment is introduced. The new algorithms are compared to randomly generated results and the Genetic Algorithm is shown to be the best of the proposed search algorithms in terms of the quality of concept binding, as measured by the fitness function.","internal_url":"https://www.academia.edu/2787586/A_search_based_approach_to_overlapping_concept_boundaries","translated_internal_url":"","created_at":"2013-03-03T14:48:39.680-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30889748,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://attachments.academia-assets.com/30889748/thumbnails/1.jpg","file_name":"allowing_overlapping_boundaries_in_source_code_using_a_search_based.pdf","download_url":"https://www.academia.edu/attachments/30889748/download_file","bulk_download_file_name":"A_search_based_approach_to_overlapping_c.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30889748/allowing_overlapping_boundaries_in_source_code_using_a_search_based-libre.pdf?1391858230=\u0026response-content-disposition=attachment%3B+filename%3DA_search_based_approach_to_overlapping_c.pdf\u0026Expires=1743457636\u0026Signature=Yle7VMu0LNUBAYtaqar1V5BqHhX1w~m8iFjj~ICvo39Ui3lmvlWPqJE1GWahcdgYV6AcltuSseVHBO8VTXOljL7TegsSYrKx5frQIh6qTsdWenTPlU1lTSQeamM6BmPU8n0IZFmgU-ft9vUnYRX8nmXvqzbbUkNU6q6yyHZn44f1gl5Hl4irVQIpEFCAWdFt5YCZDMI8XSQQSuZjv3SaUv2Y8ROVRACHKC-6bl6PinabHpYzi2z23hr53eZCWe1J4R7~-X7aWonz8mURFCwuab3UTrxjkvJzA~8bK115wxr3unEncuc0eUl7bgwm2GcbaoMr4HbRvzhI9SxNeKcHqw__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"A_search_based_approach_to_overlapping_concept_boundaries","translated_slug":"","page_count":10,"language":"en","content_type":"Work","summary":"Abstract This paper presents techniques to integrate boundary overlap into concept assignment using Plausible Reasoning. Heuristic search techniques such as Hill climbing and Genetic Algorithms are investigated. A new fitness measure appropriate for overlapping concept assignment is introduced. The new algorithms are compared to randomly generated results and the Genetic Algorithm is shown to be the best of the proposed search algorithms in terms of the quality of concept binding, as measured by the fitness function.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30889748,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://attachments.academia-assets.com/30889748/thumbnails/1.jpg","file_name":"allowing_overlapping_boundaries_in_source_code_using_a_search_based.pdf","download_url":"https://www.academia.edu/attachments/30889748/download_file","bulk_download_file_name":"A_search_based_approach_to_overlapping_c.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30889748/allowing_overlapping_boundaries_in_source_code_using_a_search_based-libre.pdf?1391858230=\u0026response-content-disposition=attachment%3B+filename%3DA_search_based_approach_to_overlapping_c.pdf\u0026Expires=1743457636\u0026Signature=Yle7VMu0LNUBAYtaqar1V5BqHhX1w~m8iFjj~ICvo39Ui3lmvlWPqJE1GWahcdgYV6AcltuSseVHBO8VTXOljL7TegsSYrKx5frQIh6qTsdWenTPlU1lTSQeamM6BmPU8n0IZFmgU-ft9vUnYRX8nmXvqzbbUkNU6q6yyHZn44f1gl5Hl4irVQIpEFCAWdFt5YCZDMI8XSQQSuZjv3SaUv2Y8ROVRACHKC-6bl6PinabHpYzi2z23hr53eZCWe1J4R7~-X7aWonz8mURFCwuab3UTrxjkvJzA~8bK115wxr3unEncuc0eUl7bgwm2GcbaoMr4HbRvzhI9SxNeKcHqw__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671164,"url":"http://pdf.aminer.org/000/139/016/allowing_overlapping_boundaries_in_source_code_using_a_search_based.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787586-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787585"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787585/Faster_fault_finding_at_google_using_multi_objective_regression_test_optimisation"><img alt="Research paper thumbnail of Faster fault finding at google using multi objective regression test optimisation" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787585/Faster_fault_finding_at_google_using_multi_objective_regression_test_optimisation">Faster fault finding at google using multi objective regression test optimisation</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">ABSTRACT Companies such as Google tend to develop products from one continually evolving core of ...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">ABSTRACT Companies such as Google tend to develop products from one continually evolving core of code. Software is neither shipped, nor released in the traditional sense. It is simply made available, with dramatically compressed release cycles regression testing. This large scale rapid release environment creates challenges for the application of regression test optimisation techniques.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="6154ac6d65e02e7e92c3e81d84d41fb8" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30740295,"asset_id":2787585,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30740295/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787585"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787585"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787585; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787585]").text(description); $(".js-view-count[data-work-id=2787585]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787585; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787585']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "6154ac6d65e02e7e92c3e81d84d41fb8" } } $('.js-work-strip[data-work-id=2787585]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787585,"title":"Faster fault finding at google using multi objective regression test optimisation","translated_title":"","metadata":{"abstract":"ABSTRACT Companies such as Google tend to develop products from one continually evolving core of code. Software is neither shipped, nor released in the traditional sense. It is simply made available, with dramatically compressed release cycles regression testing. This large scale rapid release environment creates challenges for the application of regression test optimisation techniques.","ai_title_tag":"Optimizing Regression Testing for Rapid Releases at Google","journal_name":"8th European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE���11), Szeged, Hungary, September 5th-9th","publication_date":{"day":5,"month":9,"year":2011,"errors":{}}},"translated_abstract":"ABSTRACT Companies such as Google tend to develop products from one continually evolving core of code. Software is neither shipped, nor released in the traditional sense. It is simply made available, with dramatically compressed release cycles regression testing. This large scale rapid release environment creates challenges for the application of regression test optimisation techniques.","internal_url":"https://www.academia.edu/2787585/Faster_fault_finding_at_google_using_multi_objective_regression_test_optimisation","translated_internal_url":"","created_at":"2013-03-03T14:48:39.613-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30740295,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"YooNH11_01.pdf","download_url":"https://www.academia.edu/attachments/30740295/download_file","bulk_download_file_name":"Faster_fault_finding_at_google_using_mul.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740295/YooNH11_01-libre.pdf?1391876227=\u0026response-content-disposition=attachment%3B+filename%3DFaster_fault_finding_at_google_using_mul.pdf\u0026Expires=1743457637\u0026Signature=fgXG2s9YEYztXvHE-9YZW0yXIYuAMjq7bp5crgeXOOTSkXYlEX4uzQLbZLZHgVB0fPJ2Kk0mB1XbKzkGi9iIQ-ga-tL83fSrPxXSJ6DT9erhTQQRC6V~cdc6d657b-cZ7xoo66qfTjmbzHnJjXSUmW4Sgn-C9~wDfKkzKzDjaz2K1hbDnIwcm5F01WJU9br-EyaOjtHP8yivpvj0cCcZGvy0Lc9ilSEHgTIc5whWAaVL3tGiMe9E0D1~~elSf5WnuOdASIrc~LwMoTtz1lwfA6YVN1oI0IQvPSOyGyLLTct8GumuJ7i5zbAIc5m62WBbnS1R8uTL2EoExkiUbXu~lA__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"Faster_fault_finding_at_google_using_multi_objective_regression_test_optimisation","translated_slug":"","page_count":4,"language":"en","content_type":"Work","summary":"ABSTRACT Companies such as Google tend to develop products from one continually evolving core of code. Software is neither shipped, nor released in the traditional sense. It is simply made available, with dramatically compressed release cycles regression testing. This large scale rapid release environment creates challenges for the application of regression test optimisation techniques.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30740295,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"YooNH11_01.pdf","download_url":"https://www.academia.edu/attachments/30740295/download_file","bulk_download_file_name":"Faster_fault_finding_at_google_using_mul.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740295/YooNH11_01-libre.pdf?1391876227=\u0026response-content-disposition=attachment%3B+filename%3DFaster_fault_finding_at_google_using_mul.pdf\u0026Expires=1743457637\u0026Signature=fgXG2s9YEYztXvHE-9YZW0yXIYuAMjq7bp5crgeXOOTSkXYlEX4uzQLbZLZHgVB0fPJ2Kk0mB1XbKzkGi9iIQ-ga-tL83fSrPxXSJ6DT9erhTQQRC6V~cdc6d657b-cZ7xoo66qfTjmbzHnJjXSUmW4Sgn-C9~wDfKkzKzDjaz2K1hbDnIwcm5F01WJU9br-EyaOjtHP8yivpvj0cCcZGvy0Lc9ilSEHgTIc5whWAaVL3tGiMe9E0D1~~elSf5WnuOdASIrc~LwMoTtz1lwfA6YVN1oI0IQvPSOyGyLLTct8GumuJ7i5zbAIc5m62WBbnS1R8uTL2EoExkiUbXu~lA__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671163,"url":"http://sebase.cs.ucl.ac.uk/fileadmin/crest/sebasepaper/YooNH11_01.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787585-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787584"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" rel="nofollow" href="https://www.academia.edu/2787584/Cooperative_co_evolutionary_optimization_of_software_project_staff_assignments_and_job_scheduling"><img alt="Research paper thumbnail of Cooperative co-evolutionary optimization of software project staff assignments and job scheduling" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title">Cooperative co-evolutionary optimization of software project staff assignments and job scheduling</div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">This paper presents an approach to Search Based Software Project Management based on Cooperative ...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">This paper presents an approach to Search Based Software Project Management based on Cooperative Co-evolution. Our approach aims to optimize both developers' team staffing and work package scheduling through cooperative co-evolution to achieve early overall completion time. To evaluate our approach, we conducted an empirical study, using data from four real-world software projects. Results indicate that the Co-evolutionary approach significantly outperforms a single population evolutionary algorithm.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787584"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787584"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787584; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787584]").text(description); $(".js-view-count[data-work-id=2787584]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787584; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787584']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (false){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "-1" } } $('.js-work-strip[data-work-id=2787584]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787584,"title":"Cooperative co-evolutionary optimization of software project staff assignments and job scheduling","translated_title":"","metadata":{"abstract":"This paper presents an approach to Search Based Software Project Management based on Cooperative Co-evolution. Our approach aims to optimize both developers' team staffing and work package scheduling through cooperative co-evolution to achieve early overall completion time. To evaluate our approach, we conducted an empirical study, using data from four real-world software projects. Results indicate that the Co-evolutionary approach significantly outperforms a single population evolutionary algorithm.","journal_name":"Search Based Software Engineering","publication_date":{"day":null,"month":null,"year":2011,"errors":{}}},"translated_abstract":"This paper presents an approach to Search Based Software Project Management based on Cooperative Co-evolution. Our approach aims to optimize both developers' team staffing and work package scheduling through cooperative co-evolution to achieve early overall completion time. To evaluate our approach, we conducted an empirical study, using data from four real-world software projects. Results indicate that the Co-evolutionary approach significantly outperforms a single population evolutionary algorithm.","internal_url":"https://www.academia.edu/2787584/Cooperative_co_evolutionary_optimization_of_software_project_staff_assignments_and_job_scheduling","translated_internal_url":"","created_at":"2013-03-03T14:48:39.544-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[],"slug":"Cooperative_co_evolutionary_optimization_of_software_project_staff_assignments_and_job_scheduling","translated_slug":"","page_count":null,"language":"en","content_type":"Work","summary":"This paper presents an approach to Search Based Software Project Management based on Cooperative Co-evolution. Our approach aims to optimize both developers' team staffing and work package scheduling through cooperative co-evolution to achieve early overall completion time. To evaluate our approach, we conducted an empirical study, using data from four real-world software projects. Results indicate that the Co-evolutionary approach significantly outperforms a single population evolutionary algorithm.","impression_tracking_id":null,"owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[],"research_interests":[],"urls":[{"id":671162,"url":"http://hasanheidari.s103.rapidbaz.com:8080/free/y2D3wxssuEpB4MUDCsB3M1UjgZu0xcccjotXQ_zwc7hwccTGl-YhUJ3GJEIEmuHJ5TCT7vXiH14wvZwiBlul11DeW6mUXaG0wHw4sU1703mbt_IMWabte2zcdm1pQ-RIyE3EmBo6BtaGVLlafg,,/Search_Based_Software_Engineering.pdf#page=144"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787584-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787583"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787583/Dependence_clusters_in_source_code"><img alt="Research paper thumbnail of Dependence clusters in source code" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787583/Dependence_clusters_in_source_code">Dependence clusters in source code</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract A dependence cluster is a set of program statements, all of which are mutually inter-dep...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract A dependence cluster is a set of program statements, all of which are mutually inter-dependent. This article reports a large scale empirical study of dependence clusters in C program source code. The study reveals that large dependence clusters are surprisingly commonplace. Most of the 45 programs studied have clusters of dependence that consume more than 10&percnt; of the whole program. Some even have clusters consuming 80&percnt; or more.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="c9ab6247d63e7f8f2d87f795c5d38475" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30740317,"asset_id":2787583,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30740317/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787583"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787583"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787583; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787583]").text(description); $(".js-view-count[data-work-id=2787583]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787583; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787583']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "c9ab6247d63e7f8f2d87f795c5d38475" } } $('.js-work-strip[data-work-id=2787583]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787583,"title":"Dependence clusters in source code","translated_title":"","metadata":{"abstract":"Abstract A dependence cluster is a set of program statements, all of which are mutually inter-dependent. This article reports a large scale empirical study of dependence clusters in C program source code. The study reveals that large dependence clusters are surprisingly commonplace. Most of the 45 programs studied have clusters of dependence that consume more than 10\u0026percnt; of the whole program. Some even have clusters consuming 80\u0026percnt; or more.","ai_title_tag":"Prevalence of Dependence Clusters in C Code","journal_name":"ACM Transactions on Programming Languages and Systems (TOPLAS)","publication_date":{"day":1,"month":10,"year":2009,"errors":{}}},"translated_abstract":"Abstract A dependence cluster is a set of program statements, all of which are mutually inter-dependent. This article reports a large scale empirical study of dependence clusters in C program source code. The study reveals that large dependence clusters are surprisingly commonplace. Most of the 45 programs studied have clusters of dependence that consume more than 10\u0026percnt; of the whole program. Some even have clusters consuming 80\u0026percnt; or more.","internal_url":"https://www.academia.edu/2787583/Dependence_clusters_in_source_code","translated_internal_url":"","created_at":"2013-03-03T14:48:39.457-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30740317,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"toplas09.pdf","download_url":"https://www.academia.edu/attachments/30740317/download_file","bulk_download_file_name":"Dependence_clusters_in_source_code.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740317/toplas09-libre.pdf?1391862329=\u0026response-content-disposition=attachment%3B+filename%3DDependence_clusters_in_source_code.pdf\u0026Expires=1744178956\u0026Signature=NOoq2hi0F-iTw0uiiZinaDRxpPzSXiZ3V-Lzq3SDIQLRQsnpTvAkihC61p-EclOpJbRPkqxK5GCMVyPbYdAyDEpNY9WYXtzxHuTo9WB81mBu5WN92KCcWCVuppQwhRF4-Stjg9xlozcx7b96zQSoBbXDvCJIzzlH282~HLL~EscY5v3lPU0-wf~LFYiQUATktndL6yJeQ8pKxF7svKB09UZB2VieRA-D9Hpk0Fz2n10WQTp7m-o9QTJ64pMogXptj~H8aLAz4XIBWU3LlWlwORSb57pbf4lkOhh4tObGJkp6caBJqv7oWHrqWBYr8DywwBCBj23dGyGgQrSvm8pj0w__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"Dependence_clusters_in_source_code","translated_slug":"","page_count":33,"language":"en","content_type":"Work","summary":"Abstract A dependence cluster is a set of program statements, all of which are mutually inter-dependent. This article reports a large scale empirical study of dependence clusters in C program source code. The study reveals that large dependence clusters are surprisingly commonplace. Most of the 45 programs studied have clusters of dependence that consume more than 10\u0026percnt; of the whole program. Some even have clusters consuming 80\u0026percnt; or more.","impression_tracking_id":null,"owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30740317,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"toplas09.pdf","download_url":"https://www.academia.edu/attachments/30740317/download_file","bulk_download_file_name":"Dependence_clusters_in_source_code.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740317/toplas09-libre.pdf?1391862329=\u0026response-content-disposition=attachment%3B+filename%3DDependence_clusters_in_source_code.pdf\u0026Expires=1744178956\u0026Signature=NOoq2hi0F-iTw0uiiZinaDRxpPzSXiZ3V-Lzq3SDIQLRQsnpTvAkihC61p-EclOpJbRPkqxK5GCMVyPbYdAyDEpNY9WYXtzxHuTo9WB81mBu5WN92KCcWCVuppQwhRF4-Stjg9xlozcx7b96zQSoBbXDvCJIzzlH282~HLL~EscY5v3lPU0-wf~LFYiQUATktndL6yJeQ8pKxF7svKB09UZB2VieRA-D9Hpk0Fz2n10WQTp7m-o9QTJ64pMogXptj~H8aLAz4XIBWU3LlWlwORSb57pbf4lkOhh4tObGJkp6caBJqv7oWHrqWBYr8DywwBCBj23dGyGgQrSvm8pj0w__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671161,"url":"http://www0.cs.ucl.ac.uk/staff/j.krinke/publications/toplas09.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787583-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787582"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787582/Clustering_test_cases_to_achieve_effective_and_scalable_prioritisation_incorporating_expert_knowledge"><img alt="Research paper thumbnail of Clustering test cases to achieve effective and scalable prioritisation incorporating expert knowledge" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787582/Clustering_test_cases_to_achieve_effective_and_scalable_prioritisation_incorporating_expert_knowledge">Clustering test cases to achieve effective and scalable prioritisation incorporating expert knowledge</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract Pair-wise comparison has been successfully utilised in order to prioritise test cases by...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract Pair-wise comparison has been successfully utilised in order to prioritise test cases by exploiting the rich, valuable and unique knowledge of the tester. However, the prohibitively large cost of the pair-wise comparison method prevents it from being applied to large test suites. In this paper, we introduce a cluster-based test case prioritisation technique. By clustering test cases, based on their dynamic runtime behaviour, we can reduce the required number of pair-wise comparisons significantly.</span></div><div class="wp-workCard_item"><div class="carousel-container carousel-container--sm" id="profile-work-2787582-figures"><div class="prev-slide-container js-prev-button-container"><button aria-label="Previous" class="carousel-navigation-button js-profile-work-2787582-figures-prev"><span class="material-symbols-outlined" style="font-size: 24px" translate="no">arrow_back_ios</span></button></div><div class="slides-container js-slides-container"><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/37492425/figure-1-the-resulting-dendrogram-is-tree-structure-that"><img alt="The resulting dendrogram is a tree structure that represents the arrangement of clusters. Figure 1 shows an example dendrogram. It is possible to generate k clusters for any k in [1, n] by cutting the tree at different heights. " class="figure-slide-image" src="https://figures.academia-assets.com/30740316/figure_001.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/37492446/figure-2-clustering-test-cases-to-achieve-effective-and"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740316/figure_002.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/37492452/figure-3-hierarchy-between-comparison-criteria-for-ahp-scale"><img alt="Figure 3: Hierarchy between comparison criteria for AHP Table 1: Scale of preference used in the comparison matrix of AHP " class="figure-slide-image" src="https://figures.academia-assets.com/30740316/figure_003.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/37492459/figure-4-boxplots-of-apfd-values-of-cps-conuration-with"><img alt="Figure 4: Boxplots of APFD values of /CPs configuration with error rate ranging from 0.05 to 1.0 in steps of 0.05 on the x-axis. The y-axis shows the observed APFD metric values. For each error rate value, experiments are repeated 30 times to cater for the randomness in the error model. The horizontal dotted line shows the APFD value of statement coverage-based prioritisation. Surprisingly, for the test suites for which JCP; showed an improvement in Table 7, the mean APFD values tend to stay above this dotted line, even when the error rate is above 0.5. In fact, with the exception of schedule1l and gzip, even the error rate of 1.0 produces successful results for the test suites for which /C Ps; showed an improvement in Table 7. " class="figure-slide-image" src="https://figures.academia-assets.com/30740316/figure_004.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/37492471/figure-5-boxplots-of-apfd-values-of-py-conuration-with-error"><img alt="Figure 5: Boxplots of APFD values of /C Py, configuration with error rate ranging from 0.05 to 1.0 in steps of 0.05 on the x-axis. The y-axis shows the observed APFD metric values. The trend observed in Figure 4 continues. However, it can also be observed that the secondary prioritisation criteria (statement coverage) compliments human input. APFD values show smaller variances compared to Figure 4 and, in some cases, more tolerance in the presence of human error, for example, the case with test suite 1 of schedule. " class="figure-slide-image" src="https://figures.academia-assets.com/30740316/figure_005.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/37492481/figure-6-boxplots-of-random-prioritisation-results-on-the"><img alt="Figure 6: Boxplots of random prioritisation results. On the x-axis, ‘Random’ represents random prioritisation with no clustering; ‘RCRP’ represents random clustering and random ICP; ‘HCRP’ represents hierarchical clustering and random ICP. The y-axis shows the observed APFD metric values. For programs for which ICP performed well in Section 5.1, HCRP partially outperforms statement coverage-based prioritisation (represented by the dotted lines) even with random prioritisation. " class="figure-slide-image" src="https://figures.academia-assets.com/30740316/figure_006.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/37492487/table-1-clustering-test-cases-to-achieve-effective-and"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740316/table_001.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/37492494/table-2-suppose-two-test-cases-ft-and-tg-are-being-compared"><img alt="Suppose two test cases ft, and tg are being compared. Let ny be the number of faults detected by t,, and ng by tg. The ‘ideal’ user model used in the paper sets the scale of preference between ft and tz, Pap, aS Shown in Table 2. " class="figure-slide-image" src="https://figures.academia-assets.com/30740316/table_002.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/37492499/table-3-errors-of-type-and-occur-when-human-tester-claims"><img alt="Errors of type 1 and 2 occur when a human tester claims that two test cases are equally important, when in fact one of them is more important than the other. Errors of type 3 and 4 occur wher a human tester claims that a test case is more important than the other, when in fact it is the opposite. Errors of type 5 and 6 occur when a human tester claims that a test case is more important thar the other when in fact they are equally important. Finally, errors of type 7 and 8 occur when a human tester correctly claims the inequality relation between two test cases, but answers the ratio o! relative importance incorrectly. In order to only include errors tha mean the human judgement is definitely wrong, only errors of type 1 to 6 are considered in the empirical studies. Table 3: Different types of errors. " class="figure-slide-image" src="https://figures.academia-assets.com/30740316/table_003.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/37492505/table-7-apfd-values-obtained-from-cps-and-ideal-user-model"><img alt="Table 7: APFD values obtained from /CPs; and ideal user model compared to those of the optimal ordering and the statement coverage-based prioritisation. Cells with grey background represent the fact that /CP; outperformed statement coverage-basec prioritisation in terms of APFD. Table 8: APFD values obtained from /C Py with different p,;c, values and ideal user model, ranging from ‘extremely favours huma expert’s judgement (9)’ to ‘extremely favours coverage-based prioritisation (3)’. " class="figure-slide-image" src="https://figures.academia-assets.com/30740316/table_004.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/37492516/table-5-clustering-test-cases-to-achieve-effective-and"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740316/table_005.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/37492575/table-9-results-of-the-suitability-test-ncsp-is-the"><img alt="Table 9: Results of the suitability test. NCSP is the traditional statement coverage-based prioritisation. HCSP is ICP with statement coverage prioritisation for both intra- and inter-cluster prioritisation. If HCSP performs no worse than NCSP, the test passes, i.e. ICP is expected to outperform NCSP with the faults in the TBR set. Cells with grey background show passed tests with correct prediction; cells with white background denote failed tests with correct prediction. The second test suite of schedule and the test suite of vim produce false negative results (denoted by *). " class="figure-slide-image" src="https://figures.academia-assets.com/30740316/table_006.jpg" /></a></figure></div><div class="next-slide-container js-next-button-container"><button aria-label="Next" class="carousel-navigation-button js-profile-work-2787582-figures-next"><span class="material-symbols-outlined" style="font-size: 24px" translate="no">arrow_forward_ios</span></button></div></div></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="f1e46b845d0cad6183f47f2c92a2179b" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30740316,"asset_id":2787582,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30740316/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787582"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787582"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787582; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787582]").text(description); $(".js-view-count[data-work-id=2787582]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787582; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787582']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "f1e46b845d0cad6183f47f2c92a2179b" } } $('.js-work-strip[data-work-id=2787582]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787582,"title":"Clustering test cases to achieve effective and scalable prioritisation incorporating expert knowledge","translated_title":"","metadata":{"abstract":"Abstract Pair-wise comparison has been successfully utilised in order to prioritise test cases by exploiting the rich, valuable and unique knowledge of the tester. However, the prohibitively large cost of the pair-wise comparison method prevents it from being applied to large test suites. In this paper, we introduce a cluster-based test case prioritisation technique. By clustering test cases, based on their dynamic runtime behaviour, we can reduce the required number of pair-wise comparisons significantly.","ai_title_tag":"Cluster-Based Test Case Prioritisation with Expert Knowledge","publication_date":{"day":19,"month":7,"year":2009,"errors":{}}},"translated_abstract":"Abstract Pair-wise comparison has been successfully utilised in order to prioritise test cases by exploiting the rich, valuable and unique knowledge of the tester. However, the prohibitively large cost of the pair-wise comparison method prevents it from being applied to large test suites. In this paper, we introduce a cluster-based test case prioritisation technique. By clustering test cases, based on their dynamic runtime behaviour, we can reduce the required number of pair-wise comparisons significantly.","internal_url":"https://www.academia.edu/2787582/Clustering_test_cases_to_achieve_effective_and_scalable_prioritisation_incorporating_expert_knowledge","translated_internal_url":"","created_at":"2013-03-03T14:48:39.387-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30740316,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"Yoo2009cr.pdf","download_url":"https://www.academia.edu/attachments/30740316/download_file","bulk_download_file_name":"Clustering_test_cases_to_achieve_effecti.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740316/Yoo2009cr-libre.pdf?1391837991=\u0026response-content-disposition=attachment%3B+filename%3DClustering_test_cases_to_achieve_effecti.pdf\u0026Expires=1743457637\u0026Signature=Vk~zIU755m6n5rpEsjA2OLbO8YfHnDm3e8yaykbo88zcwjP3abTOjy54xGQjNyAcu19ND1ecJQyaNb~HCKefEiAzdRQIwtLDkfPnoALDsSPAAXyuXtW6q~ffB44EUR2OOKGjw1WqYa-X~eecP8yF5M1mW8wKSTvizN5BXQM6tLxuC-fqHNrmPpxDnI25Ni30BJavI3gyTlW0V2oucfR4VDRM-OGtOLsq745iAUG7EpsrGmY6dLi0vXWro0sK2YktdzMZi~-K33vkpXL2gtYjOZGqzv2WrXsoKinDYJOM3tarWc5-61Shmpp11mqq9kJ44XK1kaiB3T7bmbFxwN4tDA__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"Clustering_test_cases_to_achieve_effective_and_scalable_prioritisation_incorporating_expert_knowledge","translated_slug":"","page_count":11,"language":"en","content_type":"Work","summary":"Abstract Pair-wise comparison has been successfully utilised in order to prioritise test cases by exploiting the rich, valuable and unique knowledge of the tester. However, the prohibitively large cost of the pair-wise comparison method prevents it from being applied to large test suites. In this paper, we introduce a cluster-based test case prioritisation technique. By clustering test cases, based on their dynamic runtime behaviour, we can reduce the required number of pair-wise comparisons significantly.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30740316,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"Yoo2009cr.pdf","download_url":"https://www.academia.edu/attachments/30740316/download_file","bulk_download_file_name":"Clustering_test_cases_to_achieve_effecti.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740316/Yoo2009cr-libre.pdf?1391837991=\u0026response-content-disposition=attachment%3B+filename%3DClustering_test_cases_to_achieve_effecti.pdf\u0026Expires=1743457637\u0026Signature=Vk~zIU755m6n5rpEsjA2OLbO8YfHnDm3e8yaykbo88zcwjP3abTOjy54xGQjNyAcu19ND1ecJQyaNb~HCKefEiAzdRQIwtLDkfPnoALDsSPAAXyuXtW6q~ffB44EUR2OOKGjw1WqYa-X~eecP8yF5M1mW8wKSTvizN5BXQM6tLxuC-fqHNrmPpxDnI25Ni30BJavI3gyTlW0V2oucfR4VDRM-OGtOLsq745iAUG7EpsrGmY6dLi0vXWro0sK2YktdzMZi~-K33vkpXL2gtYjOZGqzv2WrXsoKinDYJOM3tarWc5-61Shmpp11mqq9kJ44XK1kaiB3T7bmbFxwN4tDA__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671160,"url":"http://www0.cs.ucl.ac.uk/staff/S.Yoo/papers/Yoo2009cr.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (true) { Aedu.setUpFigureCarousel('profile-work-2787582-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787581"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" rel="nofollow" href="https://www.academia.edu/2787581/Automatically_generating_realistic_test_input_from_web_services"><img alt="Research paper thumbnail of Automatically generating realistic test input from web services" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title">Automatically generating realistic test input from web services</div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract Generating realistic test data is a major problem for software testers. Realistic test d...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract Generating realistic test data is a major problem for software testers. Realistic test data generation for certain input types is hard to automate and therefore laborious. We propose a novel automated solution to test data generation that exploits existing web services as sources of realistic test data. Our approach is capable of generating realistic test data and also generating data based on tester-specified constraints.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787581"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787581"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787581; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787581]").text(description); $(".js-view-count[data-work-id=2787581]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787581; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787581']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (false){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "-1" } } $('.js-work-strip[data-work-id=2787581]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787581,"title":"Automatically generating realistic test input from web services","translated_title":"","metadata":{"abstract":"Abstract Generating realistic test data is a major problem for software testers. Realistic test data generation for certain input types is hard to automate and therefore laborious. We propose a novel automated solution to test data generation that exploits existing web services as sources of realistic test data. Our approach is capable of generating realistic test data and also generating data based on tester-specified constraints.","publication_date":{"day":12,"month":12,"year":2011,"errors":{}}},"translated_abstract":"Abstract Generating realistic test data is a major problem for software testers. Realistic test data generation for certain input types is hard to automate and therefore laborious. We propose a novel automated solution to test data generation that exploits existing web services as sources of realistic test data. Our approach is capable of generating realistic test data and also generating data based on tester-specified constraints.","internal_url":"https://www.academia.edu/2787581/Automatically_generating_realistic_test_input_from_web_services","translated_internal_url":"","created_at":"2013-03-03T14:48:39.315-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[],"slug":"Automatically_generating_realistic_test_input_from_web_services","translated_slug":"","page_count":null,"language":"en","content_type":"Work","summary":"Abstract Generating realistic test data is a major problem for software testers. Realistic test data generation for certain input types is hard to automate and therefore laborious. We propose a novel automated solution to test data generation that exploits existing web services as sources of realistic test data. Our approach is capable of generating realistic test data and also generating data based on tester-specified constraints.","impression_tracking_id":null,"owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[],"research_interests":[],"urls":[{"id":671159,"url":"http://www0.cs.ucl.ac.uk/staff/M.Bozkurt/files/pdf/bozkurt_harman_SOSE2011_realistic_test_data_from_ws.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787581-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787580"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787580/The_next_700_slicing_criteria"><img alt="Research paper thumbnail of The next 700 slicing criteria" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787580/The_next_700_slicing_criteria">The next 700 slicing criteria</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract A slice is constructed by deleting statements from a program whilst preserving some proj...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract A slice is constructed by deleting statements from a program whilst preserving some projection of its semantics. Since Mark Weiser introduced program slicing in 1979, a wide variety of slicing paradigms have been proposed, each of which is based upon a new formulation of the slicing criterion, capturing the semantic projection to be preserved during the process of command deletion. This paper surveys these slicing criteria, attempting to establish a set of parameters which combine to form a slicing criterion.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="24f7e05f3646ce280285aa179ee415a4" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30740299,"asset_id":2787580,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30740299/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787580"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787580"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787580; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787580]").text(description); $(".js-view-count[data-work-id=2787580]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787580; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787580']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "24f7e05f3646ce280285aa179ee415a4" } } $('.js-work-strip[data-work-id=2787580]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787580,"title":"The next 700 slicing criteria","translated_title":"","metadata":{"abstract":"Abstract A slice is constructed by deleting statements from a program whilst preserving some projection of its semantics. Since Mark Weiser introduced program slicing in 1979, a wide variety of slicing paradigms have been proposed, each of which is based upon a new formulation of the slicing criterion, capturing the semantic projection to be preserved during the process of command deletion. This paper surveys these slicing criteria, attempting to establish a set of parameters which combine to form a slicing criterion.","journal_name":"Second UK Workshop on Program Comprehension","publication_date":{"day":null,"month":7,"year":1996,"errors":{}}},"translated_abstract":"Abstract A slice is constructed by deleting statements from a program whilst preserving some projection of its semantics. Since Mark Weiser introduced program slicing in 1979, a wide variety of slicing paradigms have been proposed, each of which is based upon a new formulation of the slicing criterion, capturing the semantic projection to be preserved during the process of command deletion. This paper surveys these slicing criteria, attempting to establish a set of parameters which combine to form a slicing criterion.","internal_url":"https://www.academia.edu/2787580/The_next_700_slicing_criteria","translated_internal_url":"","created_at":"2013-03-03T14:48:39.245-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30740299,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"wpc96.pdf","download_url":"https://www.academia.edu/attachments/30740299/download_file","bulk_download_file_name":"The_next_700_slicing_criteria.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740299/wpc96-libre.pdf?1392088946=\u0026response-content-disposition=attachment%3B+filename%3DThe_next_700_slicing_criteria.pdf\u0026Expires=1743457637\u0026Signature=HFJbpaE1R-dEwBxW2LXHa8VsC2XN-pGH5TMEFUL41Xe2ByZPaP9gpJ9PsJir9~Jkvt3h5q3-4JAmzMhHHC9Ac2UrjLlw~Dgqhp~AnE1p2pWkvK2XKUrVzRoa2xzKADRwbGHI-cZEGA6D~cINUmd4HFxaIyw9ceQxhhZEpcJalsFplk4A6UG7z1f8RMnmr7uD9nd4fC36gQ4AdTJgP0P7xT9NpovlwHoMU~zjU-CdOJ~jcvCuUtQ6Dar~mLwbI85NnNIin5LqQeWEU-YdIAhvMsr1otnCdW9pTyKwSf7vCW~VNJLRQWNgAX~C4SBnDoeC9NgB7sLQ0uqsA6WcOYXuig__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"The_next_700_slicing_criteria","translated_slug":"","page_count":16,"language":"en","content_type":"Work","summary":"Abstract A slice is constructed by deleting statements from a program whilst preserving some projection of its semantics. Since Mark Weiser introduced program slicing in 1979, a wide variety of slicing paradigms have been proposed, each of which is based upon a new formulation of the slicing criterion, capturing the semantic projection to be preserved during the process of command deletion. This paper surveys these slicing criteria, attempting to establish a set of parameters which combine to form a slicing criterion.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30740299,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"wpc96.pdf","download_url":"https://www.academia.edu/attachments/30740299/download_file","bulk_download_file_name":"The_next_700_slicing_criteria.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740299/wpc96-libre.pdf?1392088946=\u0026response-content-disposition=attachment%3B+filename%3DThe_next_700_slicing_criteria.pdf\u0026Expires=1743457637\u0026Signature=HFJbpaE1R-dEwBxW2LXHa8VsC2XN-pGH5TMEFUL41Xe2ByZPaP9gpJ9PsJir9~Jkvt3h5q3-4JAmzMhHHC9Ac2UrjLlw~Dgqhp~AnE1p2pWkvK2XKUrVzRoa2xzKADRwbGHI-cZEGA6D~cINUmd4HFxaIyw9ceQxhhZEpcJalsFplk4A6UG7z1f8RMnmr7uD9nd4fC36gQ4AdTJgP0P7xT9NpovlwHoMU~zjU-CdOJ~jcvCuUtQ6Dar~mLwbI85NnNIin5LqQeWEU-YdIAhvMsr1otnCdW9pTyKwSf7vCW~VNJLRQWNgAX~C4SBnDoeC9NgB7sLQ0uqsA6WcOYXuig__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671158,"url":"http://www0.cs.ucl.ac.uk/staff/mharman/wpc96.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787580-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787579"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787579/FLINT_Fault_Localisation_using_Information_Theory"><img alt="Research paper thumbnail of FLINT: Fault Localisation using Information Theory" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787579/FLINT_Fault_Localisation_using_Information_Theory">FLINT: Fault Localisation using Information Theory</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract Test case prioritisation techniques aim to maximise the chance of fault detection as ear...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract Test case prioritisation techniques aim to maximise the chance of fault detection as early in testing as possible. This is most commonly achieved by prioritising the tests according to a surrogate measure that is thought to correspond to fault detection capabilities, such as code coverage. However, once the prioritised test suite indeed detects a fault, the original prioritisation may become obsolete.</span></div><div class="wp-workCard_item"><div class="carousel-container carousel-container--sm" id="profile-work-2787579-figures"><div class="prev-slide-container js-prev-button-container"><button aria-label="Previous" class="carousel-navigation-button js-profile-work-2787579-figures-prev"><span class="material-symbols-outlined" style="font-size: 24px" translate="no">arrow_back_ios</span></button></div><div class="slides-container js-slides-container"><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/36016499/table-1-motivating-example-coverage-based-prioritisation"><img alt="Table 1: Motivating Example: coverage-based prioritisation would execute ¢3 after the first failure (£2), resulting in sub-optimal suspiciousness metric values. However, if t4 is executed after the first failure, the faulty s7 will get assigned the optimal suspiciousness value. " class="figure-slide-image" src="https://figures.academia-assets.com/30740281/figure_001.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/36016510/figure-1-plots-of-suspiciousness-and-expense-reduction-from"><img alt="Figure 1: Plots of suspiciousness and Expense reduction from the precision study. Figure 1(a) represent the cases when FLINT approach produces higher suspiciousness and lower Expense, compared to TCP approach, with statistical significance. Figure 1(b) and 1(c) represent the cases when the reduction in entropy achieved by FLINT results in reduced Expense, despite the fact that the suspiciousness value of the faulty statement is equal to that from TCP approach (Figure 1(b)) or even lower (Figure 1(c)). This is because the reduction in entropy is achieved by /owering the suspiciousness metric for non-faulty statements. Howewver, in Figure 1(d), the suspiciousness metric is not in alignment with Expense: the increased suspiciousness metric resulted in higher Expense. " class="figure-slide-image" src="https://figures.academia-assets.com/30740281/figure_002.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/36016521/figure-2-plots-of-suspiciousness-and-expense-reduction-from"><img alt="Figure 2: Plots of suspiciousness and Expense reduction from the robustness study. Figure 2(a) and 2(c) correspond to Figure 1(a) and 1(c) respectively: FLINT achieves improved suspiciousness and reduced Expense for these faults, despite the use of coverage information from the previous version for the looka- head. Figure 2(b) shows another positive result. Figure 2(d) shows a case when reduction in Expense is possible in early stage of the testing, even though the mean F’p is lower than the mean E’y with statistical significance. " class="figure-slide-image" src="https://figures.academia-assets.com/30740281/figure_003.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/36016541/table-1-flint-fault-localisation-using-information-theory"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740281/table_001.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/36016586/table-2-flint-fault-localisation-using-information-theory"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740281/table_002.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/36016598/table-4-statistical-analysis-for-precision-study-ps-and-pn"><img alt="Table 4: Statistical Analysis for Precision Study: PS and PN denote that FLINT achieves improvements over TCP with and without statistical significance, respectively. Similarly, NS and NN denote degenera- tion with and without statistical significance. EQ denotes that TCP and FLINT produces the same results. Excluding 37 faults that do not provide any room for improvement of suspiciousness (because 7 = 1.0 regardless of test ordering for these faults), FLINT achieves higher suspiciousness with statistical signifi- cance for 64% of faults (35 out of 55). However, this does not always translate into lower Expense, as can be seen from the results of the statistical hypothesis testing for Expense (Zz) due to inherent limitations in coverage-based suspiciousness metrics described in Section 2.2 and Section 5.3. " class="figure-slide-image" src="https://figures.academia-assets.com/30740281/table_003.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/36016602/figure-1-however-the-results-also-show-that-increment-of-the"><img alt="However, the results also show that increment of the suspiciousness metric may not always result in reduc- tion in Expense, as discussed in Section 2.2 and Section 5.3. In Figure 1(d), although 7p of fault F_HD_7 for version 1 of flex is higher with statistical significance than 77, FLINT fails to make reductions in Ex- pense. This means that, when considering the impact of FLINT on Expense reduction, we cannot exclude faults in EQ category. To answer RQ1, Table 4 and 5 provide evidence that FLINT achieves higher suspiciousness with statistical significance for 64% of studied faults for which there exist room for improvement. It produces lower suspiciousness with statistical significance for only 27% of the faults. " class="figure-slide-image" src="https://figures.academia-assets.com/30740281/table_004.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/36016608/table-6-statistical-analysis-for-robustness-study-ps-and-pn"><img alt="Table 6: Statistical Analysis for Robustness Study: PS and PN denote that FLINT achieves improvements over TCP with and without statistical significance, respectively. Similarly, NS and NN denote degenera- tion with and without statistical significance. EQ denotes that TCP and FLINT produces the same results. Excluding 24 faults that do not provide any room for improvement of suspiciousness (because 7 = 1.0 regardless of test ordering for these faults), FLINT achieves higher suspiciousness with statistical signifi- cance for 54% of faults (21 out of 39). However, as observed in the precision study, this does not always translate into lower Expense. " class="figure-slide-image" src="https://figures.academia-assets.com/30740281/table_005.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/36016617/table-6-flint-fault-localisation-using-information-theory"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740281/table_006.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/36016623/table-7-hypothesis-test-for-robustness-study"><img alt="Table 7: Hypothesis Test for Robustness Study " class="figure-slide-image" src="https://figures.academia-assets.com/30740281/table_007.jpg" /></a></figure></div><div class="next-slide-container js-next-button-container"><button aria-label="Next" class="carousel-navigation-button js-profile-work-2787579-figures-next"><span class="material-symbols-outlined" style="font-size: 24px" translate="no">arrow_forward_ios</span></button></div></div></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="44e678e39a21b1179feee69484f776a8" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30740281,"asset_id":2787579,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30740281/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787579"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787579"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787579; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787579]").text(description); $(".js-view-count[data-work-id=2787579]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787579; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787579']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "44e678e39a21b1179feee69484f776a8" } } $('.js-work-strip[data-work-id=2787579]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787579,"title":"FLINT: Fault Localisation using Information Theory","translated_title":"","metadata":{"abstract":"Abstract Test case prioritisation techniques aim to maximise the chance of fault detection as early in testing as possible. This is most commonly achieved by prioritising the tests according to a surrogate measure that is thought to correspond to fault detection capabilities, such as code coverage. However, once the prioritised test suite indeed detects a fault, the original prioritisation may become obsolete.","journal_name":"RN","publication_date":{"day":14,"month":3,"year":2011,"errors":{}}},"translated_abstract":"Abstract Test case prioritisation techniques aim to maximise the chance of fault detection as early in testing as possible. This is most commonly achieved by prioritising the tests according to a surrogate measure that is thought to correspond to fault detection capabilities, such as code coverage. However, once the prioritised test suite indeed detects a fault, the original prioritisation may become obsolete.","internal_url":"https://www.academia.edu/2787579/FLINT_Fault_Localisation_using_Information_Theory","translated_internal_url":"","created_at":"2013-03-03T14:48:39.165-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30740281,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"Yoo2011zr.pdf","download_url":"https://www.academia.edu/attachments/30740281/download_file","bulk_download_file_name":"FLINT_Fault_Localisation_using_Informati.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740281/Yoo2011zr-libre.pdf?1391800831=\u0026response-content-disposition=attachment%3B+filename%3DFLINT_Fault_Localisation_using_Informati.pdf\u0026Expires=1743457637\u0026Signature=OSWwGgSCWJlkUh7bAV8B~Ix1lBhjRPJHw6EzLU-iRNmkGk6UJLiDTgfGPer48aDcvvXMQ6ghPD8oEdD5MGvCaHTkvYSVfLgWnDW3ivFlOjmEtfeiLww0bfLNPLN0SmCVsysadSYK8xJr3wKYnmUP9XTeHWElpfOEUMZptEZQSKhIB3ibXod67om84Hid3Vl7I90XL0x5zwpA4RvADckkUSMgb6kajFAwNV~fcv9eEo3dxG3auRF-zvJw~nawDF0~2IZaKSSDTTMFaAYkYvuWgBlj9AuIvyIf9Tpue1woa7kYsUnmki1mX5jtA1ri9S0diYtpPzyfuRIEoGAoPvMenw__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"FLINT_Fault_Localisation_using_Information_Theory","translated_slug":"","page_count":18,"language":"en","content_type":"Work","summary":"Abstract Test case prioritisation techniques aim to maximise the chance of fault detection as early in testing as possible. This is most commonly achieved by prioritising the tests according to a surrogate measure that is thought to correspond to fault detection capabilities, such as code coverage. However, once the prioritised test suite indeed detects a fault, the original prioritisation may become obsolete.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30740281,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"Yoo2011zr.pdf","download_url":"https://www.academia.edu/attachments/30740281/download_file","bulk_download_file_name":"FLINT_Fault_Localisation_using_Informati.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740281/Yoo2011zr-libre.pdf?1391800831=\u0026response-content-disposition=attachment%3B+filename%3DFLINT_Fault_Localisation_using_Informati.pdf\u0026Expires=1743457637\u0026Signature=OSWwGgSCWJlkUh7bAV8B~Ix1lBhjRPJHw6EzLU-iRNmkGk6UJLiDTgfGPer48aDcvvXMQ6ghPD8oEdD5MGvCaHTkvYSVfLgWnDW3ivFlOjmEtfeiLww0bfLNPLN0SmCVsysadSYK8xJr3wKYnmUP9XTeHWElpfOEUMZptEZQSKhIB3ibXod67om84Hid3Vl7I90XL0x5zwpA4RvADckkUSMgb6kajFAwNV~fcv9eEo3dxG3auRF-zvJw~nawDF0~2IZaKSSDTTMFaAYkYvuWgBlj9AuIvyIf9Tpue1woa7kYsUnmki1mX5jtA1ri9S0diYtpPzyfuRIEoGAoPvMenw__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671157,"url":"http://www0.cs.ucl.ac.uk/staff/S.Yoo/papers/Yoo2011zr.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (true) { Aedu.setUpFigureCarousel('profile-work-2787579-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787578"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787578/Automated_session_data_repair_for_web_application_regression_testing"><img alt="Research paper thumbnail of Automated session data repair for web application regression testing" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787578/Automated_session_data_repair_for_web_application_regression_testing">Automated session data repair for web application regression testing</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract This paper introduces an approach to web application regression testing, based upon repa...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract This paper introduces an approach to web application regression testing, based upon repair of user session data. The approach is entirely automated. It consists of a white box examination of the structure of the changed web application to detect changes and a set of techniques to map these detected changes onto repair actions. The paper reports the results of experiments that explore both the performance and effectiveness of the approach.</span></div><div class="wp-workCard_item"><div class="carousel-container carousel-container--sm" id="profile-work-2787578-figures"><div class="prev-slide-container js-prev-button-container"><button aria-label="Previous" class="carousel-navigation-button js-profile-work-2787578-figures-prev"><span class="material-symbols-outlined" style="font-size: 24px" translate="no">arrow_back_ios</span></button></div><div class="slides-container js-slides-container"><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/44198502/figure-2-an-illustration-of-edge-deletion-repair-if-the-link"><img alt="Figure 2. An Illustration of Edge Deletion Repair. If the link from node 4 to node 5 is removed, but the nodes remain, then a new path must be found to navigate from node 4 to node 5. " class="figure-slide-image" src="https://figures.academia-assets.com/30740251/figure_001.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/44198510/figure-4-an-illustration-of-the-default-repair-operation"><img alt="Figure 4. An Illustration of the Default Repair Operation: When no path in the new structure can be found to navigate from node 4 to node 5, then the old session is split into two sub— sequences to which the repair algorithm is recursively applied. Figure 4. An Illustration of the Default Repair Operation: Figure 3. An Illustration of Node Deletion Repair. If a page (node 5 in this case) should be removed, then a new path must be found to navigate from its predecessor to its successor. " class="figure-slide-image" src="https://figures.academia-assets.com/30740251/figure_002.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/44198523/figure-3-automated-session-data-repair-for-web-application"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740251/figure_003.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/44198539/table-1-basic-data-on-web-application-evolution-the-on-line"><img alt="Table 1. Basic Data on Web Application Evolution. The on-line bookstore application evolved, through a series of changes according to a set of user requests for additional and changed functionality. The number of modified pages are those which retained their identity, but the content was modified. " class="figure-slide-image" src="https://figures.academia-assets.com/30740251/figure_004.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/44198558/figure-7-relationship-between-execution-time-and-number-of"><img alt="Figure 7. Relationship between Execution Time and Number of Sessions for Steps 1 and 4 of the Algorithm in Figure 1 are retained (though a proportion of these do become split). " class="figure-slide-image" src="https://figures.academia-assets.com/30740251/figure_005.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/44198588/figure-6-ure-shows-the-percentage-of-all-repair-actions"><img alt="ure shows the percentage (of all repair actions performed) that " class="figure-slide-image" src="https://figures.academia-assets.com/30740251/figure_006.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/44198611/figure-7-automated-session-data-repair-for-web-application"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740251/figure_007.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/44198625/table-1-automated-session-data-repair-for-web-application"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740251/table_001.jpg" /></a></figure></div><div class="next-slide-container js-next-button-container"><button aria-label="Next" class="carousel-navigation-button js-profile-work-2787578-figures-next"><span class="material-symbols-outlined" style="font-size: 24px" translate="no">arrow_forward_ios</span></button></div></div></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="9ca8afe3c1dde9d5bc0419222c8106a4" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30740251,"asset_id":2787578,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30740251/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787578"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787578"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787578; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787578]").text(description); $(".js-view-count[data-work-id=2787578]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787578; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787578']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "9ca8afe3c1dde9d5bc0419222c8106a4" } } $('.js-work-strip[data-work-id=2787578]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787578,"title":"Automated session data repair for web application regression testing","translated_title":"","metadata":{"abstract":"Abstract This paper introduces an approach to web application regression testing, based upon repair of user session data. The approach is entirely automated. It consists of a white box examination of the structure of the changed web application to detect changes and a set of techniques to map these detected changes onto repair actions. The paper reports the results of experiments that explore both the performance and effectiveness of the approach.","publication_date":{"day":9,"month":4,"year":2008,"errors":{}}},"translated_abstract":"Abstract This paper introduces an approach to web application regression testing, based upon repair of user session data. The approach is entirely automated. It consists of a white box examination of the structure of the changed web application to detect changes and a set of techniques to map these detected changes onto repair actions. The paper reports the results of experiments that explore both the performance and effectiveness of the approach.","internal_url":"https://www.academia.edu/2787578/Automated_session_data_repair_for_web_application_regression_testing","translated_internal_url":"","created_at":"2013-03-03T14:48:39.091-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30740251,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"icst08-testweb-harman.pdf","download_url":"https://www.academia.edu/attachments/30740251/download_file","bulk_download_file_name":"Automated_session_data_repair_for_web_ap.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740251/icst08-testweb-harman-libre.pdf?1391870973=\u0026response-content-disposition=attachment%3B+filename%3DAutomated_session_data_repair_for_web_ap.pdf\u0026Expires=1743457637\u0026Signature=d3WFChYlw3O5SWT0~Nn2SY0wvTGXrcoSUaeDHO4aVZIQ79GzZyW5Xmq-xg5DTJJSqZm3s0zeLndiNrlPa3FpXmxis~hPPy~-xoro87e-0r1uxAjOgpJL7hWXC0nJymPFZtl386-8QaWoPXIIbkWOt0ePSG1LVPLznvgP-Se66Si26fFiUMaHav2ZD8mg6z9pOhtM5o0NKmjPPDxnhCdseUwKSzQgPjAZ3TA~g5olYFcbHx0q47KlYuX16VTOQzH8pKU981C~RoJyJpovcSbBBzFiusWMYLHiPc52D1p1HH9AMvY~zlPz-f6wY3wCsxyHqKwWPnkNTreh59WTpNCFAA__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"Automated_session_data_repair_for_web_application_regression_testing","translated_slug":"","page_count":10,"language":"en","content_type":"Work","summary":"Abstract This paper introduces an approach to web application regression testing, based upon repair of user session data. The approach is entirely automated. It consists of a white box examination of the structure of the changed web application to detect changes and a set of techniques to map these detected changes onto repair actions. The paper reports the results of experiments that explore both the performance and effectiveness of the approach.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30740251,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"icst08-testweb-harman.pdf","download_url":"https://www.academia.edu/attachments/30740251/download_file","bulk_download_file_name":"Automated_session_data_repair_for_web_ap.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740251/icst08-testweb-harman-libre.pdf?1391870973=\u0026response-content-disposition=attachment%3B+filename%3DAutomated_session_data_repair_for_web_ap.pdf\u0026Expires=1743457637\u0026Signature=d3WFChYlw3O5SWT0~Nn2SY0wvTGXrcoSUaeDHO4aVZIQ79GzZyW5Xmq-xg5DTJJSqZm3s0zeLndiNrlPa3FpXmxis~hPPy~-xoro87e-0r1uxAjOgpJL7hWXC0nJymPFZtl386-8QaWoPXIIbkWOt0ePSG1LVPLznvgP-Se66Si26fFiUMaHav2ZD8mg6z9pOhtM5o0NKmjPPDxnhCdseUwKSzQgPjAZ3TA~g5olYFcbHx0q47KlYuX16VTOQzH8pKU981C~RoJyJpovcSbBBzFiusWMYLHiPc52D1p1HH9AMvY~zlPz-f6wY3wCsxyHqKwWPnkNTreh59WTpNCFAA__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671156,"url":"http://hiper.cis.udel.edu/lp/lib/exe/fetch.php/courses/icst08-testweb-harman.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (true) { Aedu.setUpFigureCarousel('profile-work-2787578-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787577"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787577/Getting_results_from_search_based_approaches_to_software_engineering"><img alt="Research paper thumbnail of Getting results from search-based approaches to software engineering" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787577/Getting_results_from_search_based_approaches_to_software_engineering">Getting results from search-based approaches to software engineering</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract Like other engineering disciplines, software engineering is typically concerned with nea...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract Like other engineering disciplines, software engineering is typically concerned with near optimal solutions or those which fall within a specified applicable tolerance. More recently, search-based techniques have started to find application in software engineering problem domains. This area of search-based software engineering has its origins in work on search-based testing, which began in the mid 1990s. Already, search-based solutions have been applied to software engineering problems right through the development life cycle.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="901e699ad003d9e4d8a80b118ca27e03" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30838819,"asset_id":2787577,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30838819/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787577"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787577"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787577; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787577]").text(description); $(".js-view-count[data-work-id=2787577]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787577; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787577']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "901e699ad003d9e4d8a80b118ca27e03" } } $('.js-work-strip[data-work-id=2787577]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787577,"title":"Getting results from search-based approaches to software engineering","translated_title":"","metadata":{"abstract":"Abstract Like other engineering disciplines, software engineering is typically concerned with near optimal solutions or those which fall within a specified applicable tolerance. More recently, search-based techniques have started to find application in software engineering problem domains. This area of search-based software engineering has its origins in work on search-based testing, which began in the mid 1990s. Already, search-based solutions have been applied to software engineering problems right through the development life cycle.","ai_title_tag":"Search-Based Techniques in Software Engineering","publication_date":{"day":23,"month":5,"year":2004,"errors":{}}},"translated_abstract":"Abstract Like other engineering disciplines, software engineering is typically concerned with near optimal solutions or those which fall within a specified applicable tolerance. More recently, search-based techniques have started to find application in software engineering problem domains. This area of search-based software engineering has its origins in work on search-based testing, which began in the mid 1990s. Already, search-based solutions have been applied to software engineering problems right through the development life cycle.","internal_url":"https://www.academia.edu/2787577/Getting_results_from_search_based_approaches_to_software_engineering","translated_internal_url":"","created_at":"2013-03-03T14:48:39.018-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30838819,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"instrumenting_programs_with_flag_variables_for_test_data_search_by.pdf","download_url":"https://www.academia.edu/attachments/30838819/download_file","bulk_download_file_name":"Getting_results_from_search_based_approa.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30838819/instrumenting_programs_with_flag_variables_for_test_data_search_by-libre.pdf?1390962952=\u0026response-content-disposition=attachment%3B+filename%3DGetting_results_from_search_based_approa.pdf\u0026Expires=1743457637\u0026Signature=PGUs~ghchVCmRPuQ2g1lXj4EOEEiDVNHBPchFoXnma3k7gVLyeR4n8kP0PQx41wQmLNds4erPFE2EAv6e~8vfTGStduyL1zw8yRtprMtqiJpZAacx88ctkRn4mqvqX-tG~GZ4teOY-bql8L9NFU8M9bYpwdop6KGRaIFUXHhrJ5kbm9Q68epJxKxZA6ukMu45Mty3fljxGxpzshzW3ECvWKIFzC0pyd-K-1PJc~DOJnzbk~eHQPOdX2nGhyTLCyRGVO8-zx3CPFtZqeYCulAyy~XojX0G6OK1iAkTPXwXJNL~1aqgxr0rFvJicyN8Ix4G3sT1WJou-uAButflQ51TA__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"Getting_results_from_search_based_approaches_to_software_engineering","translated_slug":"","page_count":2,"language":"en","content_type":"Work","summary":"Abstract Like other engineering disciplines, software engineering is typically concerned with near optimal solutions or those which fall within a specified applicable tolerance. More recently, search-based techniques have started to find application in software engineering problem domains. This area of search-based software engineering has its origins in work on search-based testing, which began in the mid 1990s. Already, search-based solutions have been applied to software engineering problems right through the development life cycle.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30838819,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"instrumenting_programs_with_flag_variables_for_test_data_search_by.pdf","download_url":"https://www.academia.edu/attachments/30838819/download_file","bulk_download_file_name":"Getting_results_from_search_based_approa.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30838819/instrumenting_programs_with_flag_variables_for_test_data_search_by-libre.pdf?1390962952=\u0026response-content-disposition=attachment%3B+filename%3DGetting_results_from_search_based_approa.pdf\u0026Expires=1743457637\u0026Signature=PGUs~ghchVCmRPuQ2g1lXj4EOEEiDVNHBPchFoXnma3k7gVLyeR4n8kP0PQx41wQmLNds4erPFE2EAv6e~8vfTGStduyL1zw8yRtprMtqiJpZAacx88ctkRn4mqvqX-tG~GZ4teOY-bql8L9NFU8M9bYpwdop6KGRaIFUXHhrJ5kbm9Q68epJxKxZA6ukMu45Mty3fljxGxpzshzW3ECvWKIFzC0pyd-K-1PJc~DOJnzbk~eHQPOdX2nGhyTLCyRGVO8-zx3CPFtZqeYCulAyy~XojX0G6OK1iAkTPXwXJNL~1aqgxr0rFvJicyN8Ix4G3sT1WJou-uAButflQ51TA__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671155,"url":"http://pdf.aminer.org/000/225/602/instrumenting_programs_with_flag_variables_for_test_data_search_by.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787577-figures'); } }); </script> </div><div class="profile--tab_content_container js-tab-pane tab-pane" data-section-id="44877" id="papers"><div class="js-work-strip profile--work_container" data-work-id="2787597"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" rel="nofollow" href="https://www.academia.edu/2787597/A_post_placement_side_effect_removal_algorithm"><img alt="Research paper thumbnail of A post-placement side-effect removal algorithm" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title">A post-placement side-effect removal algorithm</div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract Side-effects are widely believed to impede program comprehension and have a detrimental ...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract Side-effects are widely believed to impede program comprehension and have a detrimental effect upon software maintenance. This paper introduces an algorithm for side-effect removal which splits the side-effects into their pure expression meaning and their state-changing meaning. Symbolic execution is used to determine the expression meaning, while transformation is used to place the state-changing part in a suitable location in a transformed version of the program.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787597"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787597"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787597; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787597]").text(description); $(".js-view-count[data-work-id=2787597]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787597; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787597']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (false){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "-1" } } $('.js-work-strip[data-work-id=2787597]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787597,"title":"A post-placement side-effect removal algorithm","translated_title":"","metadata":{"abstract":"Abstract Side-effects are widely believed to impede program comprehension and have a detrimental effect upon software maintenance. This paper introduces an algorithm for side-effect removal which splits the side-effects into their pure expression meaning and their state-changing meaning. Symbolic execution is used to determine the expression meaning, while transformation is used to place the state-changing part in a suitable location in a transformed version of the program.","publication_date":{"day":null,"month":null,"year":2002,"errors":{}}},"translated_abstract":"Abstract Side-effects are widely believed to impede program comprehension and have a detrimental effect upon software maintenance. This paper introduces an algorithm for side-effect removal which splits the side-effects into their pure expression meaning and their state-changing meaning. Symbolic execution is used to determine the expression meaning, while transformation is used to place the state-changing part in a suitable location in a transformed version of the program.","internal_url":"https://www.academia.edu/2787597/A_post_placement_side_effect_removal_algorithm","translated_internal_url":"","created_at":"2013-03-03T14:48:40.487-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[],"slug":"A_post_placement_side_effect_removal_algorithm","translated_slug":"","page_count":null,"language":"en","content_type":"Work","summary":"Abstract Side-effects are widely believed to impede program comprehension and have a detrimental effect upon software maintenance. This paper introduces an algorithm for side-effect removal which splits the side-effects into their pure expression meaning and their state-changing meaning. Symbolic execution is used to determine the expression meaning, while transformation is used to place the state-changing part in a suitable location in a transformed version of the program.","impression_tracking_id":null,"owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[],"research_interests":[],"urls":[{"id":671175,"url":"http://bura.brunel.ac.uk/bitstream/2438/3394/3/A%20post-placement%20side-effect%20removal%20algorithm.pdf.txt"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787597-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787596"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787596/Measuring_and_improving_latency_to_avoid_test_suite_wear_out"><img alt="Research paper thumbnail of Measuring and improving latency to avoid test suite wear out" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787596/Measuring_and_improving_latency_to_avoid_test_suite_wear_out">Measuring and improving latency to avoid test suite wear out</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract This paper introduces the concept of test suite latency. The more latent a test suite, t...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract This paper introduces the concept of test suite latency. The more latent a test suite, the more it is possible to repeatedly select subsets that achieve a test goal (such as coverage) without re-applying test cases. Where a test case is re-applied it cannot reveal new information. The more a test suite is forced to re-apply already applied test cases in order to achieve the test goal, the more it has becomeworn out'. Test suite latency is the flipside of wear out; the more latent a test suite, the less prone it is to wear out.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="e22a62e6cfc211aeae83750273253a2a" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30740350,"asset_id":2787596,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30740350/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787596"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787596"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787596; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787596]").text(description); $(".js-view-count[data-work-id=2787596]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787596; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787596']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "e22a62e6cfc211aeae83750273253a2a" } } $('.js-work-strip[data-work-id=2787596]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787596,"title":"Measuring and improving latency to avoid test suite wear out","translated_title":"","metadata":{"abstract":"Abstract This paper introduces the concept of test suite latency. The more latent a test suite, the more it is possible to repeatedly select subsets that achieve a test goal (such as coverage) without re-applying test cases. Where a test case is re-applied it cannot reveal new information. The more a test suite is forced to re-apply already applied test cases in order to achieve the test goal, the more it has becomeworn out'. Test suite latency is the flipside of wear out; the more latent a test suite, the less prone it is to wear out.","ai_title_tag":"Mitigating Test Suite Latency and Wear Out","publication_date":{"day":1,"month":4,"year":2009,"errors":{}}},"translated_abstract":"Abstract This paper introduces the concept of test suite latency. The more latent a test suite, the more it is possible to repeatedly select subsets that achieve a test goal (such as coverage) without re-applying test cases. Where a test case is re-applied it cannot reveal new information. The more a test suite is forced to re-apply already applied test cases in order to achieve the test goal, the more it has becomeworn out'. Test suite latency is the flipside of wear out; the more latent a test suite, the less prone it is to wear out.","internal_url":"https://www.academia.edu/2787596/Measuring_and_improving_latency_to_avoid_test_suite_wear_out","translated_internal_url":"","created_at":"2013-03-03T14:48:40.411-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30740350,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"Yoo2009it.pdf","download_url":"https://www.academia.edu/attachments/30740350/download_file","bulk_download_file_name":"Measuring_and_improving_latency_to_avoid.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740350/Yoo2009it-libre.pdf?1392108064=\u0026response-content-disposition=attachment%3B+filename%3DMeasuring_and_improving_latency_to_avoid.pdf\u0026Expires=1743457636\u0026Signature=etECx3QGGOWk2Yca1HvT15NNSDYrFia5mp3XadlesYwI9oZgbvHIoipVqNa2gREoM2s2PjpDaGyPIrvarvZYpE8dQZpjT8AYUPYa0VhJgXRCML7eHZSpQEYJZjdrA~tjnL79snvhBFBC1O08dkEy1e1S8SN302xRIQVw4rfelIcNXoXuBATa~cPK~BUWBGm4FIvjF4cILJN8-LOsMMMu7qxzhvtaxynl5QF~fxcG2uK6roLcLn61fzHxJ9wiu1jYBjJj12BwrhvYwxThrYz-WbtLphUEA9mxYfGyFR6ryrO57z7EwMQtc1tC5yFlEg7LQxIR1wlv3TO9OpAf0Ox3Vg__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"Measuring_and_improving_latency_to_avoid_test_suite_wear_out","translated_slug":"","page_count":10,"language":"en","content_type":"Work","summary":"Abstract This paper introduces the concept of test suite latency. The more latent a test suite, the more it is possible to repeatedly select subsets that achieve a test goal (such as coverage) without re-applying test cases. Where a test case is re-applied it cannot reveal new information. The more a test suite is forced to re-apply already applied test cases in order to achieve the test goal, the more it has becomeworn out'. Test suite latency is the flipside of wear out; the more latent a test suite, the less prone it is to wear out.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30740350,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"Yoo2009it.pdf","download_url":"https://www.academia.edu/attachments/30740350/download_file","bulk_download_file_name":"Measuring_and_improving_latency_to_avoid.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740350/Yoo2009it-libre.pdf?1392108064=\u0026response-content-disposition=attachment%3B+filename%3DMeasuring_and_improving_latency_to_avoid.pdf\u0026Expires=1743457636\u0026Signature=etECx3QGGOWk2Yca1HvT15NNSDYrFia5mp3XadlesYwI9oZgbvHIoipVqNa2gREoM2s2PjpDaGyPIrvarvZYpE8dQZpjT8AYUPYa0VhJgXRCML7eHZSpQEYJZjdrA~tjnL79snvhBFBC1O08dkEy1e1S8SN302xRIQVw4rfelIcNXoXuBATa~cPK~BUWBGm4FIvjF4cILJN8-LOsMMMu7qxzhvtaxynl5QF~fxcG2uK6roLcLn61fzHxJ9wiu1jYBjJj12BwrhvYwxThrYz-WbtLphUEA9mxYfGyFR6ryrO57z7EwMQtc1tC5yFlEg7LQxIR1wlv3TO9OpAf0Ox3Vg__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671174,"url":"http://www0.cs.ucl.ac.uk/staff/s.yoo/papers/Yoo2009it.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787596-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787595"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" rel="nofollow" href="https://www.academia.edu/2787595/Efficient_multi_objective_higher_order_mutation_testing_with_genetic_programming"><img alt="Research paper thumbnail of Efficient multi-objective higher order mutation testing with genetic programming" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title">Efficient multi-objective higher order mutation testing with genetic programming</div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">It is said 90% of faults that survive manufacturer's testing procedures are complex. That is, the...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">It is said 90% of faults that survive manufacturer's testing procedures are complex. That is, the corresponding bug fix contains multiple changes. Higher order mutation testing is used to study defect interactions and their impact on software testing for fault finding. We adopt a multi-objective Pareto optimal approach using Monte Carlo sampling, genetic algorithms and genetic programming to search for higher order mutants which are both hard-to-kill and realistic.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787595"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787595"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787595; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787595]").text(description); $(".js-view-count[data-work-id=2787595]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787595; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787595']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (false){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "-1" } } $('.js-work-strip[data-work-id=2787595]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787595,"title":"Efficient multi-objective higher order mutation testing with genetic programming","translated_title":"","metadata":{"abstract":"It is said 90% of faults that survive manufacturer's testing procedures are complex. That is, the corresponding bug fix contains multiple changes. Higher order mutation testing is used to study defect interactions and their impact on software testing for fault finding. We adopt a multi-objective Pareto optimal approach using Monte Carlo sampling, genetic algorithms and genetic programming to search for higher order mutants which are both hard-to-kill and realistic.","journal_name":"Journal of systems and Software","publication_date":{"day":31,"month":12,"year":2010,"errors":{}}},"translated_abstract":"It is said 90% of faults that survive manufacturer's testing procedures are complex. That is, the corresponding bug fix contains multiple changes. Higher order mutation testing is used to study defect interactions and their impact on software testing for fault finding. We adopt a multi-objective Pareto optimal approach using Monte Carlo sampling, genetic algorithms and genetic programming to search for higher order mutants which are both hard-to-kill and realistic.","internal_url":"https://www.academia.edu/2787595/Efficient_multi_objective_higher_order_mutation_testing_with_genetic_programming","translated_internal_url":"","created_at":"2013-03-03T14:48:40.337-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[],"slug":"Efficient_multi_objective_higher_order_mutation_testing_with_genetic_programming","translated_slug":"","page_count":null,"language":"en","content_type":"Work","summary":"It is said 90% of faults that survive manufacturer's testing procedures are complex. That is, the corresponding bug fix contains multiple changes. Higher order mutation testing is used to study defect interactions and their impact on software testing for fault finding. We adopt a multi-objective Pareto optimal approach using Monte Carlo sampling, genetic algorithms and genetic programming to search for higher order mutants which are both hard-to-kill and realistic.","impression_tracking_id":null,"owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[],"research_interests":[],"urls":[{"id":671173,"url":"http://www0.cs.ucl.ac.uk/staff/ucacbbl/ftp/papers/langdon_jss.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787595-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787594"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787594/Testing_and_verification_in_service_oriented_architecture_a_survey"><img alt="Research paper thumbnail of Testing and verification in service‐oriented architecture: a survey" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787594/Testing_and_verification_in_service_oriented_architecture_a_survey">Testing and verification in service‐oriented architecture: a survey</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">SUMMARY Service-oriented architecture (SOA) is gaining momentum as an emerging distributed system...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">SUMMARY Service-oriented architecture (SOA) is gaining momentum as an emerging distributed system architecture for business-to-business collaborations. This momentum can be observed in both industry and academic research. SOA presents new challenges and opportunities for testing and verification, leading to an upsurge in research.</span></div><div class="wp-workCard_item"><div class="carousel-container carousel-container--sm" id="profile-work-2787594-figures"><div class="prev-slide-container js-prev-button-container"><button aria-label="Previous" class="carousel-navigation-button js-profile-work-2787594-figures-prev"><span class="material-symbols-outlined" style="font-size: 24px" translate="no">arrow_back_ios</span></button></div><div class="slides-container js-slides-container"><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/24387005/figure-1-testing-and-verification-in-serviceoriented"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740343/figure_001.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/24387008/figure-3-publication-trends-of-testing-methodologies-applied"><img alt="Figure 3. Publication trends of testing methodologies applied to ScST Analysis of the academic work in Figure 2 and Figure 3 do not yield results similar to Bloomberg’s analysis. For example, in the 2002-2003 period 5 publications on formal verification, 1 on test data generation, 1 on integration, 1 on QoS and 1 on collaborative testing were published. In academic research, the first work using unit testing appeared in " class="figure-slide-image" src="https://figures.academia-assets.com/30740343/figure_002.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/24387011/figure-4-this-highlights-one-of-the-great-problems-in-scst"><img alt="This figure highlights one of the great problems in ScST research; lack of real-world case studies. Unfortunately, 71% of the research publications provide no experimental results. The synthetic service portion of the graph mainly includes approaches for testing BPEL compositions. The most common examples are the loan approval and the travel agency (travel booking) systems that are provided with BPEL engines. There are also experiments on existing Java code that are turned into services such as javaDNS, JNFS and Haboob. The real services used in experiments are generally existing small public services that can be found on the internet. There are four experiments performed on existing projects such as government projects, Mars communication service and an HR system. Figure 4. Distribution of case study types used in experimental validation. Number with the circle indicate absolute number of papers. " class="figure-slide-image" src="https://figures.academia-assets.com/30740343/figure_003.jpg" /></a></figure></div><div class="next-slide-container js-next-button-container"><button aria-label="Next" class="carousel-navigation-button js-profile-work-2787594-figures-next"><span class="material-symbols-outlined" style="font-size: 24px" translate="no">arrow_forward_ios</span></button></div></div></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="28b73cfb4d20518683ea7eba1177eca7" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30740343,"asset_id":2787594,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30740343/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787594"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787594"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787594; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787594]").text(description); $(".js-view-count[data-work-id=2787594]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787594; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787594']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "28b73cfb4d20518683ea7eba1177eca7" } } $('.js-work-strip[data-work-id=2787594]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787594,"title":"Testing and verification in service‐oriented architecture: a survey","translated_title":"","metadata":{"abstract":"SUMMARY Service-oriented architecture (SOA) is gaining momentum as an emerging distributed system architecture for business-to-business collaborations. This momentum can be observed in both industry and academic research. SOA presents new challenges and opportunities for testing and verification, leading to an upsurge in research.","ai_title_tag":"Survey of Testing in Service-Oriented Architecture","journal_name":"Software Testing, Verification and Reliability","publication_date":{"day":null,"month":null,"year":2009,"errors":{}}},"translated_abstract":"SUMMARY Service-oriented architecture (SOA) is gaining momentum as an emerging distributed system architecture for business-to-business collaborations. This momentum can be observed in both industry and academic research. SOA presents new challenges and opportunities for testing and verification, leading to an upsurge in research.","internal_url":"https://www.academia.edu/2787594/Testing_and_verification_in_service_oriented_architecture_a_survey","translated_internal_url":"","created_at":"2013-03-03T14:48:40.264-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30740343,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"Bozkurt_Harman_Hassoun_Testing_Verification_In_SOA_A_Survey.pdf","download_url":"https://www.academia.edu/attachments/30740343/download_file","bulk_download_file_name":"Testing_and_verification_in_service_orie.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740343/Bozkurt_Harman_Hassoun_Testing_Verification_In_SOA_A_Survey-libre.pdf?1392098123=\u0026response-content-disposition=attachment%3B+filename%3DTesting_and_verification_in_service_orie.pdf\u0026Expires=1744178956\u0026Signature=CAf3Xjub4EkB7Ti1029aUszdko7TJfEbjUeEA80~erJdjxGg2ZP3Wi9J7bwMVM-bHRtIZ1~E87PAo6AqtT9iIlzezylGN~CycJiZbOWlrdNCnWTwC8E5iBQ3CPVkcGeQ4GE2~ST3OMObkyD5u3lTzEUr2kQXY~-exgkgQv6KMaHra33knwHupFxJwk7wJYTpQs3~SSZBl3RfeW~Loue1oYTikX8wUpZByJjnskgh7odBvjhpux5mIwL1DawtS7r6CRmI9UQnUFLZr-iAT6DEIKCLPHlZyILj3iB6ZHtu9jalZYo~UkVDQmcxmTs0pmCqb7ocHVUULHiRjGDFcaL9XA__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"Testing_and_verification_in_service_oriented_architecture_a_survey","translated_slug":"","page_count":67,"language":"en","content_type":"Work","summary":"SUMMARY Service-oriented architecture (SOA) is gaining momentum as an emerging distributed system architecture for business-to-business collaborations. This momentum can be observed in both industry and academic research. SOA presents new challenges and opportunities for testing and verification, leading to an upsurge in research.","impression_tracking_id":null,"owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30740343,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"Bozkurt_Harman_Hassoun_Testing_Verification_In_SOA_A_Survey.pdf","download_url":"https://www.academia.edu/attachments/30740343/download_file","bulk_download_file_name":"Testing_and_verification_in_service_orie.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740343/Bozkurt_Harman_Hassoun_Testing_Verification_In_SOA_A_Survey-libre.pdf?1392098123=\u0026response-content-disposition=attachment%3B+filename%3DTesting_and_verification_in_service_orie.pdf\u0026Expires=1744178956\u0026Signature=CAf3Xjub4EkB7Ti1029aUszdko7TJfEbjUeEA80~erJdjxGg2ZP3Wi9J7bwMVM-bHRtIZ1~E87PAo6AqtT9iIlzezylGN~CycJiZbOWlrdNCnWTwC8E5iBQ3CPVkcGeQ4GE2~ST3OMObkyD5u3lTzEUr2kQXY~-exgkgQv6KMaHra33knwHupFxJwk7wJYTpQs3~SSZBl3RfeW~Loue1oYTikX8wUpZByJjnskgh7odBvjhpux5mIwL1DawtS7r6CRmI9UQnUFLZr-iAT6DEIKCLPHlZyILj3iB6ZHtu9jalZYo~UkVDQmcxmTs0pmCqb7ocHVUULHiRjGDFcaL9XA__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671172,"url":"http://www0.cs.ucl.ac.uk/staff/M.Bozkurt/files/pdf/Bozkurt_Harman_Hassoun_Testing_Verification_In_SOA_A_Survey.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (true) { Aedu.setUpFigureCarousel('profile-work-2787594-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787593"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787593/_Fairness_Analysis_in_Requirements_Assignments"><img alt="Research paper thumbnail of “Fairness Analysis” in Requirements Assignments" class="work-thumbnail" src="https://attachments.academia-assets.com/30889749/thumbnails/1.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787593/_Fairness_Analysis_in_Requirements_Assignments">“Fairness Analysis” in Requirements Assignments</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract Requirements engineering for multiple customers, each of whom have competing and often c...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract Requirements engineering for multiple customers, each of whom have competing and often conflicting priorities, raises issues of negotiation, mediation and conflict resolution. This paper uses a multi-objective optimisation approach to support investigation of the trade-offs in various notions of fairness between multiple customers. Results are presented to validate the approach using two real-world data sets and also using data sets created specifically to stress test the approach.</span></div><div class="wp-workCard_item"><div class="carousel-container carousel-container--sm" id="profile-work-2787593-figures"><div class="prev-slide-container js-prev-button-container"><button aria-label="Previous" class="carousel-navigation-button js-profile-work-2787593-figures-prev"><span class="material-symbols-outlined" style="font-size: 24px" translate="no">arrow_back_ios</span></button></div><div class="slides-container js-slides-container"><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/40741999/figure-1-it-is-assumed-that-not-all-requirements-are-equally"><img alt="It is assumed that not all requirements are equally important for a given customer. The level of satisfaction for a given customer depends on the requirements that are satisfied in the next release of the software, which provide value to the customers’ organizations. Each customer cj(1 < 7 < m) assigns a value to require- ment r;(1 < i < n) denoted by: valwe(r;,c;) where value(r;,c;) > 0 if customer j desires implementation of the requirement 2 and 0 otherwise. Each customer c; has therefore, a subset of requirements that they expect to be satisfied denoted by R; " class="figure-slide-image" src="https://figures.academia-assets.com/30889749/figure_001.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/40742009/figure-2-experimental-set-up"><img alt="4 Experimental Set Up " class="figure-slide-image" src="https://figures.academia-assets.com/30889749/figure_002.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/40742018/figure-1-results-of-fairness-on-absolute-number-of-fulfilled"><img alt="Figure 1: Results of Fairness on Absolute Number of Fulfilled Requirements " class="figure-slide-image" src="https://figures.academia-assets.com/30889749/figure_003.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/40742027/figure-4-fairness-analysis-in-requirements-assignments"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30889749/figure_004.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/40742039/figure-5-fairness-analysis-in-requirements-assignments"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30889749/figure_005.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/40742049/figure-6-fairness-analysis-in-requirements-assignments"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30889749/figure_006.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/40742058/table-1-fairness-analysis-in-requirements-assignments"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30889749/table_001.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/40742069/table-2-fairness-analysis-in-requirements-assignments"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30889749/table_002.jpg" /></a></figure></div><div class="next-slide-container js-next-button-container"><button aria-label="Next" class="carousel-navigation-button js-profile-work-2787593-figures-next"><span class="material-symbols-outlined" style="font-size: 24px" translate="no">arrow_forward_ios</span></button></div></div></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="f0c8cb56d6057503e70b282d0522602b" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30889749,"asset_id":2787593,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30889749/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787593"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787593"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787593; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787593]").text(description); $(".js-view-count[data-work-id=2787593]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787593; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787593']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "f0c8cb56d6057503e70b282d0522602b" } } $('.js-work-strip[data-work-id=2787593]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787593,"title":"“Fairness Analysis” in Requirements Assignments","translated_title":"","metadata":{"abstract":"Abstract Requirements engineering for multiple customers, each of whom have competing and often conflicting priorities, raises issues of negotiation, mediation and conflict resolution. This paper uses a multi-objective optimisation approach to support investigation of the trade-offs in various notions of fairness between multiple customers. Results are presented to validate the approach using two real-world data sets and also using data sets created specifically to stress test the approach.","ai_title_tag":"Multi-Objective Fairness in Requirements","publication_date":{"day":8,"month":9,"year":2008,"errors":{}}},"translated_abstract":"Abstract Requirements engineering for multiple customers, each of whom have competing and often conflicting priorities, raises issues of negotiation, mediation and conflict resolution. This paper uses a multi-objective optimisation approach to support investigation of the trade-offs in various notions of fairness between multiple customers. Results are presented to validate the approach using two real-world data sets and also using data sets created specifically to stress test the approach.","internal_url":"https://www.academia.edu/2787593/_Fairness_Analysis_in_Requirements_Assignments","translated_internal_url":"","created_at":"2013-03-03T14:48:40.198-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30889749,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://attachments.academia-assets.com/30889749/thumbnails/1.jpg","file_name":"fair.pdf","download_url":"https://www.academia.edu/attachments/30889749/download_file","bulk_download_file_name":"Fairness_Analysis_in_Requirements_Assig.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30889749/fair-libre.pdf?1392169744=\u0026response-content-disposition=attachment%3B+filename%3DFairness_Analysis_in_Requirements_Assig.pdf\u0026Expires=1743457636\u0026Signature=YzmaqaAzKpPCs2kkFT7uIN0380XAchLz8jLvckfl5IKz34T3jQJqoPJ-~9jAyAZBbcJU3Sj9Nmc4BoJJwdKcMXTklAcTHfEJWw8Ebqznf2y58Ks77IwMZDaUn5GoAVOzziQzM45HkM~i4S5bGI0KiroaJmMeiOxGl5GgA5lXlEGDK8zIMRssTQw7BNNc3CkmFTEHUSKOF-6HTWl2GRgDnoPoIBsi330NZoo2HCoBnGKx89N8lhtXXqpsZO7vsLpf2N2BL0Ju9fIaMmBvm44QZNrH1rvvhhMSxBnMRJiOmvAJGGtXXi~g~B9ileLDx7tFFNFbgBIMNDiI5SgqSha4aQ__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"_Fairness_Analysis_in_Requirements_Assignments","translated_slug":"","page_count":10,"language":"en","content_type":"Work","summary":"Abstract Requirements engineering for multiple customers, each of whom have competing and often conflicting priorities, raises issues of negotiation, mediation and conflict resolution. This paper uses a multi-objective optimisation approach to support investigation of the trade-offs in various notions of fairness between multiple customers. Results are presented to validate the approach using two real-world data sets and also using data sets created specifically to stress test the approach.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30889749,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://attachments.academia-assets.com/30889749/thumbnails/1.jpg","file_name":"fair.pdf","download_url":"https://www.academia.edu/attachments/30889749/download_file","bulk_download_file_name":"Fairness_Analysis_in_Requirements_Assig.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30889749/fair-libre.pdf?1392169744=\u0026response-content-disposition=attachment%3B+filename%3DFairness_Analysis_in_Requirements_Assig.pdf\u0026Expires=1743457636\u0026Signature=YzmaqaAzKpPCs2kkFT7uIN0380XAchLz8jLvckfl5IKz34T3jQJqoPJ-~9jAyAZBbcJU3Sj9Nmc4BoJJwdKcMXTklAcTHfEJWw8Ebqznf2y58Ks77IwMZDaUn5GoAVOzziQzM45HkM~i4S5bGI0KiroaJmMeiOxGl5GgA5lXlEGDK8zIMRssTQw7BNNc3CkmFTEHUSKOF-6HTWl2GRgDnoPoIBsi330NZoo2HCoBnGKx89N8lhtXXqpsZO7vsLpf2N2BL0Ju9fIaMmBvm44QZNrH1rvvhhMSxBnMRJiOmvAJGGtXXi~g~B9ileLDx7tFFNFbgBIMNDiI5SgqSha4aQ__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671171,"url":"http://www0.cs.ucl.ac.uk/staff/A.Finkelstein/papers/fair.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (true) { Aedu.setUpFigureCarousel('profile-work-2787593-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787592"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787592/Generic_Software_Subgraph_Isomorphism"><img alt="Research paper thumbnail of Generic Software Subgraph Isomorphism" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787592/Generic_Software_Subgraph_Isomorphism">Generic Software Subgraph Isomorphism</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract. The omnipresence of software graphs as useful intermediate representations means that t...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract. The omnipresence of software graphs as useful intermediate representations means that the identification of near-match subgraphs (Error-Correcting Subgraph Isomorphism) has diverse and widespread applications in software engineering, such as querying, clone detection and model checking. Each software engineering subarea has developed specific tailored approaches to subgraph isomorphism, thereby reducing comparability and generality, and potentially yielding sub-optimal results.</span></div><div class="wp-workCard_item"><div class="carousel-container carousel-container--sm" id="profile-work-2787592-figures"><div class="prev-slide-container js-prev-button-container"><button aria-label="Previous" class="carousel-navigation-button js-profile-work-2787592-figures-prev"><span class="material-symbols-outlined" style="font-size: 24px" translate="no">arrow_back_ios</span></button></div><div class="slides-container js-slides-container"><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539068/figure-1-generic-software-subgraph-isomorphism"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_001.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539069/figure-2-generic-software-subgraph-isomorphism"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_002.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539070/figure-3-generic-software-subgraph-isomorphism"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_003.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539071/figure-1-overview-of-the-experiment"><img alt="Fig. 1. Overview of the experiment " class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_004.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539072/figure-3-aggregated-weights-of-groups-the-weight-of-groups"><img alt="Fig. 3. Aggregated weights of groups The weight of groups was aggregated from all four projects and weighted with the size of the learning set. Two aspects were created to examine the validity of the weights calculated by the Ga. " class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_005.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539073/figure-2-fitness-values-of-prediction-per-project-fitness"><img alt="Fig. 2. Fitness values of prediction per project Table 2. Fitness values of prediction per project base model 59,8000% 47,0000% 44,2000% 45,3000% enhanced model 75,2630% 66,6425% 67,4835% 60,2791% " class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_006.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539074/figure-1-sequence-generation-by-iteratively-selecting-from"><img alt="Fig. 1. Sequence generation by iteratively selecting from the set of currently available actions. The ultimate goal is to crash the SUT. (Not all possible actions are displayed in order to preserve clarity) " class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_007.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539075/figure-1-example-service-composition-simulation-and-the"><img alt="Fig. 1. Example service composition simulation and the results from the test suite execution The table depicts test cases in the suite with their reliability, branch coverage and execution cost calculated. For the given test suite (T1,...,T6) it is expected that test cases T1 and T2 will be eliminated to get the optimal test suite (T3,T4,T5,T6) which achieves 100% coverage with lowest cost and highest reliability. " class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_008.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539076/figure-1-iterative-hierarchy-generation-in-bunch-each-part"><img alt="Fig. 1. Iterative hierarchy generation in Bunch; each part is a search, from the bottom level in part (a) to the top level in part (f) Module dependency graphs (MDGs) represent the files or classes in a system as nodes in a graph, edges represent references between files. Bunch [7] modularises the files in an MDG using a hill climber to locate the most appropriate assign- ment of modules. The assignment is evaluated by the “Modularisation Quality” fitness function, which is based on the ratio of edges within a cluster to edges leaving or entering it for each cluster [5]. " class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_009.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539077/figure-2-violin-plot-and-density-plot-of-normalised-mq"><img alt="Fig. 2. Violin plot and density plot of normalised MQ values, N = 900 " class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_010.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539078/figure-4-mutants-with-higher-mean-mq-values-parallel"><img alt="Fig.4. Mutants with higher Mean MQ values Fig. 5. Parallel coordinate plot for 150 mutants " class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_011.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539079/figure-12-generic-software-subgraph-isomorphism"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_012.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539080/figure-1-user-interaction-workflow-of-our-tool-for-search"><img alt="Fig. 1. User interaction workflow of our tool for search-based testing of SL models " class="figure-slide-image" src="https://figures.academia-assets.com/30740329/figure_013.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539081/table-1-generic-software-subgraph-isomorphism"><img alt="Table 1. GA parameters " class="figure-slide-image" src="https://figures.academia-assets.com/30740329/table_001.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539082/table-2-comparison-of-the-number-of-generations-iterations"><img alt="Table 2. Comparison of the Number of Generations / Iterations required. " class="figure-slide-image" src="https://figures.academia-assets.com/30740329/table_002.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/1539083/table-1-comparison-of-mean-best-coupling-fcgo"><img alt="Table 1. Comparison of Mean Best Coupling ( fcgo). " class="figure-slide-image" src="https://figures.academia-assets.com/30740329/table_003.jpg" /></a></figure></div><div class="next-slide-container js-next-button-container"><button aria-label="Next" class="carousel-navigation-button js-profile-work-2787592-figures-next"><span class="material-symbols-outlined" style="font-size: 24px" translate="no">arrow_forward_ios</span></button></div></div></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="c7f8f64df4e06608990e22c0c5aa9111" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30740329,"asset_id":2787592,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30740329/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787592"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787592"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787592; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787592]").text(description); $(".js-view-count[data-work-id=2787592]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787592; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787592']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "c7f8f64df4e06608990e22c0c5aa9111" } } $('.js-work-strip[data-work-id=2787592]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787592,"title":"Generic Software Subgraph Isomorphism","translated_title":"","metadata":{"abstract":"Abstract. The omnipresence of software graphs as useful intermediate representations means that the identification of near-match subgraphs (Error-Correcting Subgraph Isomorphism) has diverse and widespread applications in software engineering, such as querying, clone detection and model checking. Each software engineering subarea has developed specific tailored approaches to subgraph isomorphism, thereby reducing comparability and generality, and potentially yielding sub-optimal results.","journal_name":"4 th Symposium on Search Based-Software Engineering","publication_date":{"day":28,"month":9,"year":2012,"errors":{}}},"translated_abstract":"Abstract. The omnipresence of software graphs as useful intermediate representations means that the identification of near-match subgraphs (Error-Correcting Subgraph Isomorphism) has diverse and widespread applications in software engineering, such as querying, clone detection and model checking. Each software engineering subarea has developed specific tailored approaches to subgraph isomorphism, thereby reducing comparability and generality, and potentially yielding sub-optimal results.","internal_url":"https://www.academia.edu/2787592/Generic_Software_Subgraph_Isomorphism","translated_internal_url":"","created_at":"2013-03-03T14:48:40.125-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30740329,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"SSBSE_2012_Fast_Abstracts.pdf","download_url":"https://www.academia.edu/attachments/30740329/download_file","bulk_download_file_name":"Generic_Software_Subgraph_Isomorphism.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740329/SSBSE_2012_Fast_Abstracts-libre.pdf?1363448501=\u0026response-content-disposition=attachment%3B+filename%3DGeneric_Software_Subgraph_Isomorphism.pdf\u0026Expires=1743457636\u0026Signature=J2yWHuMu9-ButigCorforZhGxyXKCwERyF-xsiRKPwXniDBySk1OJksf3vHaYpM6QOzEI-~0989rRwWlbtWz5farT6CveXmlVvpBnGblyTmV2Eh9-RQcI6Si4~QCzHuEMueZrFWMFklk2d3LnBaH5h94MwGYt4Ovd89XVuMo1FtaZA~U8Lp7ll9AN2X2xprZyduVcCqcOTPbV09s2pHrv1TjJrxIRmFwUTfuaJ393d9RAkWHRJsubbRak4coM7o-~3IVnpYEr-K3I02V7CglsPozVWgDszndIu82qsbI1YxiZhkbNekZjmrv0ozSugWSvJAgZxcSJVy4WhH9mm6-zQ__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"Generic_Software_Subgraph_Isomorphism","translated_slug":"","page_count":65,"language":"en","content_type":"Work","summary":"Abstract. The omnipresence of software graphs as useful intermediate representations means that the identification of near-match subgraphs (Error-Correcting Subgraph Isomorphism) has diverse and widespread applications in software engineering, such as querying, clone detection and model checking. Each software engineering subarea has developed specific tailored approaches to subgraph isomorphism, thereby reducing comparability and generality, and potentially yielding sub-optimal results.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30740329,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"SSBSE_2012_Fast_Abstracts.pdf","download_url":"https://www.academia.edu/attachments/30740329/download_file","bulk_download_file_name":"Generic_Software_Subgraph_Isomorphism.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740329/SSBSE_2012_Fast_Abstracts-libre.pdf?1363448501=\u0026response-content-disposition=attachment%3B+filename%3DGeneric_Software_Subgraph_Isomorphism.pdf\u0026Expires=1743457636\u0026Signature=J2yWHuMu9-ButigCorforZhGxyXKCwERyF-xsiRKPwXniDBySk1OJksf3vHaYpM6QOzEI-~0989rRwWlbtWz5farT6CveXmlVvpBnGblyTmV2Eh9-RQcI6Si4~QCzHuEMueZrFWMFklk2d3LnBaH5h94MwGYt4Ovd89XVuMo1FtaZA~U8Lp7ll9AN2X2xprZyduVcCqcOTPbV09s2pHrv1TjJrxIRmFwUTfuaJ393d9RAkWHRJsubbRak4coM7o-~3IVnpYEr-K3I02V7CglsPozVWgDszndIu82qsbI1YxiZhkbNekZjmrv0ozSugWSvJAgZxcSJVy4WhH9mm6-zQ__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671170,"url":"http://selab.fbk.eu/ssbse2012/documents/SSBSE_2012_Fast_Abstracts.pdf#page=53"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (true) { Aedu.setUpFigureCarousel('profile-work-2787592-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787590"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787590/Domain_Reduction_for_Search_Based_Test_Data_Generation"><img alt="Research paper thumbnail of Domain Reduction for Search-Based Test Data Generation" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787590/Domain_Reduction_for_Search_Based_Test_Data_Generation">Domain Reduction for Search-Based Test Data Generation</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">ABSTRACT There has recently been a great deal of interest in search–based test data generation, w...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">ABSTRACT There has recently been a great deal of interest in search–based test data generation, with many local and global search algorithms being proposed. However, to date, there has been no investigation of the relationship between the size of the input domain (the search space) and performance of the search–based algorithms. Static analysis can be used to remove irrelevant variables for a given test data generation problem, thereby reducing the search space size.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="24ad2564fc409618a1095dbc77a90ac6" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30889752,"asset_id":2787590,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30889752/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787590"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787590"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787590; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787590]").text(description); $(".js-view-count[data-work-id=2787590]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787590; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787590']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "24ad2564fc409618a1095dbc77a90ac6" } } $('.js-work-strip[data-work-id=2787590]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787590,"title":"Domain Reduction for Search-Based Test Data Generation","translated_title":"","metadata":{"abstract":"ABSTRACT There has recently been a great deal of interest in search–based test data generation, with many local and global search algorithms being proposed. However, to date, there has been no investigation of the relationship between the size of the input domain (the search space) and performance of the search–based algorithms. Static analysis can be used to remove irrelevant variables for a given test data generation problem, thereby reducing the search space size.","publication_date":{"day":null,"month":null,"year":2007,"errors":{}}},"translated_abstract":"ABSTRACT There has recently been a great deal of interest in search–based test data generation, with many local and global search algorithms being proposed. However, to date, there has been no investigation of the relationship between the size of the input domain (the search space) and performance of the search–based algorithms. Static analysis can be used to remove irrelevant variables for a given test data generation problem, thereby reducing the search space size.","internal_url":"https://www.academia.edu/2787590/Domain_Reduction_for_Search_Based_Test_Data_Generation","translated_internal_url":"","created_at":"2013-03-03T14:48:40.040-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30889752,"title":"","file_type":"eps","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"fse07.ai","download_url":"https://www.academia.edu/attachments/30889752/download_file","bulk_download_file_name":"Domain_Reduction_for_Search_Based_Test_D.eps","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30889752/fse07.ai?1738047239=\u0026response-content-disposition=attachment%3B+filename%3DDomain_Reduction_for_Search_Based_Test_D.eps\u0026Expires=1743457636\u0026Signature=SQZqO-rFOW1PBq4wyzZoU5ZiYleqdReUlNON-8noN3kKHum9IsAqnRb-Jswqz4XyfdsqOi4SqVeVIc6LhPIGCsYTLZI3wmnYnpulTQswqRAWGAAf3JiGhgpOkdIQ8QtI4K0zdQXL75rV0ga3ZhGflAlEKN5rL4SSU9vu9trgDt0RK8yTBJWO3N5X9Y5Sw1SvKmgOksx5pU9-3S2MEwEa10FohNc1vmt2~52pZvHOf7LzUmkfNKuoOazP8KGRcLIv-5roOW5ZH7bOfYmgN08Eh4Ae2J1mIRqnqOMrQZ08WUrMLOV1xRzEXlolw86VFilc1AKUqK2~CqDi0~0Flnsqmg__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"Domain_Reduction_for_Search_Based_Test_Data_Generation","translated_slug":"","page_count":null,"language":"en","content_type":"Work","summary":"ABSTRACT There has recently been a great deal of interest in search–based test data generation, with many local and global search algorithms being proposed. However, to date, there has been no investigation of the relationship between the size of the input domain (the search space) and performance of the search–based algorithms. Static analysis can be used to remove irrelevant variables for a given test data generation problem, thereby reducing the search space size.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30889752,"title":"","file_type":"eps","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"fse07.ai","download_url":"https://www.academia.edu/attachments/30889752/download_file","bulk_download_file_name":"Domain_Reduction_for_Search_Based_Test_D.eps","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30889752/fse07.ai?1738047239=\u0026response-content-disposition=attachment%3B+filename%3DDomain_Reduction_for_Search_Based_Test_D.eps\u0026Expires=1743457636\u0026Signature=SQZqO-rFOW1PBq4wyzZoU5ZiYleqdReUlNON-8noN3kKHum9IsAqnRb-Jswqz4XyfdsqOi4SqVeVIc6LhPIGCsYTLZI3wmnYnpulTQswqRAWGAAf3JiGhgpOkdIQ8QtI4K0zdQXL75rV0ga3ZhGflAlEKN5rL4SSU9vu9trgDt0RK8yTBJWO3N5X9Y5Sw1SvKmgOksx5pU9-3S2MEwEa10FohNc1vmt2~52pZvHOf7LzUmkfNKuoOazP8KGRcLIv-5roOW5ZH7bOfYmgN08Eh4Ae2J1mIRqnqOMrQZ08WUrMLOV1xRzEXlolw86VFilc1AKUqK2~CqDi0~0Flnsqmg__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671168,"url":"http://www0.cs.ucl.ac.uk/staff/M.Harman/fse07.ps"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787590-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787589"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787589/Characterising_explaining_and_exploiting_the_approximate_nature_of_static_analysis_through_animation"><img alt="Research paper thumbnail of Characterising, explaining, and exploiting the approximate nature of static analysis through animation" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787589/Characterising_explaining_and_exploiting_the_approximate_nature_of_static_analysis_through_animation">Characterising, explaining, and exploiting the approximate nature of static analysis through animation</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract This paper addresses the question:" How can animated visualisation be used to express in...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract This paper addresses the question:" How can animated visualisation be used to express interesting properties of static analysis?" The particular focus is upon static dependence analysis, but the approach adopted in the paper is applicable to other forms of static analysis. The challenge is twofold. First, there is the inherent difficultly of using animation, which is inherently dynamic, as a representation of static analysis, which is not. The paper shows one way in which this apparent contradiction can be overcome.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="42ce9bceaa4e340cf5e8d73da2ac1f0d" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30740331,"asset_id":2787589,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30740331/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787589"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787589"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787589; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787589]").text(description); $(".js-view-count[data-work-id=2787589]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787589; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787589']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "42ce9bceaa4e340cf5e8d73da2ac1f0d" } } $('.js-work-strip[data-work-id=2787589]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787589,"title":"Characterising, explaining, and exploiting the approximate nature of static analysis through animation","translated_title":"","metadata":{"abstract":"Abstract This paper addresses the question:\" How can animated visualisation be used to express interesting properties of static analysis?\" The particular focus is upon static dependence analysis, but the approach adopted in the paper is applicable to other forms of static analysis. The challenge is twofold. First, there is the inherent difficultly of using animation, which is inherently dynamic, as a representation of static analysis, which is not. The paper shows one way in which this apparent contradiction can be overcome.","publication_date":{"day":null,"month":9,"year":2006,"errors":{}}},"translated_abstract":"Abstract This paper addresses the question:\" How can animated visualisation be used to express interesting properties of static analysis?\" The particular focus is upon static dependence analysis, but the approach adopted in the paper is applicable to other forms of static analysis. The challenge is twofold. First, there is the inherent difficultly of using animation, which is inherently dynamic, as a representation of static analysis, which is not. The paper shows one way in which this apparent contradiction can be overcome.","internal_url":"https://www.academia.edu/2787589/Characterising_explaining_and_exploiting_the_approximate_nature_of_static_analysis_through_animation","translated_internal_url":"","created_at":"2013-03-03T14:48:39.923-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30740331,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"scam06.pdf","download_url":"https://www.academia.edu/attachments/30740331/download_file","bulk_download_file_name":"Characterising_explaining_and_exploiting.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740331/scam06-libre.pdf?1392054588=\u0026response-content-disposition=attachment%3B+filename%3DCharacterising_explaining_and_exploiting.pdf\u0026Expires=1743457636\u0026Signature=LHhzSzrQ3U0P1A2sEjnSnUoVv5TYRKa6OrBH~U7ZN2LJgaKJCRZU0ddxgJIVCK68v4Xm20uMZLb7eM3~bi5Ort5AFgFZ1N8B4Htp~AsKI8mucDvbluqCj4M1WmqIENDPo7VctJABr1tUgSglx13p4~76vWmhzqd0OYYPgq-eQ7OuZnRVJ4RfgEKayTuiI9mUmLeQ-iN-fpYfj92o9qVRE6QCajTv~CkKXvyjogflIOsBKoZEyWm6iy4T~S1M2uHeleEEqqBFKUjQmgPop6GM~1XbZwXeY6JHm9-MI6qSjkySCaO7EinCpDs8SRK2N9WLSk6sDpJwiQAQoTu09n1u8Q__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"Characterising_explaining_and_exploiting_the_approximate_nature_of_static_analysis_through_animation","translated_slug":"","page_count":10,"language":"en","content_type":"Work","summary":"Abstract This paper addresses the question:\" How can animated visualisation be used to express interesting properties of static analysis?\" The particular focus is upon static dependence analysis, but the approach adopted in the paper is applicable to other forms of static analysis. The challenge is twofold. First, there is the inherent difficultly of using animation, which is inherently dynamic, as a representation of static analysis, which is not. The paper shows one way in which this apparent contradiction can be overcome.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30740331,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"scam06.pdf","download_url":"https://www.academia.edu/attachments/30740331/download_file","bulk_download_file_name":"Characterising_explaining_and_exploiting.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740331/scam06-libre.pdf?1392054588=\u0026response-content-disposition=attachment%3B+filename%3DCharacterising_explaining_and_exploiting.pdf\u0026Expires=1743457636\u0026Signature=LHhzSzrQ3U0P1A2sEjnSnUoVv5TYRKa6OrBH~U7ZN2LJgaKJCRZU0ddxgJIVCK68v4Xm20uMZLb7eM3~bi5Ort5AFgFZ1N8B4Htp~AsKI8mucDvbluqCj4M1WmqIENDPo7VctJABr1tUgSglx13p4~76vWmhzqd0OYYPgq-eQ7OuZnRVJ4RfgEKayTuiI9mUmLeQ-iN-fpYfj92o9qVRE6QCajTv~CkKXvyjogflIOsBKoZEyWm6iy4T~S1M2uHeleEEqqBFKUjQmgPop6GM~1XbZwXeY6JHm9-MI6qSjkySCaO7EinCpDs8SRK2N9WLSk6sDpJwiQAQoTu09n1u8Q__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671167,"url":"http://www0.cs.ucl.ac.uk/staff/j.krinke/publications/scam06.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787589-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787588"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787588/Equivalence_of_conservative_free_linear_program_schemas_is_decidable"><img alt="Research paper thumbnail of Equivalence of conservative, free, linear program schemas is decidable" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787588/Equivalence_of_conservative_free_linear_program_schemas_is_decidable">Equivalence of conservative, free, linear program schemas is decidable</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">A program schema defines a class of programs, all of which have identical statement structures, b...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">A program schema defines a class of programs, all of which have identical statement structures, but whose expressions may differ. We prove that given any two structured schemas which are conservative, linear and free, it is decidable whether they are equivalent.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="c98c92b6798bd3f3b8b43059e9436207" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30740305,"asset_id":2787588,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30740305/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787588"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787588"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787588; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787588]").text(description); $(".js-view-count[data-work-id=2787588]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787588; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787588']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "c98c92b6798bd3f3b8b43059e9436207" } } $('.js-work-strip[data-work-id=2787588]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787588,"title":"Equivalence of conservative, free, linear program schemas is decidable","translated_title":"","metadata":{"abstract":"A program schema defines a class of programs, all of which have identical statement structures, but whose expressions may differ. We prove that given any two structured schemas which are conservative, linear and free, it is decidable whether they are equivalent.","ai_title_tag":"Decidability of Conservative Linear Program Schemas","journal_name":"Theoretical Computer Science","publication_date":{"day":1,"month":1,"year":2003,"errors":{}}},"translated_abstract":"A program schema defines a class of programs, all of which have identical statement structures, but whose expressions may differ. We prove that given any two structured schemas which are conservative, linear and free, it is decidable whether they are equivalent.","internal_url":"https://www.academia.edu/2787588/Equivalence_of_conservative_free_linear_program_schemas_is_decidable","translated_internal_url":"","created_at":"2013-03-03T14:48:39.841-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30740305,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"Equivalence_of_Conservative.pdf","download_url":"https://www.academia.edu/attachments/30740305/download_file","bulk_download_file_name":"Equivalence_of_conservative_free_linear.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740305/Equivalence_of_Conservative-libre.pdf?1392073885=\u0026response-content-disposition=attachment%3B+filename%3DEquivalence_of_conservative_free_linear.pdf\u0026Expires=1743457636\u0026Signature=KXPSiSB~pAH2mg9gH7YfSPNPDblz4v1HUXoZUAemk-Z2vml6L3h2zrtBbE~JlGjFgCIlYklVzGRSrwryTj7UQZDPZd1rZvu8lu2ULNqbxN-HfZcCO9WVMWOTIx~0iw9K08x~Yt5Y-MsJtsDX8J~eX7NywoZr-Bq-caANowTMxw1cCosWprqvGOzER~lSC7EIwPAazzOUHaVBLceiQGa8lVlEQ9LYl9vua2TuVLYl8hU-K4UazME2ZGDeVzNL7Rzqq-~zoGlYG7fZUCMj0kOApTvmUkNgSr3Sby5B7evLnDpX1C3kNpmDCFUAkJBmRAYyQYNeEMgxQDTtzFa5SeeauQ__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"Equivalence_of_conservative_free_linear_program_schemas_is_decidable","translated_slug":"","page_count":40,"language":"en","content_type":"Work","summary":"A program schema defines a class of programs, all of which have identical statement structures, but whose expressions may differ. We prove that given any two structured schemas which are conservative, linear and free, it is decidable whether they are equivalent.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30740305,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"Equivalence_of_Conservative.pdf","download_url":"https://www.academia.edu/attachments/30740305/download_file","bulk_download_file_name":"Equivalence_of_conservative_free_linear.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740305/Equivalence_of_Conservative-libre.pdf?1392073885=\u0026response-content-disposition=attachment%3B+filename%3DEquivalence_of_conservative_free_linear.pdf\u0026Expires=1743457636\u0026Signature=KXPSiSB~pAH2mg9gH7YfSPNPDblz4v1HUXoZUAemk-Z2vml6L3h2zrtBbE~JlGjFgCIlYklVzGRSrwryTj7UQZDPZd1rZvu8lu2ULNqbxN-HfZcCO9WVMWOTIx~0iw9K08x~Yt5Y-MsJtsDX8J~eX7NywoZr-Bq-caANowTMxw1cCosWprqvGOzER~lSC7EIwPAazzOUHaVBLceiQGa8lVlEQ9LYl9vua2TuVLYl8hU-K4UazME2ZGDeVzNL7Rzqq-~zoGlYG7fZUCMj0kOApTvmUkNgSr3Sby5B7evLnDpX1C3kNpmDCFUAkJBmRAYyQYNeEMgxQDTtzFa5SeeauQ__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671166,"url":"http://dspace.brunel.ac.uk/bitstream/2438/364/1/Equivalence%20of%20Conservative.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787588-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787587"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787587/The_GISMOE_challenge_constructing_the_pareto_program_surface_using_genetic_programming_to_find_better_programs_keynote_paper_"><img alt="Research paper thumbnail of The GISMOE challenge: constructing the pareto program surface using genetic programming to find better programs (keynote paper)" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787587/The_GISMOE_challenge_constructing_the_pareto_program_surface_using_genetic_programming_to_find_better_programs_keynote_paper_">The GISMOE challenge: constructing the pareto program surface using genetic programming to find better programs (keynote paper)</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract Optimising programs for non-functional properties such as speed, size, throughput, power...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract Optimising programs for non-functional properties such as speed, size, throughput, power consumption and bandwidth can be demanding; pity the poor programmer who is asked to cater for them all at once! We set out an alternate vision for a new kind of software development environment inspired by recent results from Search Based Software Engineering (SBSE).</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="d4f600023526c3ce82c6f0c1b8eaa79d" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30740335,"asset_id":2787587,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30740335/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787587"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787587"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787587; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787587]").text(description); $(".js-view-count[data-work-id=2787587]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787587; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787587']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "d4f600023526c3ce82c6f0c1b8eaa79d" } } $('.js-work-strip[data-work-id=2787587]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787587,"title":"The GISMOE challenge: constructing the pareto program surface using genetic programming to find better programs (keynote paper)","translated_title":"","metadata":{"abstract":"Abstract Optimising programs for non-functional properties such as speed, size, throughput, power consumption and bandwidth can be demanding; pity the poor programmer who is asked to cater for them all at once! We set out an alternate vision for a new kind of software development environment inspired by recent results from Search Based Software Engineering (SBSE).","publication_date":{"day":3,"month":9,"year":2012,"errors":{}}},"translated_abstract":"Abstract Optimising programs for non-functional properties such as speed, size, throughput, power consumption and bandwidth can be demanding; pity the poor programmer who is asked to cater for them all at once! We set out an alternate vision for a new kind of software development environment inspired by recent results from Search Based Software Engineering (SBSE).","internal_url":"https://www.academia.edu/2787587/The_GISMOE_challenge_constructing_the_pareto_program_surface_using_genetic_programming_to_find_better_programs_keynote_paper_","translated_internal_url":"","created_at":"2013-03-03T14:48:39.759-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30740335,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"Harman_2012_ASE.pdf","download_url":"https://www.academia.edu/attachments/30740335/download_file","bulk_download_file_name":"The_GISMOE_challenge_constructing_the_pa.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740335/Harman_2012_ASE-libre.pdf?1390982636=\u0026response-content-disposition=attachment%3B+filename%3DThe_GISMOE_challenge_constructing_the_pa.pdf\u0026Expires=1743457636\u0026Signature=ciq~jx6QvD8TiHhcGWRRAs5S-cvfrNOndcm4y-FA28sezjGA7XLOA2fan22gC3tTqKVR~zWmahMhn1u8zHHWflKadhff16LvIKjWaKXGQm94Saa5tdLEmTU0fre2yaY5A4BOoYlXAPQXNjF7PNoJVWp1ewPWE-SB03c1jVosNDf2wkSZN3VXzxX6b7fyn2X~KhT7q9oeV6uKf1F5KJTxmpYhzCmnYgXbzb0LeEmS10jEDDZEQBqFtQK~V7QLBhIMLIq8W~Y9kDMdSW0l7M2csl9E95QzkUvAEAFgejVVu5J2a-NgDTpVx7CazJJ0ddPrVMAZX2XzaM6rXTVLWx0r4w__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"The_GISMOE_challenge_constructing_the_pareto_program_surface_using_genetic_programming_to_find_better_programs_keynote_paper_","translated_slug":"","page_count":14,"language":"en","content_type":"Work","summary":"Abstract Optimising programs for non-functional properties such as speed, size, throughput, power consumption and bandwidth can be demanding; pity the poor programmer who is asked to cater for them all at once! We set out an alternate vision for a new kind of software development environment inspired by recent results from Search Based Software Engineering (SBSE).","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30740335,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"Harman_2012_ASE.pdf","download_url":"https://www.academia.edu/attachments/30740335/download_file","bulk_download_file_name":"The_GISMOE_challenge_constructing_the_pa.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740335/Harman_2012_ASE-libre.pdf?1390982636=\u0026response-content-disposition=attachment%3B+filename%3DThe_GISMOE_challenge_constructing_the_pa.pdf\u0026Expires=1743457636\u0026Signature=ciq~jx6QvD8TiHhcGWRRAs5S-cvfrNOndcm4y-FA28sezjGA7XLOA2fan22gC3tTqKVR~zWmahMhn1u8zHHWflKadhff16LvIKjWaKXGQm94Saa5tdLEmTU0fre2yaY5A4BOoYlXAPQXNjF7PNoJVWp1ewPWE-SB03c1jVosNDf2wkSZN3VXzxX6b7fyn2X~KhT7q9oeV6uKf1F5KJTxmpYhzCmnYgXbzb0LeEmS10jEDDZEQBqFtQK~V7QLBhIMLIq8W~Y9kDMdSW0l7M2csl9E95QzkUvAEAFgejVVu5J2a-NgDTpVx7CazJJ0ddPrVMAZX2XzaM6rXTVLWx0r4w__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671165,"url":"http://www0.cs.ucl.ac.uk/staff/w.langdon/gismo/Harman_2012_ASE.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787587-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787586"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787586/A_search_based_approach_to_overlapping_concept_boundaries"><img alt="Research paper thumbnail of A search based approach to overlapping concept boundaries" class="work-thumbnail" src="https://attachments.academia-assets.com/30889748/thumbnails/1.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787586/A_search_based_approach_to_overlapping_concept_boundaries">A search based approach to overlapping concept boundaries</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract This paper presents techniques to integrate boundary overlap into concept assignment usi...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract This paper presents techniques to integrate boundary overlap into concept assignment using Plausible Reasoning. Heuristic search techniques such as Hill climbing and Genetic Algorithms are investigated. A new fitness measure appropriate for overlapping concept assignment is introduced. The new algorithms are compared to randomly generated results and the Genetic Algorithm is shown to be the best of the proposed search algorithms in terms of the quality of concept binding, as measured by the fitness function.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="8a3592af727f1e441d3e7fa2f12adf51" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30889748,"asset_id":2787586,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30889748/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787586"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787586"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787586; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787586]").text(description); $(".js-view-count[data-work-id=2787586]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787586; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787586']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "8a3592af727f1e441d3e7fa2f12adf51" } } $('.js-work-strip[data-work-id=2787586]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787586,"title":"A search based approach to overlapping concept boundaries","translated_title":"","metadata":{"abstract":"Abstract This paper presents techniques to integrate boundary overlap into concept assignment using Plausible Reasoning. Heuristic search techniques such as Hill climbing and Genetic Algorithms are investigated. A new fitness measure appropriate for overlapping concept assignment is introduced. The new algorithms are compared to randomly generated results and the Genetic Algorithm is shown to be the best of the proposed search algorithms in terms of the quality of concept binding, as measured by the fitness function.","journal_name":"22nd International Conference on Software Maintenance (ICSM 06), Philadelphia, Pennsylvania, USA","publication_date":{"day":null,"month":9,"year":2006,"errors":{}}},"translated_abstract":"Abstract This paper presents techniques to integrate boundary overlap into concept assignment using Plausible Reasoning. Heuristic search techniques such as Hill climbing and Genetic Algorithms are investigated. A new fitness measure appropriate for overlapping concept assignment is introduced. The new algorithms are compared to randomly generated results and the Genetic Algorithm is shown to be the best of the proposed search algorithms in terms of the quality of concept binding, as measured by the fitness function.","internal_url":"https://www.academia.edu/2787586/A_search_based_approach_to_overlapping_concept_boundaries","translated_internal_url":"","created_at":"2013-03-03T14:48:39.680-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30889748,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://attachments.academia-assets.com/30889748/thumbnails/1.jpg","file_name":"allowing_overlapping_boundaries_in_source_code_using_a_search_based.pdf","download_url":"https://www.academia.edu/attachments/30889748/download_file","bulk_download_file_name":"A_search_based_approach_to_overlapping_c.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30889748/allowing_overlapping_boundaries_in_source_code_using_a_search_based-libre.pdf?1391858230=\u0026response-content-disposition=attachment%3B+filename%3DA_search_based_approach_to_overlapping_c.pdf\u0026Expires=1743457636\u0026Signature=Yle7VMu0LNUBAYtaqar1V5BqHhX1w~m8iFjj~ICvo39Ui3lmvlWPqJE1GWahcdgYV6AcltuSseVHBO8VTXOljL7TegsSYrKx5frQIh6qTsdWenTPlU1lTSQeamM6BmPU8n0IZFmgU-ft9vUnYRX8nmXvqzbbUkNU6q6yyHZn44f1gl5Hl4irVQIpEFCAWdFt5YCZDMI8XSQQSuZjv3SaUv2Y8ROVRACHKC-6bl6PinabHpYzi2z23hr53eZCWe1J4R7~-X7aWonz8mURFCwuab3UTrxjkvJzA~8bK115wxr3unEncuc0eUl7bgwm2GcbaoMr4HbRvzhI9SxNeKcHqw__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"A_search_based_approach_to_overlapping_concept_boundaries","translated_slug":"","page_count":10,"language":"en","content_type":"Work","summary":"Abstract This paper presents techniques to integrate boundary overlap into concept assignment using Plausible Reasoning. Heuristic search techniques such as Hill climbing and Genetic Algorithms are investigated. A new fitness measure appropriate for overlapping concept assignment is introduced. The new algorithms are compared to randomly generated results and the Genetic Algorithm is shown to be the best of the proposed search algorithms in terms of the quality of concept binding, as measured by the fitness function.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30889748,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://attachments.academia-assets.com/30889748/thumbnails/1.jpg","file_name":"allowing_overlapping_boundaries_in_source_code_using_a_search_based.pdf","download_url":"https://www.academia.edu/attachments/30889748/download_file","bulk_download_file_name":"A_search_based_approach_to_overlapping_c.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30889748/allowing_overlapping_boundaries_in_source_code_using_a_search_based-libre.pdf?1391858230=\u0026response-content-disposition=attachment%3B+filename%3DA_search_based_approach_to_overlapping_c.pdf\u0026Expires=1743457636\u0026Signature=Yle7VMu0LNUBAYtaqar1V5BqHhX1w~m8iFjj~ICvo39Ui3lmvlWPqJE1GWahcdgYV6AcltuSseVHBO8VTXOljL7TegsSYrKx5frQIh6qTsdWenTPlU1lTSQeamM6BmPU8n0IZFmgU-ft9vUnYRX8nmXvqzbbUkNU6q6yyHZn44f1gl5Hl4irVQIpEFCAWdFt5YCZDMI8XSQQSuZjv3SaUv2Y8ROVRACHKC-6bl6PinabHpYzi2z23hr53eZCWe1J4R7~-X7aWonz8mURFCwuab3UTrxjkvJzA~8bK115wxr3unEncuc0eUl7bgwm2GcbaoMr4HbRvzhI9SxNeKcHqw__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671164,"url":"http://pdf.aminer.org/000/139/016/allowing_overlapping_boundaries_in_source_code_using_a_search_based.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787586-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787585"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787585/Faster_fault_finding_at_google_using_multi_objective_regression_test_optimisation"><img alt="Research paper thumbnail of Faster fault finding at google using multi objective regression test optimisation" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787585/Faster_fault_finding_at_google_using_multi_objective_regression_test_optimisation">Faster fault finding at google using multi objective regression test optimisation</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">ABSTRACT Companies such as Google tend to develop products from one continually evolving core of ...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">ABSTRACT Companies such as Google tend to develop products from one continually evolving core of code. Software is neither shipped, nor released in the traditional sense. It is simply made available, with dramatically compressed release cycles regression testing. This large scale rapid release environment creates challenges for the application of regression test optimisation techniques.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="6154ac6d65e02e7e92c3e81d84d41fb8" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30740295,"asset_id":2787585,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30740295/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787585"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787585"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787585; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787585]").text(description); $(".js-view-count[data-work-id=2787585]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787585; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787585']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "6154ac6d65e02e7e92c3e81d84d41fb8" } } $('.js-work-strip[data-work-id=2787585]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787585,"title":"Faster fault finding at google using multi objective regression test optimisation","translated_title":"","metadata":{"abstract":"ABSTRACT Companies such as Google tend to develop products from one continually evolving core of code. Software is neither shipped, nor released in the traditional sense. It is simply made available, with dramatically compressed release cycles regression testing. This large scale rapid release environment creates challenges for the application of regression test optimisation techniques.","ai_title_tag":"Optimizing Regression Testing for Rapid Releases at Google","journal_name":"8th European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE���11), Szeged, Hungary, September 5th-9th","publication_date":{"day":5,"month":9,"year":2011,"errors":{}}},"translated_abstract":"ABSTRACT Companies such as Google tend to develop products from one continually evolving core of code. Software is neither shipped, nor released in the traditional sense. It is simply made available, with dramatically compressed release cycles regression testing. This large scale rapid release environment creates challenges for the application of regression test optimisation techniques.","internal_url":"https://www.academia.edu/2787585/Faster_fault_finding_at_google_using_multi_objective_regression_test_optimisation","translated_internal_url":"","created_at":"2013-03-03T14:48:39.613-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30740295,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"YooNH11_01.pdf","download_url":"https://www.academia.edu/attachments/30740295/download_file","bulk_download_file_name":"Faster_fault_finding_at_google_using_mul.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740295/YooNH11_01-libre.pdf?1391876227=\u0026response-content-disposition=attachment%3B+filename%3DFaster_fault_finding_at_google_using_mul.pdf\u0026Expires=1743457637\u0026Signature=fgXG2s9YEYztXvHE-9YZW0yXIYuAMjq7bp5crgeXOOTSkXYlEX4uzQLbZLZHgVB0fPJ2Kk0mB1XbKzkGi9iIQ-ga-tL83fSrPxXSJ6DT9erhTQQRC6V~cdc6d657b-cZ7xoo66qfTjmbzHnJjXSUmW4Sgn-C9~wDfKkzKzDjaz2K1hbDnIwcm5F01WJU9br-EyaOjtHP8yivpvj0cCcZGvy0Lc9ilSEHgTIc5whWAaVL3tGiMe9E0D1~~elSf5WnuOdASIrc~LwMoTtz1lwfA6YVN1oI0IQvPSOyGyLLTct8GumuJ7i5zbAIc5m62WBbnS1R8uTL2EoExkiUbXu~lA__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"Faster_fault_finding_at_google_using_multi_objective_regression_test_optimisation","translated_slug":"","page_count":4,"language":"en","content_type":"Work","summary":"ABSTRACT Companies such as Google tend to develop products from one continually evolving core of code. Software is neither shipped, nor released in the traditional sense. It is simply made available, with dramatically compressed release cycles regression testing. This large scale rapid release environment creates challenges for the application of regression test optimisation techniques.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30740295,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"YooNH11_01.pdf","download_url":"https://www.academia.edu/attachments/30740295/download_file","bulk_download_file_name":"Faster_fault_finding_at_google_using_mul.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740295/YooNH11_01-libre.pdf?1391876227=\u0026response-content-disposition=attachment%3B+filename%3DFaster_fault_finding_at_google_using_mul.pdf\u0026Expires=1743457637\u0026Signature=fgXG2s9YEYztXvHE-9YZW0yXIYuAMjq7bp5crgeXOOTSkXYlEX4uzQLbZLZHgVB0fPJ2Kk0mB1XbKzkGi9iIQ-ga-tL83fSrPxXSJ6DT9erhTQQRC6V~cdc6d657b-cZ7xoo66qfTjmbzHnJjXSUmW4Sgn-C9~wDfKkzKzDjaz2K1hbDnIwcm5F01WJU9br-EyaOjtHP8yivpvj0cCcZGvy0Lc9ilSEHgTIc5whWAaVL3tGiMe9E0D1~~elSf5WnuOdASIrc~LwMoTtz1lwfA6YVN1oI0IQvPSOyGyLLTct8GumuJ7i5zbAIc5m62WBbnS1R8uTL2EoExkiUbXu~lA__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671163,"url":"http://sebase.cs.ucl.ac.uk/fileadmin/crest/sebasepaper/YooNH11_01.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787585-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787584"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" rel="nofollow" href="https://www.academia.edu/2787584/Cooperative_co_evolutionary_optimization_of_software_project_staff_assignments_and_job_scheduling"><img alt="Research paper thumbnail of Cooperative co-evolutionary optimization of software project staff assignments and job scheduling" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title">Cooperative co-evolutionary optimization of software project staff assignments and job scheduling</div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">This paper presents an approach to Search Based Software Project Management based on Cooperative ...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">This paper presents an approach to Search Based Software Project Management based on Cooperative Co-evolution. Our approach aims to optimize both developers' team staffing and work package scheduling through cooperative co-evolution to achieve early overall completion time. To evaluate our approach, we conducted an empirical study, using data from four real-world software projects. Results indicate that the Co-evolutionary approach significantly outperforms a single population evolutionary algorithm.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787584"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787584"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787584; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787584]").text(description); $(".js-view-count[data-work-id=2787584]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787584; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787584']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (false){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "-1" } } $('.js-work-strip[data-work-id=2787584]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787584,"title":"Cooperative co-evolutionary optimization of software project staff assignments and job scheduling","translated_title":"","metadata":{"abstract":"This paper presents an approach to Search Based Software Project Management based on Cooperative Co-evolution. Our approach aims to optimize both developers' team staffing and work package scheduling through cooperative co-evolution to achieve early overall completion time. To evaluate our approach, we conducted an empirical study, using data from four real-world software projects. Results indicate that the Co-evolutionary approach significantly outperforms a single population evolutionary algorithm.","journal_name":"Search Based Software Engineering","publication_date":{"day":null,"month":null,"year":2011,"errors":{}}},"translated_abstract":"This paper presents an approach to Search Based Software Project Management based on Cooperative Co-evolution. Our approach aims to optimize both developers' team staffing and work package scheduling through cooperative co-evolution to achieve early overall completion time. To evaluate our approach, we conducted an empirical study, using data from four real-world software projects. Results indicate that the Co-evolutionary approach significantly outperforms a single population evolutionary algorithm.","internal_url":"https://www.academia.edu/2787584/Cooperative_co_evolutionary_optimization_of_software_project_staff_assignments_and_job_scheduling","translated_internal_url":"","created_at":"2013-03-03T14:48:39.544-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[],"slug":"Cooperative_co_evolutionary_optimization_of_software_project_staff_assignments_and_job_scheduling","translated_slug":"","page_count":null,"language":"en","content_type":"Work","summary":"This paper presents an approach to Search Based Software Project Management based on Cooperative Co-evolution. Our approach aims to optimize both developers' team staffing and work package scheduling through cooperative co-evolution to achieve early overall completion time. To evaluate our approach, we conducted an empirical study, using data from four real-world software projects. Results indicate that the Co-evolutionary approach significantly outperforms a single population evolutionary algorithm.","impression_tracking_id":null,"owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[],"research_interests":[],"urls":[{"id":671162,"url":"http://hasanheidari.s103.rapidbaz.com:8080/free/y2D3wxssuEpB4MUDCsB3M1UjgZu0xcccjotXQ_zwc7hwccTGl-YhUJ3GJEIEmuHJ5TCT7vXiH14wvZwiBlul11DeW6mUXaG0wHw4sU1703mbt_IMWabte2zcdm1pQ-RIyE3EmBo6BtaGVLlafg,,/Search_Based_Software_Engineering.pdf#page=144"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787584-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787583"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787583/Dependence_clusters_in_source_code"><img alt="Research paper thumbnail of Dependence clusters in source code" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787583/Dependence_clusters_in_source_code">Dependence clusters in source code</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract A dependence cluster is a set of program statements, all of which are mutually inter-dep...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract A dependence cluster is a set of program statements, all of which are mutually inter-dependent. This article reports a large scale empirical study of dependence clusters in C program source code. The study reveals that large dependence clusters are surprisingly commonplace. Most of the 45 programs studied have clusters of dependence that consume more than 10&percnt; of the whole program. Some even have clusters consuming 80&percnt; or more.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="c9ab6247d63e7f8f2d87f795c5d38475" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30740317,"asset_id":2787583,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30740317/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787583"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787583"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787583; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787583]").text(description); $(".js-view-count[data-work-id=2787583]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787583; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787583']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "c9ab6247d63e7f8f2d87f795c5d38475" } } $('.js-work-strip[data-work-id=2787583]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787583,"title":"Dependence clusters in source code","translated_title":"","metadata":{"abstract":"Abstract A dependence cluster is a set of program statements, all of which are mutually inter-dependent. This article reports a large scale empirical study of dependence clusters in C program source code. The study reveals that large dependence clusters are surprisingly commonplace. Most of the 45 programs studied have clusters of dependence that consume more than 10\u0026percnt; of the whole program. Some even have clusters consuming 80\u0026percnt; or more.","ai_title_tag":"Prevalence of Dependence Clusters in C Code","journal_name":"ACM Transactions on Programming Languages and Systems (TOPLAS)","publication_date":{"day":1,"month":10,"year":2009,"errors":{}}},"translated_abstract":"Abstract A dependence cluster is a set of program statements, all of which are mutually inter-dependent. This article reports a large scale empirical study of dependence clusters in C program source code. The study reveals that large dependence clusters are surprisingly commonplace. Most of the 45 programs studied have clusters of dependence that consume more than 10\u0026percnt; of the whole program. Some even have clusters consuming 80\u0026percnt; or more.","internal_url":"https://www.academia.edu/2787583/Dependence_clusters_in_source_code","translated_internal_url":"","created_at":"2013-03-03T14:48:39.457-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30740317,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"toplas09.pdf","download_url":"https://www.academia.edu/attachments/30740317/download_file","bulk_download_file_name":"Dependence_clusters_in_source_code.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740317/toplas09-libre.pdf?1391862329=\u0026response-content-disposition=attachment%3B+filename%3DDependence_clusters_in_source_code.pdf\u0026Expires=1744178956\u0026Signature=NOoq2hi0F-iTw0uiiZinaDRxpPzSXiZ3V-Lzq3SDIQLRQsnpTvAkihC61p-EclOpJbRPkqxK5GCMVyPbYdAyDEpNY9WYXtzxHuTo9WB81mBu5WN92KCcWCVuppQwhRF4-Stjg9xlozcx7b96zQSoBbXDvCJIzzlH282~HLL~EscY5v3lPU0-wf~LFYiQUATktndL6yJeQ8pKxF7svKB09UZB2VieRA-D9Hpk0Fz2n10WQTp7m-o9QTJ64pMogXptj~H8aLAz4XIBWU3LlWlwORSb57pbf4lkOhh4tObGJkp6caBJqv7oWHrqWBYr8DywwBCBj23dGyGgQrSvm8pj0w__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"Dependence_clusters_in_source_code","translated_slug":"","page_count":33,"language":"en","content_type":"Work","summary":"Abstract A dependence cluster is a set of program statements, all of which are mutually inter-dependent. This article reports a large scale empirical study of dependence clusters in C program source code. The study reveals that large dependence clusters are surprisingly commonplace. Most of the 45 programs studied have clusters of dependence that consume more than 10\u0026percnt; of the whole program. Some even have clusters consuming 80\u0026percnt; or more.","impression_tracking_id":null,"owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30740317,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"toplas09.pdf","download_url":"https://www.academia.edu/attachments/30740317/download_file","bulk_download_file_name":"Dependence_clusters_in_source_code.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740317/toplas09-libre.pdf?1391862329=\u0026response-content-disposition=attachment%3B+filename%3DDependence_clusters_in_source_code.pdf\u0026Expires=1744178956\u0026Signature=NOoq2hi0F-iTw0uiiZinaDRxpPzSXiZ3V-Lzq3SDIQLRQsnpTvAkihC61p-EclOpJbRPkqxK5GCMVyPbYdAyDEpNY9WYXtzxHuTo9WB81mBu5WN92KCcWCVuppQwhRF4-Stjg9xlozcx7b96zQSoBbXDvCJIzzlH282~HLL~EscY5v3lPU0-wf~LFYiQUATktndL6yJeQ8pKxF7svKB09UZB2VieRA-D9Hpk0Fz2n10WQTp7m-o9QTJ64pMogXptj~H8aLAz4XIBWU3LlWlwORSb57pbf4lkOhh4tObGJkp6caBJqv7oWHrqWBYr8DywwBCBj23dGyGgQrSvm8pj0w__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671161,"url":"http://www0.cs.ucl.ac.uk/staff/j.krinke/publications/toplas09.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787583-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787582"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787582/Clustering_test_cases_to_achieve_effective_and_scalable_prioritisation_incorporating_expert_knowledge"><img alt="Research paper thumbnail of Clustering test cases to achieve effective and scalable prioritisation incorporating expert knowledge" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787582/Clustering_test_cases_to_achieve_effective_and_scalable_prioritisation_incorporating_expert_knowledge">Clustering test cases to achieve effective and scalable prioritisation incorporating expert knowledge</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract Pair-wise comparison has been successfully utilised in order to prioritise test cases by...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract Pair-wise comparison has been successfully utilised in order to prioritise test cases by exploiting the rich, valuable and unique knowledge of the tester. However, the prohibitively large cost of the pair-wise comparison method prevents it from being applied to large test suites. In this paper, we introduce a cluster-based test case prioritisation technique. By clustering test cases, based on their dynamic runtime behaviour, we can reduce the required number of pair-wise comparisons significantly.</span></div><div class="wp-workCard_item"><div class="carousel-container carousel-container--sm" id="profile-work-2787582-figures"><div class="prev-slide-container js-prev-button-container"><button aria-label="Previous" class="carousel-navigation-button js-profile-work-2787582-figures-prev"><span class="material-symbols-outlined" style="font-size: 24px" translate="no">arrow_back_ios</span></button></div><div class="slides-container js-slides-container"><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/37492425/figure-1-the-resulting-dendrogram-is-tree-structure-that"><img alt="The resulting dendrogram is a tree structure that represents the arrangement of clusters. Figure 1 shows an example dendrogram. It is possible to generate k clusters for any k in [1, n] by cutting the tree at different heights. " class="figure-slide-image" src="https://figures.academia-assets.com/30740316/figure_001.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/37492446/figure-2-clustering-test-cases-to-achieve-effective-and"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740316/figure_002.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/37492452/figure-3-hierarchy-between-comparison-criteria-for-ahp-scale"><img alt="Figure 3: Hierarchy between comparison criteria for AHP Table 1: Scale of preference used in the comparison matrix of AHP " class="figure-slide-image" src="https://figures.academia-assets.com/30740316/figure_003.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/37492459/figure-4-boxplots-of-apfd-values-of-cps-conuration-with"><img alt="Figure 4: Boxplots of APFD values of /CPs configuration with error rate ranging from 0.05 to 1.0 in steps of 0.05 on the x-axis. The y-axis shows the observed APFD metric values. For each error rate value, experiments are repeated 30 times to cater for the randomness in the error model. The horizontal dotted line shows the APFD value of statement coverage-based prioritisation. Surprisingly, for the test suites for which JCP; showed an improvement in Table 7, the mean APFD values tend to stay above this dotted line, even when the error rate is above 0.5. In fact, with the exception of schedule1l and gzip, even the error rate of 1.0 produces successful results for the test suites for which /C Ps; showed an improvement in Table 7. " class="figure-slide-image" src="https://figures.academia-assets.com/30740316/figure_004.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/37492471/figure-5-boxplots-of-apfd-values-of-py-conuration-with-error"><img alt="Figure 5: Boxplots of APFD values of /C Py, configuration with error rate ranging from 0.05 to 1.0 in steps of 0.05 on the x-axis. The y-axis shows the observed APFD metric values. The trend observed in Figure 4 continues. However, it can also be observed that the secondary prioritisation criteria (statement coverage) compliments human input. APFD values show smaller variances compared to Figure 4 and, in some cases, more tolerance in the presence of human error, for example, the case with test suite 1 of schedule. " class="figure-slide-image" src="https://figures.academia-assets.com/30740316/figure_005.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/37492481/figure-6-boxplots-of-random-prioritisation-results-on-the"><img alt="Figure 6: Boxplots of random prioritisation results. On the x-axis, ‘Random’ represents random prioritisation with no clustering; ‘RCRP’ represents random clustering and random ICP; ‘HCRP’ represents hierarchical clustering and random ICP. The y-axis shows the observed APFD metric values. For programs for which ICP performed well in Section 5.1, HCRP partially outperforms statement coverage-based prioritisation (represented by the dotted lines) even with random prioritisation. " class="figure-slide-image" src="https://figures.academia-assets.com/30740316/figure_006.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/37492487/table-1-clustering-test-cases-to-achieve-effective-and"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740316/table_001.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/37492494/table-2-suppose-two-test-cases-ft-and-tg-are-being-compared"><img alt="Suppose two test cases ft, and tg are being compared. Let ny be the number of faults detected by t,, and ng by tg. The ‘ideal’ user model used in the paper sets the scale of preference between ft and tz, Pap, aS Shown in Table 2. " class="figure-slide-image" src="https://figures.academia-assets.com/30740316/table_002.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/37492499/table-3-errors-of-type-and-occur-when-human-tester-claims"><img alt="Errors of type 1 and 2 occur when a human tester claims that two test cases are equally important, when in fact one of them is more important than the other. Errors of type 3 and 4 occur wher a human tester claims that a test case is more important than the other, when in fact it is the opposite. Errors of type 5 and 6 occur when a human tester claims that a test case is more important thar the other when in fact they are equally important. Finally, errors of type 7 and 8 occur when a human tester correctly claims the inequality relation between two test cases, but answers the ratio o! relative importance incorrectly. In order to only include errors tha mean the human judgement is definitely wrong, only errors of type 1 to 6 are considered in the empirical studies. Table 3: Different types of errors. " class="figure-slide-image" src="https://figures.academia-assets.com/30740316/table_003.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/37492505/table-7-apfd-values-obtained-from-cps-and-ideal-user-model"><img alt="Table 7: APFD values obtained from /CPs; and ideal user model compared to those of the optimal ordering and the statement coverage-based prioritisation. Cells with grey background represent the fact that /CP; outperformed statement coverage-basec prioritisation in terms of APFD. Table 8: APFD values obtained from /C Py with different p,;c, values and ideal user model, ranging from ‘extremely favours huma expert’s judgement (9)’ to ‘extremely favours coverage-based prioritisation (3)’. " class="figure-slide-image" src="https://figures.academia-assets.com/30740316/table_004.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/37492516/table-5-clustering-test-cases-to-achieve-effective-and"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740316/table_005.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/37492575/table-9-results-of-the-suitability-test-ncsp-is-the"><img alt="Table 9: Results of the suitability test. NCSP is the traditional statement coverage-based prioritisation. HCSP is ICP with statement coverage prioritisation for both intra- and inter-cluster prioritisation. If HCSP performs no worse than NCSP, the test passes, i.e. ICP is expected to outperform NCSP with the faults in the TBR set. Cells with grey background show passed tests with correct prediction; cells with white background denote failed tests with correct prediction. The second test suite of schedule and the test suite of vim produce false negative results (denoted by *). " class="figure-slide-image" src="https://figures.academia-assets.com/30740316/table_006.jpg" /></a></figure></div><div class="next-slide-container js-next-button-container"><button aria-label="Next" class="carousel-navigation-button js-profile-work-2787582-figures-next"><span class="material-symbols-outlined" style="font-size: 24px" translate="no">arrow_forward_ios</span></button></div></div></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="f1e46b845d0cad6183f47f2c92a2179b" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30740316,"asset_id":2787582,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30740316/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787582"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787582"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787582; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787582]").text(description); $(".js-view-count[data-work-id=2787582]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787582; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787582']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "f1e46b845d0cad6183f47f2c92a2179b" } } $('.js-work-strip[data-work-id=2787582]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787582,"title":"Clustering test cases to achieve effective and scalable prioritisation incorporating expert knowledge","translated_title":"","metadata":{"abstract":"Abstract Pair-wise comparison has been successfully utilised in order to prioritise test cases by exploiting the rich, valuable and unique knowledge of the tester. However, the prohibitively large cost of the pair-wise comparison method prevents it from being applied to large test suites. In this paper, we introduce a cluster-based test case prioritisation technique. By clustering test cases, based on their dynamic runtime behaviour, we can reduce the required number of pair-wise comparisons significantly.","ai_title_tag":"Cluster-Based Test Case Prioritisation with Expert Knowledge","publication_date":{"day":19,"month":7,"year":2009,"errors":{}}},"translated_abstract":"Abstract Pair-wise comparison has been successfully utilised in order to prioritise test cases by exploiting the rich, valuable and unique knowledge of the tester. However, the prohibitively large cost of the pair-wise comparison method prevents it from being applied to large test suites. In this paper, we introduce a cluster-based test case prioritisation technique. By clustering test cases, based on their dynamic runtime behaviour, we can reduce the required number of pair-wise comparisons significantly.","internal_url":"https://www.academia.edu/2787582/Clustering_test_cases_to_achieve_effective_and_scalable_prioritisation_incorporating_expert_knowledge","translated_internal_url":"","created_at":"2013-03-03T14:48:39.387-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30740316,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"Yoo2009cr.pdf","download_url":"https://www.academia.edu/attachments/30740316/download_file","bulk_download_file_name":"Clustering_test_cases_to_achieve_effecti.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740316/Yoo2009cr-libre.pdf?1391837991=\u0026response-content-disposition=attachment%3B+filename%3DClustering_test_cases_to_achieve_effecti.pdf\u0026Expires=1743457637\u0026Signature=Vk~zIU755m6n5rpEsjA2OLbO8YfHnDm3e8yaykbo88zcwjP3abTOjy54xGQjNyAcu19ND1ecJQyaNb~HCKefEiAzdRQIwtLDkfPnoALDsSPAAXyuXtW6q~ffB44EUR2OOKGjw1WqYa-X~eecP8yF5M1mW8wKSTvizN5BXQM6tLxuC-fqHNrmPpxDnI25Ni30BJavI3gyTlW0V2oucfR4VDRM-OGtOLsq745iAUG7EpsrGmY6dLi0vXWro0sK2YktdzMZi~-K33vkpXL2gtYjOZGqzv2WrXsoKinDYJOM3tarWc5-61Shmpp11mqq9kJ44XK1kaiB3T7bmbFxwN4tDA__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"Clustering_test_cases_to_achieve_effective_and_scalable_prioritisation_incorporating_expert_knowledge","translated_slug":"","page_count":11,"language":"en","content_type":"Work","summary":"Abstract Pair-wise comparison has been successfully utilised in order to prioritise test cases by exploiting the rich, valuable and unique knowledge of the tester. However, the prohibitively large cost of the pair-wise comparison method prevents it from being applied to large test suites. In this paper, we introduce a cluster-based test case prioritisation technique. By clustering test cases, based on their dynamic runtime behaviour, we can reduce the required number of pair-wise comparisons significantly.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30740316,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"Yoo2009cr.pdf","download_url":"https://www.academia.edu/attachments/30740316/download_file","bulk_download_file_name":"Clustering_test_cases_to_achieve_effecti.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740316/Yoo2009cr-libre.pdf?1391837991=\u0026response-content-disposition=attachment%3B+filename%3DClustering_test_cases_to_achieve_effecti.pdf\u0026Expires=1743457637\u0026Signature=Vk~zIU755m6n5rpEsjA2OLbO8YfHnDm3e8yaykbo88zcwjP3abTOjy54xGQjNyAcu19ND1ecJQyaNb~HCKefEiAzdRQIwtLDkfPnoALDsSPAAXyuXtW6q~ffB44EUR2OOKGjw1WqYa-X~eecP8yF5M1mW8wKSTvizN5BXQM6tLxuC-fqHNrmPpxDnI25Ni30BJavI3gyTlW0V2oucfR4VDRM-OGtOLsq745iAUG7EpsrGmY6dLi0vXWro0sK2YktdzMZi~-K33vkpXL2gtYjOZGqzv2WrXsoKinDYJOM3tarWc5-61Shmpp11mqq9kJ44XK1kaiB3T7bmbFxwN4tDA__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671160,"url":"http://www0.cs.ucl.ac.uk/staff/S.Yoo/papers/Yoo2009cr.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (true) { Aedu.setUpFigureCarousel('profile-work-2787582-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787581"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" rel="nofollow" href="https://www.academia.edu/2787581/Automatically_generating_realistic_test_input_from_web_services"><img alt="Research paper thumbnail of Automatically generating realistic test input from web services" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title">Automatically generating realistic test input from web services</div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract Generating realistic test data is a major problem for software testers. Realistic test d...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract Generating realistic test data is a major problem for software testers. Realistic test data generation for certain input types is hard to automate and therefore laborious. We propose a novel automated solution to test data generation that exploits existing web services as sources of realistic test data. Our approach is capable of generating realistic test data and also generating data based on tester-specified constraints.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787581"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787581"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787581; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787581]").text(description); $(".js-view-count[data-work-id=2787581]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787581; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787581']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (false){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "-1" } } $('.js-work-strip[data-work-id=2787581]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787581,"title":"Automatically generating realistic test input from web services","translated_title":"","metadata":{"abstract":"Abstract Generating realistic test data is a major problem for software testers. Realistic test data generation for certain input types is hard to automate and therefore laborious. We propose a novel automated solution to test data generation that exploits existing web services as sources of realistic test data. Our approach is capable of generating realistic test data and also generating data based on tester-specified constraints.","publication_date":{"day":12,"month":12,"year":2011,"errors":{}}},"translated_abstract":"Abstract Generating realistic test data is a major problem for software testers. Realistic test data generation for certain input types is hard to automate and therefore laborious. We propose a novel automated solution to test data generation that exploits existing web services as sources of realistic test data. Our approach is capable of generating realistic test data and also generating data based on tester-specified constraints.","internal_url":"https://www.academia.edu/2787581/Automatically_generating_realistic_test_input_from_web_services","translated_internal_url":"","created_at":"2013-03-03T14:48:39.315-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[],"slug":"Automatically_generating_realistic_test_input_from_web_services","translated_slug":"","page_count":null,"language":"en","content_type":"Work","summary":"Abstract Generating realistic test data is a major problem for software testers. Realistic test data generation for certain input types is hard to automate and therefore laborious. We propose a novel automated solution to test data generation that exploits existing web services as sources of realistic test data. Our approach is capable of generating realistic test data and also generating data based on tester-specified constraints.","impression_tracking_id":null,"owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[],"research_interests":[],"urls":[{"id":671159,"url":"http://www0.cs.ucl.ac.uk/staff/M.Bozkurt/files/pdf/bozkurt_harman_SOSE2011_realistic_test_data_from_ws.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787581-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787580"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787580/The_next_700_slicing_criteria"><img alt="Research paper thumbnail of The next 700 slicing criteria" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787580/The_next_700_slicing_criteria">The next 700 slicing criteria</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract A slice is constructed by deleting statements from a program whilst preserving some proj...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract A slice is constructed by deleting statements from a program whilst preserving some projection of its semantics. Since Mark Weiser introduced program slicing in 1979, a wide variety of slicing paradigms have been proposed, each of which is based upon a new formulation of the slicing criterion, capturing the semantic projection to be preserved during the process of command deletion. This paper surveys these slicing criteria, attempting to establish a set of parameters which combine to form a slicing criterion.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="24f7e05f3646ce280285aa179ee415a4" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30740299,"asset_id":2787580,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30740299/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787580"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787580"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787580; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787580]").text(description); $(".js-view-count[data-work-id=2787580]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787580; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787580']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "24f7e05f3646ce280285aa179ee415a4" } } $('.js-work-strip[data-work-id=2787580]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787580,"title":"The next 700 slicing criteria","translated_title":"","metadata":{"abstract":"Abstract A slice is constructed by deleting statements from a program whilst preserving some projection of its semantics. Since Mark Weiser introduced program slicing in 1979, a wide variety of slicing paradigms have been proposed, each of which is based upon a new formulation of the slicing criterion, capturing the semantic projection to be preserved during the process of command deletion. This paper surveys these slicing criteria, attempting to establish a set of parameters which combine to form a slicing criterion.","journal_name":"Second UK Workshop on Program Comprehension","publication_date":{"day":null,"month":7,"year":1996,"errors":{}}},"translated_abstract":"Abstract A slice is constructed by deleting statements from a program whilst preserving some projection of its semantics. Since Mark Weiser introduced program slicing in 1979, a wide variety of slicing paradigms have been proposed, each of which is based upon a new formulation of the slicing criterion, capturing the semantic projection to be preserved during the process of command deletion. This paper surveys these slicing criteria, attempting to establish a set of parameters which combine to form a slicing criterion.","internal_url":"https://www.academia.edu/2787580/The_next_700_slicing_criteria","translated_internal_url":"","created_at":"2013-03-03T14:48:39.245-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30740299,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"wpc96.pdf","download_url":"https://www.academia.edu/attachments/30740299/download_file","bulk_download_file_name":"The_next_700_slicing_criteria.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740299/wpc96-libre.pdf?1392088946=\u0026response-content-disposition=attachment%3B+filename%3DThe_next_700_slicing_criteria.pdf\u0026Expires=1743457637\u0026Signature=HFJbpaE1R-dEwBxW2LXHa8VsC2XN-pGH5TMEFUL41Xe2ByZPaP9gpJ9PsJir9~Jkvt3h5q3-4JAmzMhHHC9Ac2UrjLlw~Dgqhp~AnE1p2pWkvK2XKUrVzRoa2xzKADRwbGHI-cZEGA6D~cINUmd4HFxaIyw9ceQxhhZEpcJalsFplk4A6UG7z1f8RMnmr7uD9nd4fC36gQ4AdTJgP0P7xT9NpovlwHoMU~zjU-CdOJ~jcvCuUtQ6Dar~mLwbI85NnNIin5LqQeWEU-YdIAhvMsr1otnCdW9pTyKwSf7vCW~VNJLRQWNgAX~C4SBnDoeC9NgB7sLQ0uqsA6WcOYXuig__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"The_next_700_slicing_criteria","translated_slug":"","page_count":16,"language":"en","content_type":"Work","summary":"Abstract A slice is constructed by deleting statements from a program whilst preserving some projection of its semantics. Since Mark Weiser introduced program slicing in 1979, a wide variety of slicing paradigms have been proposed, each of which is based upon a new formulation of the slicing criterion, capturing the semantic projection to be preserved during the process of command deletion. This paper surveys these slicing criteria, attempting to establish a set of parameters which combine to form a slicing criterion.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30740299,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"wpc96.pdf","download_url":"https://www.academia.edu/attachments/30740299/download_file","bulk_download_file_name":"The_next_700_slicing_criteria.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740299/wpc96-libre.pdf?1392088946=\u0026response-content-disposition=attachment%3B+filename%3DThe_next_700_slicing_criteria.pdf\u0026Expires=1743457637\u0026Signature=HFJbpaE1R-dEwBxW2LXHa8VsC2XN-pGH5TMEFUL41Xe2ByZPaP9gpJ9PsJir9~Jkvt3h5q3-4JAmzMhHHC9Ac2UrjLlw~Dgqhp~AnE1p2pWkvK2XKUrVzRoa2xzKADRwbGHI-cZEGA6D~cINUmd4HFxaIyw9ceQxhhZEpcJalsFplk4A6UG7z1f8RMnmr7uD9nd4fC36gQ4AdTJgP0P7xT9NpovlwHoMU~zjU-CdOJ~jcvCuUtQ6Dar~mLwbI85NnNIin5LqQeWEU-YdIAhvMsr1otnCdW9pTyKwSf7vCW~VNJLRQWNgAX~C4SBnDoeC9NgB7sLQ0uqsA6WcOYXuig__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671158,"url":"http://www0.cs.ucl.ac.uk/staff/mharman/wpc96.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787580-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787579"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787579/FLINT_Fault_Localisation_using_Information_Theory"><img alt="Research paper thumbnail of FLINT: Fault Localisation using Information Theory" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787579/FLINT_Fault_Localisation_using_Information_Theory">FLINT: Fault Localisation using Information Theory</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract Test case prioritisation techniques aim to maximise the chance of fault detection as ear...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract Test case prioritisation techniques aim to maximise the chance of fault detection as early in testing as possible. This is most commonly achieved by prioritising the tests according to a surrogate measure that is thought to correspond to fault detection capabilities, such as code coverage. However, once the prioritised test suite indeed detects a fault, the original prioritisation may become obsolete.</span></div><div class="wp-workCard_item"><div class="carousel-container carousel-container--sm" id="profile-work-2787579-figures"><div class="prev-slide-container js-prev-button-container"><button aria-label="Previous" class="carousel-navigation-button js-profile-work-2787579-figures-prev"><span class="material-symbols-outlined" style="font-size: 24px" translate="no">arrow_back_ios</span></button></div><div class="slides-container js-slides-container"><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/36016499/table-1-motivating-example-coverage-based-prioritisation"><img alt="Table 1: Motivating Example: coverage-based prioritisation would execute ¢3 after the first failure (£2), resulting in sub-optimal suspiciousness metric values. However, if t4 is executed after the first failure, the faulty s7 will get assigned the optimal suspiciousness value. " class="figure-slide-image" src="https://figures.academia-assets.com/30740281/figure_001.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/36016510/figure-1-plots-of-suspiciousness-and-expense-reduction-from"><img alt="Figure 1: Plots of suspiciousness and Expense reduction from the precision study. Figure 1(a) represent the cases when FLINT approach produces higher suspiciousness and lower Expense, compared to TCP approach, with statistical significance. Figure 1(b) and 1(c) represent the cases when the reduction in entropy achieved by FLINT results in reduced Expense, despite the fact that the suspiciousness value of the faulty statement is equal to that from TCP approach (Figure 1(b)) or even lower (Figure 1(c)). This is because the reduction in entropy is achieved by /owering the suspiciousness metric for non-faulty statements. Howewver, in Figure 1(d), the suspiciousness metric is not in alignment with Expense: the increased suspiciousness metric resulted in higher Expense. " class="figure-slide-image" src="https://figures.academia-assets.com/30740281/figure_002.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/36016521/figure-2-plots-of-suspiciousness-and-expense-reduction-from"><img alt="Figure 2: Plots of suspiciousness and Expense reduction from the robustness study. Figure 2(a) and 2(c) correspond to Figure 1(a) and 1(c) respectively: FLINT achieves improved suspiciousness and reduced Expense for these faults, despite the use of coverage information from the previous version for the looka- head. Figure 2(b) shows another positive result. Figure 2(d) shows a case when reduction in Expense is possible in early stage of the testing, even though the mean F’p is lower than the mean E’y with statistical significance. " class="figure-slide-image" src="https://figures.academia-assets.com/30740281/figure_003.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/36016541/table-1-flint-fault-localisation-using-information-theory"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740281/table_001.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/36016586/table-2-flint-fault-localisation-using-information-theory"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740281/table_002.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/36016598/table-4-statistical-analysis-for-precision-study-ps-and-pn"><img alt="Table 4: Statistical Analysis for Precision Study: PS and PN denote that FLINT achieves improvements over TCP with and without statistical significance, respectively. Similarly, NS and NN denote degenera- tion with and without statistical significance. EQ denotes that TCP and FLINT produces the same results. Excluding 37 faults that do not provide any room for improvement of suspiciousness (because 7 = 1.0 regardless of test ordering for these faults), FLINT achieves higher suspiciousness with statistical signifi- cance for 64% of faults (35 out of 55). However, this does not always translate into lower Expense, as can be seen from the results of the statistical hypothesis testing for Expense (Zz) due to inherent limitations in coverage-based suspiciousness metrics described in Section 2.2 and Section 5.3. " class="figure-slide-image" src="https://figures.academia-assets.com/30740281/table_003.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/36016602/figure-1-however-the-results-also-show-that-increment-of-the"><img alt="However, the results also show that increment of the suspiciousness metric may not always result in reduc- tion in Expense, as discussed in Section 2.2 and Section 5.3. In Figure 1(d), although 7p of fault F_HD_7 for version 1 of flex is higher with statistical significance than 77, FLINT fails to make reductions in Ex- pense. This means that, when considering the impact of FLINT on Expense reduction, we cannot exclude faults in EQ category. To answer RQ1, Table 4 and 5 provide evidence that FLINT achieves higher suspiciousness with statistical significance for 64% of studied faults for which there exist room for improvement. It produces lower suspiciousness with statistical significance for only 27% of the faults. " class="figure-slide-image" src="https://figures.academia-assets.com/30740281/table_004.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/36016608/table-6-statistical-analysis-for-robustness-study-ps-and-pn"><img alt="Table 6: Statistical Analysis for Robustness Study: PS and PN denote that FLINT achieves improvements over TCP with and without statistical significance, respectively. Similarly, NS and NN denote degenera- tion with and without statistical significance. EQ denotes that TCP and FLINT produces the same results. Excluding 24 faults that do not provide any room for improvement of suspiciousness (because 7 = 1.0 regardless of test ordering for these faults), FLINT achieves higher suspiciousness with statistical signifi- cance for 54% of faults (21 out of 39). However, as observed in the precision study, this does not always translate into lower Expense. " class="figure-slide-image" src="https://figures.academia-assets.com/30740281/table_005.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/36016617/table-6-flint-fault-localisation-using-information-theory"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740281/table_006.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/36016623/table-7-hypothesis-test-for-robustness-study"><img alt="Table 7: Hypothesis Test for Robustness Study " class="figure-slide-image" src="https://figures.academia-assets.com/30740281/table_007.jpg" /></a></figure></div><div class="next-slide-container js-next-button-container"><button aria-label="Next" class="carousel-navigation-button js-profile-work-2787579-figures-next"><span class="material-symbols-outlined" style="font-size: 24px" translate="no">arrow_forward_ios</span></button></div></div></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="44e678e39a21b1179feee69484f776a8" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30740281,"asset_id":2787579,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30740281/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787579"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787579"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787579; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787579]").text(description); $(".js-view-count[data-work-id=2787579]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787579; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787579']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "44e678e39a21b1179feee69484f776a8" } } $('.js-work-strip[data-work-id=2787579]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787579,"title":"FLINT: Fault Localisation using Information Theory","translated_title":"","metadata":{"abstract":"Abstract Test case prioritisation techniques aim to maximise the chance of fault detection as early in testing as possible. This is most commonly achieved by prioritising the tests according to a surrogate measure that is thought to correspond to fault detection capabilities, such as code coverage. However, once the prioritised test suite indeed detects a fault, the original prioritisation may become obsolete.","journal_name":"RN","publication_date":{"day":14,"month":3,"year":2011,"errors":{}}},"translated_abstract":"Abstract Test case prioritisation techniques aim to maximise the chance of fault detection as early in testing as possible. This is most commonly achieved by prioritising the tests according to a surrogate measure that is thought to correspond to fault detection capabilities, such as code coverage. However, once the prioritised test suite indeed detects a fault, the original prioritisation may become obsolete.","internal_url":"https://www.academia.edu/2787579/FLINT_Fault_Localisation_using_Information_Theory","translated_internal_url":"","created_at":"2013-03-03T14:48:39.165-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30740281,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"Yoo2011zr.pdf","download_url":"https://www.academia.edu/attachments/30740281/download_file","bulk_download_file_name":"FLINT_Fault_Localisation_using_Informati.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740281/Yoo2011zr-libre.pdf?1391800831=\u0026response-content-disposition=attachment%3B+filename%3DFLINT_Fault_Localisation_using_Informati.pdf\u0026Expires=1743457637\u0026Signature=OSWwGgSCWJlkUh7bAV8B~Ix1lBhjRPJHw6EzLU-iRNmkGk6UJLiDTgfGPer48aDcvvXMQ6ghPD8oEdD5MGvCaHTkvYSVfLgWnDW3ivFlOjmEtfeiLww0bfLNPLN0SmCVsysadSYK8xJr3wKYnmUP9XTeHWElpfOEUMZptEZQSKhIB3ibXod67om84Hid3Vl7I90XL0x5zwpA4RvADckkUSMgb6kajFAwNV~fcv9eEo3dxG3auRF-zvJw~nawDF0~2IZaKSSDTTMFaAYkYvuWgBlj9AuIvyIf9Tpue1woa7kYsUnmki1mX5jtA1ri9S0diYtpPzyfuRIEoGAoPvMenw__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"FLINT_Fault_Localisation_using_Information_Theory","translated_slug":"","page_count":18,"language":"en","content_type":"Work","summary":"Abstract Test case prioritisation techniques aim to maximise the chance of fault detection as early in testing as possible. This is most commonly achieved by prioritising the tests according to a surrogate measure that is thought to correspond to fault detection capabilities, such as code coverage. However, once the prioritised test suite indeed detects a fault, the original prioritisation may become obsolete.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30740281,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"Yoo2011zr.pdf","download_url":"https://www.academia.edu/attachments/30740281/download_file","bulk_download_file_name":"FLINT_Fault_Localisation_using_Informati.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740281/Yoo2011zr-libre.pdf?1391800831=\u0026response-content-disposition=attachment%3B+filename%3DFLINT_Fault_Localisation_using_Informati.pdf\u0026Expires=1743457637\u0026Signature=OSWwGgSCWJlkUh7bAV8B~Ix1lBhjRPJHw6EzLU-iRNmkGk6UJLiDTgfGPer48aDcvvXMQ6ghPD8oEdD5MGvCaHTkvYSVfLgWnDW3ivFlOjmEtfeiLww0bfLNPLN0SmCVsysadSYK8xJr3wKYnmUP9XTeHWElpfOEUMZptEZQSKhIB3ibXod67om84Hid3Vl7I90XL0x5zwpA4RvADckkUSMgb6kajFAwNV~fcv9eEo3dxG3auRF-zvJw~nawDF0~2IZaKSSDTTMFaAYkYvuWgBlj9AuIvyIf9Tpue1woa7kYsUnmki1mX5jtA1ri9S0diYtpPzyfuRIEoGAoPvMenw__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671157,"url":"http://www0.cs.ucl.ac.uk/staff/S.Yoo/papers/Yoo2011zr.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (true) { Aedu.setUpFigureCarousel('profile-work-2787579-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787578"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787578/Automated_session_data_repair_for_web_application_regression_testing"><img alt="Research paper thumbnail of Automated session data repair for web application regression testing" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787578/Automated_session_data_repair_for_web_application_regression_testing">Automated session data repair for web application regression testing</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract This paper introduces an approach to web application regression testing, based upon repa...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract This paper introduces an approach to web application regression testing, based upon repair of user session data. The approach is entirely automated. It consists of a white box examination of the structure of the changed web application to detect changes and a set of techniques to map these detected changes onto repair actions. The paper reports the results of experiments that explore both the performance and effectiveness of the approach.</span></div><div class="wp-workCard_item"><div class="carousel-container carousel-container--sm" id="profile-work-2787578-figures"><div class="prev-slide-container js-prev-button-container"><button aria-label="Previous" class="carousel-navigation-button js-profile-work-2787578-figures-prev"><span class="material-symbols-outlined" style="font-size: 24px" translate="no">arrow_back_ios</span></button></div><div class="slides-container js-slides-container"><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/44198502/figure-2-an-illustration-of-edge-deletion-repair-if-the-link"><img alt="Figure 2. An Illustration of Edge Deletion Repair. If the link from node 4 to node 5 is removed, but the nodes remain, then a new path must be found to navigate from node 4 to node 5. " class="figure-slide-image" src="https://figures.academia-assets.com/30740251/figure_001.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/44198510/figure-4-an-illustration-of-the-default-repair-operation"><img alt="Figure 4. An Illustration of the Default Repair Operation: When no path in the new structure can be found to navigate from node 4 to node 5, then the old session is split into two sub— sequences to which the repair algorithm is recursively applied. Figure 4. An Illustration of the Default Repair Operation: Figure 3. An Illustration of Node Deletion Repair. If a page (node 5 in this case) should be removed, then a new path must be found to navigate from its predecessor to its successor. " class="figure-slide-image" src="https://figures.academia-assets.com/30740251/figure_002.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/44198523/figure-3-automated-session-data-repair-for-web-application"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740251/figure_003.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/44198539/table-1-basic-data-on-web-application-evolution-the-on-line"><img alt="Table 1. Basic Data on Web Application Evolution. The on-line bookstore application evolved, through a series of changes according to a set of user requests for additional and changed functionality. The number of modified pages are those which retained their identity, but the content was modified. " class="figure-slide-image" src="https://figures.academia-assets.com/30740251/figure_004.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/44198558/figure-7-relationship-between-execution-time-and-number-of"><img alt="Figure 7. Relationship between Execution Time and Number of Sessions for Steps 1 and 4 of the Algorithm in Figure 1 are retained (though a proportion of these do become split). " class="figure-slide-image" src="https://figures.academia-assets.com/30740251/figure_005.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/44198588/figure-6-ure-shows-the-percentage-of-all-repair-actions"><img alt="ure shows the percentage (of all repair actions performed) that " class="figure-slide-image" src="https://figures.academia-assets.com/30740251/figure_006.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/44198611/figure-7-automated-session-data-repair-for-web-application"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740251/figure_007.jpg" /></a></figure><figure class="figure-slide-container"><a href="https://www.academia.edu/figures/44198625/table-1-automated-session-data-repair-for-web-application"><img alt="" class="figure-slide-image" src="https://figures.academia-assets.com/30740251/table_001.jpg" /></a></figure></div><div class="next-slide-container js-next-button-container"><button aria-label="Next" class="carousel-navigation-button js-profile-work-2787578-figures-next"><span class="material-symbols-outlined" style="font-size: 24px" translate="no">arrow_forward_ios</span></button></div></div></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="9ca8afe3c1dde9d5bc0419222c8106a4" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30740251,"asset_id":2787578,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30740251/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787578"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787578"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787578; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787578]").text(description); $(".js-view-count[data-work-id=2787578]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787578; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787578']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "9ca8afe3c1dde9d5bc0419222c8106a4" } } $('.js-work-strip[data-work-id=2787578]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787578,"title":"Automated session data repair for web application regression testing","translated_title":"","metadata":{"abstract":"Abstract This paper introduces an approach to web application regression testing, based upon repair of user session data. The approach is entirely automated. It consists of a white box examination of the structure of the changed web application to detect changes and a set of techniques to map these detected changes onto repair actions. The paper reports the results of experiments that explore both the performance and effectiveness of the approach.","publication_date":{"day":9,"month":4,"year":2008,"errors":{}}},"translated_abstract":"Abstract This paper introduces an approach to web application regression testing, based upon repair of user session data. The approach is entirely automated. It consists of a white box examination of the structure of the changed web application to detect changes and a set of techniques to map these detected changes onto repair actions. The paper reports the results of experiments that explore both the performance and effectiveness of the approach.","internal_url":"https://www.academia.edu/2787578/Automated_session_data_repair_for_web_application_regression_testing","translated_internal_url":"","created_at":"2013-03-03T14:48:39.091-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30740251,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"icst08-testweb-harman.pdf","download_url":"https://www.academia.edu/attachments/30740251/download_file","bulk_download_file_name":"Automated_session_data_repair_for_web_ap.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740251/icst08-testweb-harman-libre.pdf?1391870973=\u0026response-content-disposition=attachment%3B+filename%3DAutomated_session_data_repair_for_web_ap.pdf\u0026Expires=1743457637\u0026Signature=d3WFChYlw3O5SWT0~Nn2SY0wvTGXrcoSUaeDHO4aVZIQ79GzZyW5Xmq-xg5DTJJSqZm3s0zeLndiNrlPa3FpXmxis~hPPy~-xoro87e-0r1uxAjOgpJL7hWXC0nJymPFZtl386-8QaWoPXIIbkWOt0ePSG1LVPLznvgP-Se66Si26fFiUMaHav2ZD8mg6z9pOhtM5o0NKmjPPDxnhCdseUwKSzQgPjAZ3TA~g5olYFcbHx0q47KlYuX16VTOQzH8pKU981C~RoJyJpovcSbBBzFiusWMYLHiPc52D1p1HH9AMvY~zlPz-f6wY3wCsxyHqKwWPnkNTreh59WTpNCFAA__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"Automated_session_data_repair_for_web_application_regression_testing","translated_slug":"","page_count":10,"language":"en","content_type":"Work","summary":"Abstract This paper introduces an approach to web application regression testing, based upon repair of user session data. The approach is entirely automated. It consists of a white box examination of the structure of the changed web application to detect changes and a set of techniques to map these detected changes onto repair actions. The paper reports the results of experiments that explore both the performance and effectiveness of the approach.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30740251,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"icst08-testweb-harman.pdf","download_url":"https://www.academia.edu/attachments/30740251/download_file","bulk_download_file_name":"Automated_session_data_repair_for_web_ap.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30740251/icst08-testweb-harman-libre.pdf?1391870973=\u0026response-content-disposition=attachment%3B+filename%3DAutomated_session_data_repair_for_web_ap.pdf\u0026Expires=1743457637\u0026Signature=d3WFChYlw3O5SWT0~Nn2SY0wvTGXrcoSUaeDHO4aVZIQ79GzZyW5Xmq-xg5DTJJSqZm3s0zeLndiNrlPa3FpXmxis~hPPy~-xoro87e-0r1uxAjOgpJL7hWXC0nJymPFZtl386-8QaWoPXIIbkWOt0ePSG1LVPLznvgP-Se66Si26fFiUMaHav2ZD8mg6z9pOhtM5o0NKmjPPDxnhCdseUwKSzQgPjAZ3TA~g5olYFcbHx0q47KlYuX16VTOQzH8pKU981C~RoJyJpovcSbBBzFiusWMYLHiPc52D1p1HH9AMvY~zlPz-f6wY3wCsxyHqKwWPnkNTreh59WTpNCFAA__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671156,"url":"http://hiper.cis.udel.edu/lp/lib/exe/fetch.php/courses/icst08-testweb-harman.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (true) { Aedu.setUpFigureCarousel('profile-work-2787578-figures'); } }); </script> <div class="js-work-strip profile--work_container" data-work-id="2787577"><div class="profile--work_thumbnail hidden-xs"><a class="js-work-strip-work-link" data-click-track="profile-work-strip-thumbnail" href="https://www.academia.edu/2787577/Getting_results_from_search_based_approaches_to_software_engineering"><img alt="Research paper thumbnail of Getting results from search-based approaches to software engineering" class="work-thumbnail" src="https://a.academia-assets.com/images/blank-paper.jpg" /></a></div><div class="wp-workCard wp-workCard_itemContainer"><div class="wp-workCard_item wp-workCard--title"><a class="js-work-strip-work-link text-gray-darker" data-click-track="profile-work-strip-title" href="https://www.academia.edu/2787577/Getting_results_from_search_based_approaches_to_software_engineering">Getting results from search-based approaches to software engineering</a></div><div class="wp-workCard_item"><span class="js-work-more-abstract-truncated">Abstract Like other engineering disciplines, software engineering is typically concerned with nea...</span><a class="js-work-more-abstract" data-broccoli-component="work_strip.more_abstract" data-click-track="profile-work-strip-more-abstract" href="javascript:;"><span> more </span><span><i class="fa fa-caret-down"></i></span></a><span class="js-work-more-abstract-untruncated hidden">Abstract Like other engineering disciplines, software engineering is typically concerned with near optimal solutions or those which fall within a specified applicable tolerance. More recently, search-based techniques have started to find application in software engineering problem domains. This area of search-based software engineering has its origins in work on search-based testing, which began in the mid 1990s. Already, search-based solutions have been applied to software engineering problems right through the development life cycle.</span></div><div class="wp-workCard_item wp-workCard--actions"><span class="work-strip-bookmark-button-container"></span><a id="901e699ad003d9e4d8a80b118ca27e03" class="wp-workCard--action" rel="nofollow" data-click-track="profile-work-strip-download" data-download="{"attachment_id":30838819,"asset_id":2787577,"asset_type":"Work","button_location":"profile"}" href="https://www.academia.edu/attachments/30838819/download_file?s=profile"><span><i class="fa fa-arrow-down"></i></span><span>Download</span></a><span class="wp-workCard--action visible-if-viewed-by-owner inline-block" style="display: none;"><span class="js-profile-work-strip-edit-button-wrapper profile-work-strip-edit-button-wrapper" data-work-id="2787577"><a class="js-profile-work-strip-edit-button" tabindex="0"><span><i class="fa fa-pencil"></i></span><span>Edit</span></a></span></span></div><div class="wp-workCard_item wp-workCard--stats"><span><span><span class="js-view-count view-count u-mr2x" data-work-id="2787577"><i class="fa fa-spinner fa-spin"></i></span><script>$(function () { var workId = 2787577; window.Academia.workViewCountsFetcher.queue(workId, function (count) { var description = window.$h.commaizeInt(count) + " " + window.$h.pluralize(count, 'View'); $(".js-view-count[data-work-id=2787577]").text(description); $(".js-view-count[data-work-id=2787577]").attr('title', description).tooltip(); }); });</script></span></span><span><span class="percentile-widget hidden"><span class="u-mr2x work-percentile"></span></span><script>$(function () { var workId = 2787577; window.Academia.workPercentilesFetcher.queue(workId, function (percentileText) { var container = $(".js-work-strip[data-work-id='2787577']"); container.find('.work-percentile').text(percentileText.charAt(0).toUpperCase() + percentileText.slice(1)); container.find('.percentile-widget').show(); container.find('.percentile-widget').removeClass('hidden'); }); });</script></span></div><div id="work-strip-premium-row-container"></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/work_edit-ad038b8c047c1a8d4fa01b402d530ff93c45fee2137a149a4a5398bc8ad67560.js"], function() { // from javascript_helper.rb var dispatcherData = {} if (true){ window.WowProfile.dispatcher = window.WowProfile.dispatcher || _.clone(Backbone.Events); dispatcherData = { dispatcher: window.WowProfile.dispatcher, downloadLinkId: "901e699ad003d9e4d8a80b118ca27e03" } } $('.js-work-strip[data-work-id=2787577]').each(function() { if (!$(this).data('initialized')) { new WowProfile.WorkStripView({ el: this, workJSON: {"id":2787577,"title":"Getting results from search-based approaches to software engineering","translated_title":"","metadata":{"abstract":"Abstract Like other engineering disciplines, software engineering is typically concerned with near optimal solutions or those which fall within a specified applicable tolerance. More recently, search-based techniques have started to find application in software engineering problem domains. This area of search-based software engineering has its origins in work on search-based testing, which began in the mid 1990s. Already, search-based solutions have been applied to software engineering problems right through the development life cycle.","ai_title_tag":"Search-Based Techniques in Software Engineering","publication_date":{"day":23,"month":5,"year":2004,"errors":{}}},"translated_abstract":"Abstract Like other engineering disciplines, software engineering is typically concerned with near optimal solutions or those which fall within a specified applicable tolerance. More recently, search-based techniques have started to find application in software engineering problem domains. This area of search-based software engineering has its origins in work on search-based testing, which began in the mid 1990s. Already, search-based solutions have been applied to software engineering problems right through the development life cycle.","internal_url":"https://www.academia.edu/2787577/Getting_results_from_search_based_approaches_to_software_engineering","translated_internal_url":"","created_at":"2013-03-03T14:48:39.018-08:00","preview_url":null,"current_user_can_edit":null,"current_user_is_owner":null,"owner_id":314132,"coauthors_can_edit":true,"document_type":"paper","co_author_tags":[],"downloadable_attachments":[{"id":30838819,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"instrumenting_programs_with_flag_variables_for_test_data_search_by.pdf","download_url":"https://www.academia.edu/attachments/30838819/download_file","bulk_download_file_name":"Getting_results_from_search_based_approa.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30838819/instrumenting_programs_with_flag_variables_for_test_data_search_by-libre.pdf?1390962952=\u0026response-content-disposition=attachment%3B+filename%3DGetting_results_from_search_based_approa.pdf\u0026Expires=1743457637\u0026Signature=PGUs~ghchVCmRPuQ2g1lXj4EOEEiDVNHBPchFoXnma3k7gVLyeR4n8kP0PQx41wQmLNds4erPFE2EAv6e~8vfTGStduyL1zw8yRtprMtqiJpZAacx88ctkRn4mqvqX-tG~GZ4teOY-bql8L9NFU8M9bYpwdop6KGRaIFUXHhrJ5kbm9Q68epJxKxZA6ukMu45Mty3fljxGxpzshzW3ECvWKIFzC0pyd-K-1PJc~DOJnzbk~eHQPOdX2nGhyTLCyRGVO8-zx3CPFtZqeYCulAyy~XojX0G6OK1iAkTPXwXJNL~1aqgxr0rFvJicyN8Ix4G3sT1WJou-uAButflQ51TA__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"slug":"Getting_results_from_search_based_approaches_to_software_engineering","translated_slug":"","page_count":2,"language":"en","content_type":"Work","summary":"Abstract Like other engineering disciplines, software engineering is typically concerned with near optimal solutions or those which fall within a specified applicable tolerance. More recently, search-based techniques have started to find application in software engineering problem domains. This area of search-based software engineering has its origins in work on search-based testing, which began in the mid 1990s. Already, search-based solutions have been applied to software engineering problems right through the development life cycle.","owner":{"id":314132,"first_name":"Mark","middle_initials":null,"last_name":"Harman","page_name":"MarkHarman","domain_name":"ucl","created_at":"2011-01-22T03:40:06.379-08:00","display_name":"Mark Harman","url":"https://ucl.academia.edu/MarkHarman"},"attachments":[{"id":30838819,"title":"","file_type":"pdf","scribd_thumbnail_url":"https://a.academia-assets.com/images/blank-paper.jpg","file_name":"instrumenting_programs_with_flag_variables_for_test_data_search_by.pdf","download_url":"https://www.academia.edu/attachments/30838819/download_file","bulk_download_file_name":"Getting_results_from_search_based_approa.pdf","bulk_download_url":"https://d1wqtxts1xzle7.cloudfront.net/30838819/instrumenting_programs_with_flag_variables_for_test_data_search_by-libre.pdf?1390962952=\u0026response-content-disposition=attachment%3B+filename%3DGetting_results_from_search_based_approa.pdf\u0026Expires=1743457637\u0026Signature=PGUs~ghchVCmRPuQ2g1lXj4EOEEiDVNHBPchFoXnma3k7gVLyeR4n8kP0PQx41wQmLNds4erPFE2EAv6e~8vfTGStduyL1zw8yRtprMtqiJpZAacx88ctkRn4mqvqX-tG~GZ4teOY-bql8L9NFU8M9bYpwdop6KGRaIFUXHhrJ5kbm9Q68epJxKxZA6ukMu45Mty3fljxGxpzshzW3ECvWKIFzC0pyd-K-1PJc~DOJnzbk~eHQPOdX2nGhyTLCyRGVO8-zx3CPFtZqeYCulAyy~XojX0G6OK1iAkTPXwXJNL~1aqgxr0rFvJicyN8Ix4G3sT1WJou-uAButflQ51TA__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA"}],"research_interests":[],"urls":[{"id":671155,"url":"http://pdf.aminer.org/000/225/602/instrumenting_programs_with_flag_variables_for_test_data_search_by.pdf"}]}, dispatcherData: dispatcherData }); $(this).data('initialized', true); } }); $a.trackClickSource(".js-work-strip-work-link", "profile_work_strip") if (false) { Aedu.setUpFigureCarousel('profile-work-2787577-figures'); } }); </script> </div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js","https://a.academia-assets.com/assets/google_contacts-0dfb882d836b94dbcb4a2d123d6933fc9533eda5be911641f20b4eb428429600.js"], function() { // from javascript_helper.rb $('.js-google-connect-button').click(function(e) { e.preventDefault(); GoogleContacts.authorize_and_show_contacts(); Aedu.Dismissibles.recordClickthrough("WowProfileImportContactsPrompt"); }); $('.js-update-biography-button').click(function(e) { e.preventDefault(); Aedu.Dismissibles.recordClickthrough("UpdateUserBiographyPrompt"); $.ajax({ url: $r.api_v0_profiles_update_about_path({ subdomain_param: 'api', about: "", }), type: 'PUT', success: function(response) { location.reload(); } }); }); $('.js-work-creator-button').click(function (e) { e.preventDefault(); window.location = $r.upload_funnel_document_path({ source: encodeURIComponent(""), }); }); $('.js-video-upload-button').click(function (e) { e.preventDefault(); window.location = $r.upload_funnel_video_path({ source: encodeURIComponent(""), }); }); $('.js-do-this-later-button').click(function() { $(this).closest('.js-profile-nag-panel').remove(); Aedu.Dismissibles.recordDismissal("WowProfileImportContactsPrompt"); }); $('.js-update-biography-do-this-later-button').click(function(){ $(this).closest('.js-profile-nag-panel').remove(); Aedu.Dismissibles.recordDismissal("UpdateUserBiographyPrompt"); }); $('.wow-profile-mentions-upsell--close').click(function(){ $('.wow-profile-mentions-upsell--panel').hide(); Aedu.Dismissibles.recordDismissal("WowProfileMentionsUpsell"); }); $('.wow-profile-mentions-upsell--button').click(function(){ Aedu.Dismissibles.recordClickthrough("WowProfileMentionsUpsell"); }); new WowProfile.SocialRedesignUserWorks({ initialWorksOffset: 20, allWorksOffset: 20, maxSections: 1 }) }); </script> </div></div></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/wow_profile_edit-5ea339ee107c863779f560dd7275595239fed73f1a13d279d2b599a28c0ecd33.js","https://a.academia-assets.com/assets/add_coauthor-22174b608f9cb871d03443cafa7feac496fb50d7df2d66a53f5ee3c04ba67f53.js","https://a.academia-assets.com/assets/tab-dcac0130902f0cc2d8cb403714dd47454f11fc6fb0e99ae6a0827b06613abc20.js","https://a.academia-assets.com/assets/wow_profile-a9bf3a2bc8c89fa2a77156577594264ee8a0f214d74241bc0fcd3f69f8d107ac.js"], function() { // from javascript_helper.rb window.ae = window.ae || {}; window.ae.WowProfile = window.ae.WowProfile || {}; if(Aedu.User.current && Aedu.User.current.id === $viewedUser.id) { window.ae.WowProfile.current_user_edit = {}; new WowProfileEdit.EditUploadView({ el: '.js-edit-upload-button-wrapper', model: window.$current_user, }); new AddCoauthor.AddCoauthorsController(); } var userInfoView = new WowProfile.SocialRedesignUserInfo({ recaptcha_key: "6LdxlRMTAAAAADnu_zyLhLg0YF9uACwz78shpjJB" }); WowProfile.router = new WowProfile.Router({ userInfoView: userInfoView }); Backbone.history.start({ pushState: true, root: "/" + $viewedUser.page_name }); new WowProfile.UserWorksNav() }); </script> </div> <div class="bootstrap login"><div class="modal fade login-modal" id="login-modal"><div class="login-modal-dialog modal-dialog"><div class="modal-content"><div class="modal-header"><button class="close close" data-dismiss="modal" type="button"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button><h4 class="modal-title text-center"><strong>Log In</strong></h4></div><div class="modal-body"><div class="row"><div class="col-xs-10 col-xs-offset-1"><button class="btn btn-fb btn-lg btn-block btn-v-center-content" id="login-facebook-oauth-button"><svg style="float: left; width: 19px; line-height: 1em; margin-right: .3em;" aria-hidden="true" focusable="false" data-prefix="fab" data-icon="facebook-square" class="svg-inline--fa fa-facebook-square fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h137.25V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.27c-30.81 0-40.42 19.12-40.42 38.73V256h68.78l-11 71.69h-57.78V480H400a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48z"></path></svg><small><strong>Log in</strong> with <strong>Facebook</strong></small></button><br /><button class="btn btn-google btn-lg btn-block btn-v-center-content" id="login-google-oauth-button"><svg style="float: left; width: 22px; line-height: 1em; margin-right: .3em;" aria-hidden="true" focusable="false" data-prefix="fab" data-icon="google-plus" class="svg-inline--fa fa-google-plus fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256,8C119.1,8,8,119.1,8,256S119.1,504,256,504,504,392.9,504,256,392.9,8,256,8ZM185.3,380a124,124,0,0,1,0-248c31.3,0,60.1,11,83,32.3l-33.6,32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9,0-77.2,35.5-77.2,78.1S142.3,334,185.3,334c32.6,0,64.9-19.1,70.1-53.3H185.3V238.1H302.2a109.2,109.2,0,0,1,1.9,20.7c0,70.8-47.5,121.2-118.8,121.2ZM415.5,273.8v35.5H380V273.8H344.5V238.3H380V202.8h35.5v35.5h35.2v35.5Z"></path></svg><small><strong>Log in</strong> with <strong>Google</strong></small></button><br /><style type="text/css">.sign-in-with-apple-button { width: 100%; height: 52px; border-radius: 3px; border: 1px solid black; cursor: pointer; } .sign-in-with-apple-button > div { margin: 0 auto; / This centers the Apple-rendered button horizontally }</style><script src="https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js" type="text/javascript"></script><div class="sign-in-with-apple-button" data-border="false" data-color="white" id="appleid-signin"><span ="Sign Up with Apple" class="u-fs11"></span></div><script>AppleID.auth.init({ clientId: 'edu.academia.applesignon', scope: 'name email', redirectURI: 'https://www.academia.edu/sessions', state: "bec62f6e37e2c49c013edb75df4a5b1baceb44f89cfb7106d36eaad71abaf869", });</script><script>// Hacky way of checking if on fast loswp if (window.loswp == null) { (function() { const Google = window?.Aedu?.Auth?.OauthButton?.Login?.Google; const Facebook = window?.Aedu?.Auth?.OauthButton?.Login?.Facebook; if (Google) { new Google({ el: '#login-google-oauth-button', rememberMeCheckboxId: 'remember_me', track: null }); } if (Facebook) { new Facebook({ el: '#login-facebook-oauth-button', rememberMeCheckboxId: 'remember_me', track: null }); } })(); }</script></div></div></div><div class="modal-body"><div class="row"><div class="col-xs-10 col-xs-offset-1"><div class="hr-heading login-hr-heading"><span class="hr-heading-text">or</span></div></div></div></div><div class="modal-body"><div class="row"><div class="col-xs-10 col-xs-offset-1"><form class="js-login-form" action="https://www.academia.edu/sessions" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="AZpjp6iq6TYvHuCK0vK13bbF1NXA_4G3Ig2ppnb9xRtvdXQXd4SRv56OEevTpJzDpWYrRT8AEvVl9vu80RllPQ" autocomplete="off" /><div class="form-group"><label class="control-label" for="login-modal-email-input" style="font-size: 14px;">Email</label><input class="form-control" id="login-modal-email-input" name="login" type="email" /></div><div class="form-group"><label class="control-label" for="login-modal-password-input" style="font-size: 14px;">Password</label><input class="form-control" id="login-modal-password-input" name="password" type="password" /></div><input type="hidden" name="post_login_redirect_url" id="post_login_redirect_url" value="https://ucl.academia.edu/MarkHarman" autocomplete="off" /><div class="checkbox"><label><input type="checkbox" name="remember_me" id="remember_me" value="1" checked="checked" /><small style="font-size: 12px; margin-top: 2px; display: inline-block;">Remember me on this computer</small></label></div><br><input type="submit" name="commit" value="Log In" class="btn btn-primary btn-block btn-lg js-login-submit" data-disable-with="Log In" /></br></form><script>typeof window?.Aedu?.recaptchaManagedForm === 'function' && window.Aedu.recaptchaManagedForm( document.querySelector('.js-login-form'), document.querySelector('.js-login-submit') );</script><small style="font-size: 12px;"><br />or <a data-target="#login-modal-reset-password-container" data-toggle="collapse" href="javascript:void(0)">reset password</a></small><div class="collapse" id="login-modal-reset-password-container"><br /><div class="well margin-0x"><form class="js-password-reset-form" action="https://www.academia.edu/reset_password" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="axE9T4ko3FDlM1fA-sdXSAxy42A7SsXTvzLZZbfaZ3cF_ir_Vgak2VSjpqH7kX5WH9Ec8MS1VpH4yYt_ED7HUQ" autocomplete="off" /><p>Enter the email address you signed up with and we'll email you a reset link.</p><div class="form-group"><input class="form-control" name="email" type="email" /></div><script src="https://recaptcha.net/recaptcha/api.js" async defer></script> <script> var invisibleRecaptchaSubmit = function () { var closestForm = function (ele) { var curEle = ele.parentNode; while (curEle.nodeName !== 'FORM' && curEle.nodeName !== 'BODY'){ curEle = curEle.parentNode; } return curEle.nodeName === 'FORM' ? curEle : null }; var eles = document.getElementsByClassName('g-recaptcha'); if (eles.length > 0) { var form = closestForm(eles[0]); if (form) { form.submit(); } } }; </script> <input type="submit" data-sitekey="6Lf3KHUUAAAAACggoMpmGJdQDtiyrjVlvGJ6BbAj" data-callback="invisibleRecaptchaSubmit" class="g-recaptcha btn btn-primary btn-block" value="Email me a link" value=""/> </form></div></div><script> require.config({ waitSeconds: 90 })(["https://a.academia-assets.com/assets/collapse-45805421cf446ca5adf7aaa1935b08a3a8d1d9a6cc5d91a62a2a3a00b20b3e6a.js"], function() { // from javascript_helper.rb $("#login-modal-reset-password-container").on("shown.bs.collapse", function() { $(this).find("input[type=email]").focus(); }); }); </script> </div></div></div><div class="modal-footer"><div class="text-center"><small style="font-size: 12px;">Need an account? <a rel="nofollow" href="https://www.academia.edu/signup">Click here to sign up</a></small></div></div></div></div></div></div><script>// If we are on subdomain or non-bootstrapped page, redirect to login page instead of showing modal (function(){ if (typeof $ === 'undefined') return; var host = window.location.hostname; if ((host === $domain || host === "www."+$domain) && (typeof $().modal === 'function')) { $("#nav_log_in").click(function(e) { // Don't follow the link and open the modal e.preventDefault(); $("#login-modal").on('shown.bs.modal', function() { $(this).find("#login-modal-email-input").focus() }).modal('show'); }); } })()</script> <div class="bootstrap" id="footer"><div class="footer-content clearfix text-center padding-top-7x" style="width:100%;"><ul class="footer-links-secondary footer-links-wide list-inline margin-bottom-1x"><li><a href="https://www.academia.edu/about">About</a></li><li><a href="https://www.academia.edu/press">Press</a></li><li><a href="https://www.academia.edu/documents">Papers</a></li><li><a href="https://www.academia.edu/topics">Topics</a></li><li><a href="https://www.academia.edu/journals">Academia.edu Journals</a></li><li><a rel="nofollow" href="https://www.academia.edu/hiring"><svg style="width: 13px; height: 13px;" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="briefcase" class="svg-inline--fa fa-briefcase fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z"></path></svg> <strong>We're Hiring!</strong></a></li><li><a rel="nofollow" href="https://support.academia.edu/hc/en-us"><svg style="width: 12px; height: 12px;" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="question-circle" class="svg-inline--fa fa-question-circle fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z"></path></svg> <strong>Help Center</strong></a></li></ul><ul class="footer-links-tertiary list-inline margin-bottom-1x"><li class="small">Find new research papers in:</li><li class="small"><a href="https://www.academia.edu/Documents/in/Physics">Physics</a></li><li class="small"><a href="https://www.academia.edu/Documents/in/Chemistry">Chemistry</a></li><li class="small"><a href="https://www.academia.edu/Documents/in/Biology">Biology</a></li><li class="small"><a href="https://www.academia.edu/Documents/in/Health_Sciences">Health Sciences</a></li><li class="small"><a href="https://www.academia.edu/Documents/in/Ecology">Ecology</a></li><li class="small"><a href="https://www.academia.edu/Documents/in/Earth_Sciences">Earth Sciences</a></li><li class="small"><a href="https://www.academia.edu/Documents/in/Cognitive_Science">Cognitive Science</a></li><li class="small"><a href="https://www.academia.edu/Documents/in/Mathematics">Mathematics</a></li><li class="small"><a href="https://www.academia.edu/Documents/in/Computer_Science">Computer Science</a></li></ul></div></div><div class="DesignSystem" id="credit" style="width:100%;"><ul class="u-pl0x footer-links-legal list-inline"><li><a rel="nofollow" href="https://www.academia.edu/terms">Terms</a></li><li><a rel="nofollow" href="https://www.academia.edu/privacy">Privacy</a></li><li><a rel="nofollow" href="https://www.academia.edu/copyright">Copyright</a></li><li><a rel="nofollow" href="https://www.academia.edu/content_policy">Content Policy</a></li><li>Academia ©2025</li></ul></div><script> //<![CDATA[ window.detect_gmtoffset = true; window.Academia && window.Academia.set_gmtoffset && Academia.set_gmtoffset('/gmtoffset'); //]]> </script> <div id='overlay_background'></div> <div id='bootstrap-modal-container' class='bootstrap'></div> <div id='ds-modal-container' class='bootstrap DesignSystem'></div> <div id='full-screen-modal'></div> </div> </body> </html>