Papers
A Comparative Study on Automated Software Test Oracle Methods
Published by IEEE Computer Society
Software testing has been used to find software faults in order to improve its quality. To verify the software behavior, testers require test oracle. Test oracle is a reliable source of expected software behavior that provides outputs for any input specified in the software specifications and a comparator to verify actual results. While test automation requires automated oracle support, oracle automation is considered as a challenging task. These challenges are from the automation required in expected output generation and results verification. This paper presents oracle activities and the challenges to prepare automated oracle. Then a comparative study of existing automated oracle and expected output generation methods is provided. Finally, a classification of these methods is suggested based on how these methods provide automated test oracle and the tool they used. The classification explains which oracle activities will be automated by the proposed approaches.
An Automated Oracle to Test Complex Decision Making Structures
Submitted to 16th Asia Pacific Software Engineering Conference (APSEC’09)
Software testing has been used to find software faults in order to improve its quality. To verify the software behavior, testers require test oracle. Test oracle is a reliable source of expected software behavior that provides outputs for any input specified in the software specifications and a comparator to verify actual results. Since there are various conditions and several paths that affect outputs generation in complex decision making structures, complete nested if-then-else structures evaluation is one of the difficult part while unit testing. In addition, providing expected outputs in nested decision making modules requires the programmers and testers understand the program’s domain completely. Therefore, an automated oracle can facilitate testing of such structures and decrease the testing cost significantly. The aim of the present paper is to study the applications of Artificial Neural Networks as automated oracle to test complete decision making structures. The proposed approach is applied to test a web-based student subject registration verifier and evaluated using mutation testing successfully. The results of this study indicate that ANN based oracle are reliable and instrumental if the decision making module is deterministic and there is no conflict between application logic.
Intelligent and Automated Software Testing Methods Classification: A Review
Published in The 4th Postgraduate Annual Research Seminar 2008 (PARS08)
Since software applications increased rapidly in modern life, it is important to have enough reliability and minimizing the probability of faults in software products. Software testing is a process to finding faults in software products and increasing their reliability. Because testing process is very costly, automation techniques are need to reduce these costs and also, increase reliability. In automatic testing, an attempt is made to reduce human roles in testing process by converting the testing phases or part of them to performed by intelligent methods. Automatic testing has several advantages such as decrease testing time, resources and costs and on the other hand, increase quality and reliability. In this paper, after explaining software testing phases, a classification of existing automatic testing methods has shown. These methods can automate software testing phases or at least part of them with aim to reach above advantages. The aim of this classification is to show which technique can applied in which phase of software testing. The classification clarifies which problems must address in each phase before moving to next problems and how to automate each phase. Moreover, approaches for automating each testing phase have recommended.
معرفی شبکه های عصبی مصنوعی
این مقاله در مجله الکترونیکی پژوهشگاه مدارک و اطلاعات علمی ایران در شماره اول دوره ششم به چاپ رسیده است. http://www.irandoc.ac.ir/Data/E_J/vol6/shahamiri_abs.htm
در این نوشتار به معرفی شبکه های عصبی مصنوعی و ساختارهای آنها به صورت خلاصه میپردازیم. در ابتدا نرونهای شبکه های عصبی طبیعی معرفی شده و طرز کار آنها نشان داده شده است. سپس مدل مصنوعی این نرونها و ساختار آنها ، مدل ریاضی آنها ، شبکه های عصبی مصنوعی و نحوه آموزش و بکار گیری این شبکه ها به همراه روش یادگیری گرادیان کاهنده نشان داده شده است. تمرکز بیشتر بر نوعی از این شبکه ها بنام شبکه های عصبی مصنوعی پرسپترون چند لایه میباشد. ابزاهایی نیز برای پیاده سازی این شبکه ها نام برده شده است.
مقدمه اي بر نرم افزارهاي مبتني بر وب و ویژگیهای آنها
این مقاله در در مجله الکترونیکی پژوهشگاه اطلاعات و مقالات علمی ایران در شماره سوم دوره ششم به چاپ رسیده است. http://www.irandoc.ac.ir/data/e_j/vol6/amiri_abs.htm
امروزه اثرات و كاربردهاي زياد سيستمهاي مبتني بر وب نقش بسيار مؤثري در زندگي روزمره انسانها بازي مي كند و پیشرفتهای هر روزه تكنولوژي و وب نقش آنها را در زندگي پر رنگ تر مي كند.به لطف پیشرفت تكنولوژي و علم كامپيوتر و تکنلولوژی اطلاعات ، هر روز شاهد افزايش وب سايتهايي هستيم كه سرويسهاي مختلفي را براي كاربران خود فراهم مي كنند و امكانات بسياري را در اختيار آنها قرار مي دهند. لذا بر آن شديم تا مشخص كنيم منظور از نرم افزارهاي مبتني بر وب چیست. تفاوتهایی كه مابين نرم افزارهاي مبتني بر وب و نرم افزارهاي ديگر وجود دارد باعث شده است مباحث مهندسي و تكنولوژي های جديدي معرفي و ايجاد شوند. در اين نوشتار، نرم افزارهاي مبتني بر وب و ويژگيهاي خاص آنها كه باعث متمايز شدن آنها از ديگر گروه هاي نرم افزار مي شوند و انواع این دسته از نرم افزارها بيان شده است.
معرفی سيستم عاملهاي تلفنهاي همراه
با پيشرفت و فراگير شدن تلفنهاي همراه , طراحان و متخصصين اين دستگاهها به فکر تلفيق اين دستگاهها و دستگاههاي PDA افتادند و با مرور زمان و پيشرفت تکنولوژي در مواردي همچون کوچکتر شدن و افزايش قدرت پردازنده , نمايشگرها , ارزان تر شدن حافظه ها و ... توانستند دستگاههايي طراحي کنند که علاوه بر خواص يک تلفن همراه امکانات يک کامپيوتر شخصي کوچک را نيز فراهم کند . تمامي اين دستگاهها از يکي از چند نوع سيستم عامل ساخته شده مخصوص آنها استفاده مي کنند و در محدوده امکانات سخت افزاري اين اجازه را به کاربران ميدهند که بتوانند از نرم افزارهايي که براي هرنوع از اين دستگاهها ساخته شده اند استفاده کنند , آنها را حذف کنند , اضافه کنند و حتي نرم افزارهاي خاص خودشان را بسازند .
معرفی تکنیکهای پنهان سازی اطلاعات
این نوشتار به منظور معرفی یکی از تکنیکهای پنهان سازی اطلاعات در رسانه های مختلف ،خصوصا داده های کامپیوتری همانند تصاویر دیجیتال ، سیگنالهای صوتی دیجیتال و متون میباشد . این تکنیک استگنوگرافی نامیده میشود . توسط استگنوگرافی میتوان داده ای را در داده ای دیگر به نحوی پنهان کرد که وجود داده پنهان شده مشخص نباشد .بدین منظور روشهای مختلفی بیان شده ، مزایا و معایب هرکدام شرح داده میشود.
مهندسی نرم افزار شِی گرا
جزوه درس تجزیه و تحلیل سیستمهای کامپیوتری و مهندسی نرم افزار . این جزوه ترجمه پنج فصل از کتاب Systems Analysis AND Design With UML version 2 میباشد که ترجمه آنرا اینجانب انجام داده ام . در این جزوه مباحث شیئ گرایی بطور کامل و با ذکر مثال توضیح داده شده است . لازم به ذکر است که این کتاب یکی از بهترین کتابهای موجود در زمینه تجزیه و تحلیل سیستمها میباشد.

Like (1)
Add Comment