JSDEP (تحليل الاعتماد على دوم)
@inproceedings{DBLP:conf/sigsoft/SungKS016,
author = {Chungha Sung and
Markus Kusano and
Nishant Sinha and
Chao Wang},
title = {Static {DOM} event dependency analysis for testing web applications},
booktitle = {Proceedings of the 24th {ACM} {SIGSOFT} International Symposium on
Foundations of Software Engineering, {FSE} 2016, Seattle, WA, USA,
November 13-18, 2016},
pages = {447--459},
year = {2016},
crossref = {DBLP:conf/sigsoft/2016},
url = {https://doi.org/10.1145/2950290.2950292},
doi = {10.1145/2950290.2950292},
timestamp = {Tue, 06 Nov 2018 16:59:23 +0100},
biburl = {https://dblp.org/rec/bib/conf/sigsoft/SungKS016},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
JSDEP هي أداة للعثور على تبعية DOM-Event لتطبيق الويب بما في ذلك التحكم التقليدي واعتماد البيانات باستخدام قيود DATALOG.
يعبر ملف JavaScript واحد بشكل ثابت ويجد العلاقة بين حدثين من DOMS.
تتضمن هذه الأداة نسخة معدلة من Artemis لإظهار التقييم كما هو موضح في ورقة FSE (للظهور).
خصائص هذه الأداة
- anlaysis ثابت و interprocedural و infinsists anlaysis
- لا تدعم هذه الأداة Dom-Alias anlaysis
- لا تدعم هذه الأداة استخراج JavaScript من HTML (جميع JavaScripts تم استخلاصها يدويًا للمعايير التي لدينا)
هيكل JSDEP
- في هذا الرقم ، يتم تمثيل جميع أدلة المستودع الذي لدينا مع مجلد ، ويتم تمثيل ملفات الإخراج برمز المفكرة. والأوامر بجانب الأسهم هي نصوص فعلية يمكنك استخدامها في JSDEP. أساسا ، هناك ثلاثة أجزاء في JSDEP:
- تحليل DOM - يحتوي هذا الجزء على تحليلنا الرئيسي. يتكون من 3 أدلة (SRC ، Z3_Rules ، Node_Modules). بعد تثبيت جميع التبعيات ، عند تشغيل البرامج النصية المسمى Make Build-Dep باسم ملف أو إنشاء Build-Dep-All ، سيقوم التحليل بإنتاج 3 ملفات (Dep.txt ، numConstraints.txt ، z3time) ضمن دليل المعلومات لكل معيار. تتم طباعة نتيجة التبعية في DEP.TXT ، ويتم تسجيل وقت التحليل لكل ملف في Z3.Time. أيضا ، يتم تسجيل عدد القيود التي تم إنشاؤها في numConstraints.txt.
- Artemis المعدل - لجعل المستخدمين يتحققون من فائدة تحليلنا ، نقدم Artemis معدّل لاستخدام المعلومات التي لدينا. قبل تشغيل Artemis ، عليك تثبيته. بعد تثبيت الإصدار المعدل من Artemis ، يمكنك مقارنة نسختين منه. من خلال تشغيل Command ، قم بتشغيل Run-Artemis باسم ملف أو جعل Run-Artemis-All ، يستخدم Dep.txt تحت كل معيار وينتج ملفين تحت دليل Artemis-Result لكل معيار. Old_artemis.stod هو إخراج الإصدار السابق من Artemis ، و New-Artemis.stdout هو إخراج نسخة معدلة من Artemis التي تستخدم المعلومات في Dep.txt.
- RAW -DATA - يتم توفير هذا الدليل للمستخدمين الذين يرغبون في إنشاء جداول دون أي تثبيت وتشغيل تحليلنا. تم تحميل جميع البيانات وأن بنية هذا الدليل هي نفس بنية المعيار. إذا قمت بتشغيل أوامر جعل Table1 ، وجعل Table2 وصنع Table3 ، يمكنك استخدام كل جدول في الورقة. سيتم طباعة الجدول على الطرفية والشكل مخصص للمطاط. لذلك ، إذا قمت بنسخ الطباعة ولصقها إلى LaTex ، فسوف تظهر نفس الجدول كما أظهرنا في الورقة. وبالنسبة لأولئك الذين يرغبون في إنشاء جدول مع إنشاء بيانات جديدة ، فإننا نقدم أمرًا آخر ، ونجعل الإحضار. سيحضر هذا الأمر جميع البيانات تحت معيار دليل data الخام. كما كان من قبل ، بعد جلب بيانات جديدة ، يمكنك بسهولة عمل جداول الهيكل عن طريق تشغيل أوامر الجدول.
المساهمين
لقد ساهم الأشخاص التاليون في هذا التطبيق والورقة:
- Chungha Sung (SCH8906/AT/VT/EDU)
- Markus Kusano (Mukusano/AT/VT/EDU)
- نيشانت سينها
- Chao Wang (Chaowang/AT/VT/EDU)
تبعيات البرنامج
بيئة
- لقد اختبرنا هذا البرنامج فقط على Ubuntu 12.04
- لم نتحقق من ذلك مع إصدارات Ubuntu الأخرى
لتشغيل تحليل ثابت فقط لتشغيل علاقات DOM-Dependency ، فإنه يحتاج إلى هذه التبعيات:
- Z3 (https://github.com/z3prover/z3) ، أي إصدار (تم اختباره بـ 4.4.1).
- Nodejs (لتثبيت هذا ، اكتب
sudo apt-get install nodejs ) - RealPath (لتثبيت هذا ، اكتب
sudo apt-get install realpath )
لاختبار مع Artemis ، يجب عليك تثبيت نسخة معدلة من Artemis أولاً.
- يمكنك متابعة التعليمات ضمن دليل Artemis المعدلة لتثبيته (من الصعب في بعض الأحيان التثبيت بشكل صحيح ، ولكن نظرًا لقيود الحجم ، لا يمكننا تقديم نسخة مجمعة بالكامل).
- يجب عليك استخدام الإصدار الذي نقدمه لأنه يتم تعديل هذا الإصدار لمقارنة الإصدار السابق من Artemis والإصدار المعدل من Artemis الذي يستخدم علاقات التبعية في برنامجنا.
الرابط الخاص بـ VM (ملف OVA من المربع الظاهري) مع تثبيت JSDEP (https://drive.google.com/open؟id=1O70KDLFWHAN4J06Y5NHTQOPBQIQCIYRQ). ومع ذلك ، فقد تم تحديث هذا منذ وقت طويل ، لذلك ربما يكون لديه بعض المشكلات.
الاستخدام
===== يجب عليك تثبيت الإصدار المعدل من Artemis الذي نقدمه لتشغيل هذه comands أدناه =====
- اجعل ملف Run-Artemis = [filename] iter = [التكرار]
- يجب عليك تشغيل تحليل التبعية للحصول على dep.txt أولاً
- قم بتشغيل الإصدار السابق من Artemis بملف محدد ورقم تكرار محدد
- اجعل Run-Artemis-All ITER = [التكرار]
- يجب عليك تشغيل تحليل التبعية للحصول على dep.txt أولاً
- قم بتشغيل الإصدار السابق من Artemis مع جميع الملفات برقم تقارير محدد
كيف تفسر dep.txt؟
إذا قمت بتشغيل البرنامج ، فيمكنك رؤية الملف المسمى DEP.TXT ضمن دليل المعلومات.
هناك خطوط نصية ، وكل علاقات تربية تتكون من 4 أسطر من النص.
يشير السطر الأول والثاني إلى اسم DOM ، ويشير السطر الثالث والرابع إلى نوع الحدث.
على سبيل المثال ، إذا كان محتوى الملف هو 1 DOM1 2 انقر فوق 3 DOM2 4 MOUSEMOVE
DOM1 و DOM2 هما اسم العقد DOM والنقر والموسوف هما نوع الأحداث لكل DOM.
معنى هذه الأسطر الأربعة هو mousemove من test2 يعتمد على النقر من test1.
كل أربعة أسطر مرتبطة (على سبيل المثال 1 4 ، 5 8 ...)