اختبار الوحدة هو نهج عملي لزيادة دقة وجودة البرمجيات، و لكن كتابة التعليمات
البرمجية لاختبار الوحدة هو عمل مضن و ممل و يحتاج الكثير من الوقت و الجهد. و ذلك سيحتاج الأمر JUnit حتى مع استخدام أطر عمل لكتابة و تشغيل اختبار الوحدة مثل الكثير من الوقت و الجهد. و بالتالي فإن هناك دوماً صعوبة في كتابة التعليمات البرمجية الخاصة بالاختبار. لذلك نقدم في هذا البحث طريقة جديدة لتوليد اختبار الوحدة آلياً بهدف تسريع عملية الاختبار و تقليل الكلفة. قمنا بتنفيذ هذه الطريقة على لغة البرمجة جافا حيث نقوم بكتابة توصيف جديد يُسمى JFS يصف سلوك الدالة من حيث الدخل و الخرج. يتم كتابة هذا التوصيف داخل صف التعليمات البرمجية و يكون مستقل عن التعليمات البرمجية، و يمكن كتابته قبل البدء بكتابة النص البرمجي و بالتالي نحقق مبدأ TDD أي التطوير المقاد بالاختبار الذي يعتمد على كتابة الاختبار أولاً بهدف تحسين عملية التطوير. و بعد كتابة التوصيف نقوم بتوليد صفوف الاختبار الخاصة بتنفيذ اختبار الوحدة (قمنا باستخدام إطار العمل JUnit لتنفيذ اختبار الوحدة) بناءاً على التوصيف الجديد.
Unit testing is a practical approach for increasing the correctness
and quality of software; but writing unit test code is exhausting and
tedious job; and requires a great deal of time and effort. So even
with the use of frameworks for writing and running unit test such as
JUnit this will need a great deal of time and effort. As a
consequence, there is a pressure in writing testing code. So we
present in this paper a new method to generate unit testing
automatically in order to speed up the testing process and reduce
the cost. We have implemented this method on the Java
programming language, where we write a new specification called
JFS describes the behavior of the function in terms of input and
output. This specification is written inside the code class and is
independent of the code, and it can be written before starting the
code phase and thus achieve the principle TDD Test-Driven
Development which is based on written test-first in order to
improve the development process. After writing specification we
will generate test classes for the execution of unit testing (we used
JUnit as framework to execute unit testing) based on the new
specification.
Artificial intelligence review:
Research summary
تتناول هذه الدراسة مشكلة كتابة اختبارات الوحدة البرمجية بشكل يدوي، والتي تعتبر عملية مرهقة وتستغرق وقتاً طويلاً. تقدم الدراسة حلاً لهذه المشكلة من خلال اقتراح طريقة جديدة لتوليد اختبارات الوحدة بشكل آلي باستخدام توصيف جديد لدوال جافا يسمى Java Functions Scenarios (JFS). يتم كتابة توصيف JFS داخل الصف البرمجي ويصف سلوك الدالة من حيث المدخلات والمخرجات، مما يسهل عملية توليد اختبارات JUnit بشكل آلي. تعتمد الطريقة على مبدأ التطوير المقاد بالاختبار (TDD) الذي يشجع على كتابة الاختبارات أولاً قبل كتابة الكود البرمجي. تم تنفيذ هذه الطريقة باستخدام لغة البرمجة جافا وإطار العمل JUnit. تساهم هذه الطريقة في تقليل الوقت والجهد المبذولين في كتابة اختبارات الوحدة وتحسين جودة البرمجيات من خلال الكشف المبكر عن الأخطاء.
Critical review
دراسة نقدية: تقدم هذه الدراسة حلاً مبتكراً لمشكلة كتابة اختبارات الوحدة بشكل يدوي، ولكن هناك بعض النقاط التي يمكن تحسينها. أولاً، لم يتم تقديم أمثلة عملية كافية توضح كيفية تطبيق توصيف JFS في مشاريع برمجية حقيقية. ثانياً، قد يكون من المفيد مقارنة هذه الطريقة مع طرق أخرى لتوليد اختبارات الوحدة آلياً لمعرفة مدى فعاليتها وكفاءتها. وأخيراً، يمكن توسيع الدراسة لتشمل لغات برمجة أخرى غير جافا، مما يزيد من شمولية وفائدة البحث.
Questions related to the research
-
ما هو الهدف الرئيسي من استخدام توصيف JFS في اختبار الوحدة؟
الهدف الرئيسي من استخدام توصيف JFS هو تسريع عملية توليد اختبارات الوحدة وتقليل الجهد والوقت المستغرقين في كتابتها يدوياً، بالإضافة إلى تحسين جودة البرمجيات من خلال الكشف المبكر عن الأخطاء.
-
كيف يساهم توصيف JFS في تحقيق مبدأ التطوير المقاد بالاختبار (TDD)؟
يساهم توصيف JFS في تحقيق مبدأ التطوير المقاد بالاختبار (TDD) من خلال السماح بكتابة توصيف الاختبارات قبل البدء بكتابة الكود البرمجي، مما يشجع على كتابة اختبارات الوحدة أولاً وتحسين عملية التطوير بشكل عام.
-
ما هي الفائدة من استخدام إطار العمل JUnit في هذه الدراسة؟
إطار العمل JUnit يوفر بيئة متكاملة لكتابة وتشغيل اختبارات الوحدة في لغة جافا، مما يسهل عملية تنفيذ الاختبارات والتحقق من صحة الكود البرمجي بشكل فعال.
-
ما هي التحديات التي قد تواجه المطورين عند استخدام توصيف JFS؟
من التحديات التي قد تواجه المطورين عند استخدام توصيف JFS هو الحاجة إلى تعلم كيفية كتابة التوصيف بشكل صحيح وفعال، بالإضافة إلى ضرورة التحقق من صحة التوصيف لضمان توليد اختبارات وحدة دقيقة وموثوقة.
References used
John A. van der Poll," Formal methods in software development: A road less travelled", July 2010
Sami Vaaraniemi." The benefits of automated unit testing", 2003
Vincent Massol with Ted Husted,"JUnit IN ACTION",2004
This lecture is a review for java basics which includes: data types, variables, conditionals and loops, classes and inheritance.
Here we review more java concepts such as Classes that represent primitive data types, Exceptions, arrays, interfaces and packages.
In this lecture threads in Java are introduced and how they can be created and synchronized together.
Deep neural networks and huge language models are becoming omnipresent in natural language applications. As they are known for requiring large amounts of training data, there is a growing body of work to improve the performance in low-resource settin
Unsupervised neural machine translation (UNMT) that relies solely on massive monolingual corpora has achieved remarkable results in several translation tasks. However, in real-world scenarios, massive monolingual corpora do not exist for some extreme