ملخص
هذا البحث يقدم نماذج العيب للبرمجة بلغة السي أثناء تنفيد البرامج، نماذج العيب تزود تحليل للعيب/ الفشل موضحاً كيف يمكن للعيب في البرمجة بلغة السي أن يسبب تغيير حالة البيانات في البرنامج لتصبح حاطئة، وكيف أن تلك البيانات الخاطئة يمكن أن تستمر إلى الحالة النهائية للبرنامج، وبذلك يظهر الفشل Failure. نماذج العيب أيضاً تتضمن دليل لأنواع العيوب التي يعتقد أنها تمثل العيوب التي من المحتمل أن تكون مقدمة في البرامج من قبل مبرمجين يكتبون برامج لغة السي. كل نوع من هذه العيوب يكون موصوفاً في شروط حسب العيب الذي يظهر في محتوى برنامج لغة السي الأصلي وكذلك كيف يمكن أن يسبب التأثير في حالة البرنامج. أنواع العيوب تكون محددة من التحليل الدقيق لقواعد اللغة syntaxes ومعانيها semantics للبرامج المكتوبة بلغة السي. نماذج العيب يمكن أن تساعد المختبرين والمبرمجين لتحديد الأماكن في البرنامج التي غالباً ما تظهر فيها العيوب، نماذج العيب يمكن أن تكون أساساً جيداً لتصنيف العيب وإختبار التغيير وتفتيش البرنامج وتقييم إستراتيجيات الإختبار للبرامج المكتوبة بلغة السي. أمثلة معطاة لتبين النماذج الملائمة لهذه الأغراض.
Abstract
This thesis presents a fault models for C programming (Turbo C, version 3.0) in run-time of programs. The fault models provide a fault/failure analysis of how a fault in C programming can cause a data state change in the program to become corrupted, and how that erroneous data can propagate to the final state of the program, thereby manifesting a failure. The fault models also include a catalog of fault types that are believed to represent faults likely to be introduced in programs by programmers writing C code. Each type of fault is described in terms of how it appears syntactically in source code as well as in how it can cause an infection of program state. The fault types are identified from a careful analysis of the syntaxes and the semantics of C programs. The fault models can help testers and programmers identify places in a program where faults are most likely to appear, and identify what kinds of faults to look out for when using certain feature in C language. The fault models is claimed to be a good foundation for fault seeding, mutation testing, program inspections, and evaluation of testing strategies for C programs. Examples are given that demonstrate the model’s suitability for these purposes.