আমি কখন ইন্টিগ্রেশন টেস্ট লিখব?


30

টিডিডি নিয়ম অনুসারে ইউনিট পরীক্ষাগুলি প্রডাকশন কোডের আগে লেখা হয়, তবে ইন্টিগ্রেশন টেস্টের কী হবে যা কংক্রিট (নন মকস) ওয়্যার্ড অবজেক্টগুলির মধ্যে ইন্টারঅ্যাকশন অনুশীলন করে?

সেগুলি ইউনিট পরীক্ষার আগে বা প্রোডাকশন কোডের পরে কেবল "ওয়্যারিং" পরীক্ষা করার জন্য লেখা উচিত?

নোট করুন যে আমি গ্রহণ বা কার্যকরী পরীক্ষার কথা বলছি না তবে নিম্ন স্তরের ইন্টিগ্রেশন পরীক্ষার জন্য।

উত্তর:


49

অন্যান্য বিডিডি সংস্থাগুলির মধ্যে আরএসপেক বইটি এরকম একটি চক্রের পরামর্শ দেয়:

এখানে চিত্র বর্ণনা লিখুন

সংক্ষেপে, প্রক্রিয়াটি হ'ল:

While behaviour required
    Write an integration test for a specific behaviour
    While integration test failing
        Write a unit test to fulfil partial behavior
        While unit test failing
            Write code to make unit test pass
        Commit
        While refactoring can be done
            Refactor
            While unit test failing
                Write code to make unit test pass
            Commit
    Push

অস্বীকৃতি: আমার মনে সন্দেহ নেই যে এটি সর্বোত্তম কোড এবং পণ্যকে নিয়ে যায় তবে এটি সময় সাপেক্ষ হতে পারে। ডেটা এবং নির্ধারণবাদের চারপাশে সমস্ত ধরণের অসুবিধা রয়েছে, যখন এটি আসে যখন ইন্টিগ্রেশন পরীক্ষা সর্বদা পাস করা উচিত pass এটি সব পরিস্থিতিতে উপযুক্ত নয়; কখনও কখনও আপনি কেবল দরজা থেকে জিনিস পেতে হবে।

এটি বলেছিল, মনে একটি আদর্শ প্রক্রিয়া থাকা দুর্দান্ত। এটি আপনাকে এমন একটি বিষয় দেয় যা থেকে আপস করা উচিত।


2
ধন্যবাদ @ পিডিআর তবে আমি উল্লেখ করেছি যে আমি স্বীকৃতি পরীক্ষার কথা বলছি না যা পুনরাবৃত্তির শুরুতে / আগে শুরু হয়েছিল, আমি নিম্ন স্তরের ইন্টিগ্রেশন পরীক্ষায় আগ্রহী interested
চেদি 2149

@ চেডি 2149: আক্ক। মিস করলেন এই মন্তব্যটি। আমার উত্তর সরানোর আগে, আমি মনে করি আপনার ইন্টিগ্রেশন পরীক্ষার প্রসঙ্গে "নিম্ন-স্তরের" বলতে কী বোঝায় সে সম্পর্কে আপনার আরও সুনির্দিষ্ট হওয়া উচিত।
পিডিআর

নিম্ন-স্তর: কোন আচরণ ব্যবহারকারী বা ক্লায়েন্টদের দ্বারা নির্দিষ্ট করা হয়নি এবং যা ক্লাস / উপাদানগুলির ইন্টারঅ্যাকশন পরীক্ষা করতে ব্যবহৃত হয় এটি বিকাশকারীদের দ্বারা প্রত্যাশিত।
চেডি 2149

4
আসলে, আমি মনে করি না যে আপনি সেই ছবিতে "গ্রহণযোগ্যতা পরীক্ষা" বা "ইন্টিগ্রেশন টেস্ট" রাখলে এটি কোনও তাত্পর্যপূর্ণ হয় - এটি বিভিন্ন বিমূর্ত স্তরের কোনও ধরণের পরীক্ষার জন্য একটি আদর্শ দৃষ্টিভঙ্গি। তবে আইএমএইচও-র আসল সমস্যাটি এই নয় যে এটি "সময় সাপেক্ষ" হতে পারে - আসল সমস্যাটি হ'ল টিডিডির সাহায্যে নকশাকৃত পাবলিক ইন্টারফেসের বিরুদ্ধে "আগে" পরীক্ষা করার বিষয়টি "চলন্ত লক্ষ্যবস্তুতে গুলি করার মতো" "।
ডক ব্রাউন

@ ডকব্রাউন তাই আপনার উত্তরটি প্রোডাকশন কোডের পরে এবং প্রকাশের আগে?
চেডি 2149

10

বাস্তব প্রকল্পটি আমাকে দেখিয়েছিল যে ইউনিট পরীক্ষাগুলি লেখা সম্ভব নয় এবং তারপরে ইন্টিগ্রেশন এবং এমনকি বিপরীত দিকটিও ভুল :-) সুতরাং, আমি সাধারণত ইন্টিগ্রেশনগুলির সাথে ইউনিট টেস্টগুলিও লিখি।

কেন? আমি কীভাবে উভয় ধরণের পরীক্ষা দেখি তা লিখতে দাও:

  1. ইউনিট পরীক্ষা - উইকিপিডিয়া এবং সমস্ত জানার তথ্য ছাড়াও ইউনিট পরীক্ষাগুলি আপনাকে আপনার নকশা সংকীর্ণ করতে , আপনার মডেল, সম্পর্কের উন্নতি করতে সহায়তা করে। প্রবাহটি সহজ: একবার আপনি নতুন প্রকল্প / নতুন উপাদান টাইপ করতে শুরু করলে, বেশিরভাগ সময় আপনি কোনও প্রকারের পিসি তৈরি করেন । আপনি যখন সম্পন্ন করেন, আপনার কাছে সর্বদা দীর্ঘ পদ্ধতি, দীর্ঘ ক্লাস, অ-সুসংহত পদ্ধতি এবং ক্লাস ইত্যাদি থাকে

    ইউনিট পরীক্ষাগুলি আপনাকে এই বিষয়গুলি সরাতে সহায়তা করে যেমন আপনি যখন উল্লিখিত মক (ডাব্লু / ও অন্যান্য উপাদানগুলির উপর নির্ভরশীলতা) ক্লাসগুলি অন-পরীক্ষামূলক। অকেস্টেবল কোডের মূল চিহ্নটি টেস্টের বৃহত বিদ্রূপাত্মক অংশ কারণ আপনি অনেকগুলি নির্ভরতা (বা পরিস্থিতি) উপহাস করতে বাধ্য হন

  2. ইন্টিগ্রেশন টেস্ট - সঠিক এবং কার্যক্ষম পরীক্ষা আপনাকে বলে যে আপনার নতুন উপাদান (বা উপাদানগুলি) একসাথে বা অন্য উপাদানগুলির সাথে কাজ করে - এটি স্বাভাবিক সংজ্ঞা। আমি খুঁজে পেয়েছি যে ইন্টিগ্রেশন টেস্টগুলি বেশিরভাগ ক্ষেত্রে গ্রাহক পক্ষ থেকে আপনার উপাদানটি কীভাবে ব্যবহার করতে হয় তা প্রবাহ নির্ধারণ করতে সহায়তা করে ।

    এটি সত্যই গুরুত্বপূর্ণ কারণ এটি আপনাকে মাঝে মাঝে বলে দেয় যে আপনার এপিআই বাইরে থেকে বোঝায় না।

ঠিক আছে, আমি পরে ইউনিট পরীক্ষা এবং ইন্টিগ্রেশন টেস্টগুলি একবার লিখেছি কি?

আমি চমৎকার ক্লাস, পরিষ্কার নকশা, ভাল নির্মাণকারী, সংক্ষিপ্ত এবং সুসংগত পদ্ধতিগুলি, আইওসি প্রস্তুত ইত্যাদি পেয়েছি Once একবার আমি যখন আমার ক্লাস / এপিআই কিছু গ্রাহককে দিয়েছি, যেমন ইন্টিগ্রেশন বা জিইউআই দল থেকে বিকাশকারী, তিনি আমার এপিআই ব্যবহার করতে অক্ষম বলে মনে হচ্ছে এটি অযৌক্তিক বলে মনে হচ্ছে অদ্ভুত। সে স্রেফ বিভ্রান্ত হয়েছিল। সুতরাং আমি তার দৃষ্টিভঙ্গি অনুসারে এপিআই মেরামত করেছিলাম তবে এটির জন্য অনেকগুলি পরীক্ষা আবারও লেখার দরকার ছিল কারণ আমাকে পদ্ধতি পরিবর্তন করতে এবং কখনও কখনও এমনকি এপিআই কীভাবে ব্যবহার করতে হয় তা প্রবাহের দিকেও চাপ দেওয়া হয়েছিল।

ঠিক আছে, আমি একবারে ইন্টিগ্রেশন টেস্ট এবং ইউনিট টেস্টগুলি একবার লিখেছি কি?

আমি ঠিক প্রবাহ পেয়েছি, ভাল ব্যবহারযোগ্যতা। আমার কাছে যা আছে তা হ'ল বড় ক্লাস, অবিহীন কোড, লগিং নেই, দীর্ঘ পদ্ধতি। স্প্যাগেটি কোড

আমার পরামর্শ কি?

আমি নিম্নলিখিত প্রবাহ শিখেছি:

  1. আপনার কোডের বুনিয়াদি কঙ্কাল বিকাশ করুন
  2. ইন্টিগ্রেশন পরীক্ষা লিখুন যা বলে যে এটি ভোক্তাদের দৃষ্টিকোণ থেকে বোঝা যায়। বেসিক ব্যবহারের ক্ষেত্রে আপাতত যথেষ্ট। স্পষ্টতই পরীক্ষাটি কার্যকর হয় না।
  3. প্রতিটি ক্লাসের ইউনিট পরীক্ষার সাথে কোড লিখুন।
  4. বাকী লিখুন / ইন্টিগ্রেশন পরীক্ষার অনুপস্থিত। আপনি কীভাবে আপনার কোডটি উন্নতি করছেন তা # 3 এর মধ্যে এই পরীক্ষাগুলি কার্যকর করা ভাল।

নোট করুন যে আমি ইউনিট / ইন্টিগ্রেশন টেস্টিং সম্পর্কে ছোট উপস্থাপনা করেছি , স্লাইড # 21 দেখুন যেখানে কঙ্কালের বর্ণনা দেওয়া আছে।


5

ইউনিট টেস্টগুলি কোনও অ্যাপ্লিকেশনে ক্ষুদ্রতম সম্ভব টেস্টেবল বিটটি পরীক্ষা করতে এবং এর কার্যকারিতা পরীক্ষা করতে ব্যবহৃত হয়। অ্যাপ্লিকেশনটির অংশ বা বৃহত উপাদানগুলিতে একত্রিত করার আগে প্রতিটি ইউনিট পৃথকভাবে পরীক্ষা করা হয়।

যে যেখানে আছে ইন্টিগ্রেশন টেস্ট : আসে
তারা এই অংশের একসঙ্গে ঝুলানো সময় এই নব নির্মিত অংশের যা পূর্বে পরীক্ষিত ইউনিট গঠিত পরীক্ষা। সেরা কেসটি হ'ল আবেদনটি লেখার সময় এই সময়ে পরীক্ষাগুলি লিখতে হবে।


তাহলে আপনার উত্তরটি প্রোডাকশন কোডের পরে?
চেডি 2149

এটি প্রশ্নের উত্তর দেয় না। তিনি জিজ্ঞাসা করছেন ইন্টিগ্রেশন টেস্ট লেখার পরে প্রোডাকশন কোড লেখা হয়েছে কিনা। আপনার উত্তর যেভাবেই নেওয়া যেতে পারে।

1
@ ম্যাথিউফস্ক্রিনি - আপডেট উত্তর। আশা করি এটি এখন আরও স্পষ্ট হয়ে উঠবে।
বেন ম্যাকডুগাল

ইউনিট পরীক্ষা ক্ষেত্রে, আমি "ক্ষুদ্রতম সঙ্গে সমস্যা লাগবে সম্ভব সফ্টওয়্যার বিট"। চুক্তিতে কী রয়েছে তা পরীক্ষা করুন (উদাঃ কোনও বস্তুর পাবলিক পদ্ধতি, একটি গ্রন্থাগারের রফতানি কার্যাদি) কারণ চুক্তিটি কী কী কাজ করতে হবে তা নির্ধারণ করে। অন্যান্য জিনিস পরীক্ষাযোগ্য, তবুও তাই করা কেবল সময়ের অপচয় নয়, তবে প্রতিরোধমূলক।
itbruce

3

আমি ইউনিট পরীক্ষার অনুরূপ হিসাবে ইন্টিগ্রেশন পরীক্ষা দেখতে ঝোঁক। এটিতে আমি একটি ব্ল্যাক বক্স হিসাবে কোডের একটি উপসেট আচরণ করছি। সুতরাং ইন্টিগ্রেশন পরীক্ষা কেবল একটি বড় বাক্স।

আমি তাদের প্রডাকশন কোডের আগে লিখতে পছন্দ করি। আমি কোন টুকরোটি এখনও বেঁধে ফেলতে পারি নি বা বস্তুর মিথস্ক্রিয়ায় আমি কিছুটা বিশদ পরিবর্তন করেছি তা স্মরণে রাখতে সাহায্য করার এই সুবিধা রয়েছে।


বিভিন্ন স্তরের পরীক্ষার ব্যবস্থা রয়েছে: সাদা বক্স উপাদান টেস্টিং, হোয়াইট বক্স ইন্টিগ্রেশন উপাদান পরীক্ষার। উপাদান ব্ল্যাক বক্স টেস্টিং, ইন্টিগ্রেশন ব্ল্যাক বক্স টেস্টিং। ইন্টিগ্রেশন সিস্টেম টেস্টিংও রয়েছে।
আলেকজান্ডার.লিজুশকিন

2

গ্রহণযোগ্যতা পরীক্ষা বাদে, আমি কেবলমাত্র কোনও অ্যাপ্লিকেশনের সীমানায় ইন্টিগ্রেশন টেস্ট লিখি, এটি তৃতীয় পক্ষের সিস্টেম বা উপাদানগুলির সাথে ভালভাবে সংহত করে তা যাচাই করতে tend

ধারণাটি হ'ল অ্যাডাপ্টার অবজেক্ট তৈরি করা যা তৃতীয় পক্ষ কীভাবে আপনার অ্যাপ্লিকেশনটির প্রয়োজনীয়তার সাথে কথা বলে তা থেকে অনুবাদ করে এবং এই অনুবাদকদের বাস্তব বাহ্যিক ব্যবস্থার বিরুদ্ধে পরীক্ষা করে। আপনি যে পরীক্ষাটি প্রথম বা পরীক্ষাগুলি করেন তা আমি আপনার নিয়মিত ইউনিট পরীক্ষার চেয়ে কম গুরুত্বপূর্ণ মনে করি কারণ এটি

  • টিডিডি সরবরাহিত ডিজাইনের অন্তর্দৃষ্টি এখানে এতটা গুরুত্ব দেয় না যেহেতু ডিজাইনটি বেশ আগে থেকেই জানা ছিল এবং সাধারণত জড়িত জটিল কিছু নেই, আপনি কেবল একটি সিস্টেম থেকে অন্য সিস্টেমে জিনিসগুলি ম্যাপ করেন।

  • আপনি যে মডিউল / সিস্টেমটি মোকাবেলা করতে চান তার উপর নির্ভর করে এর জন্য অনেকগুলি অনুসন্ধান, কনফিগারেশন টিঙ্কারিং, স্যাম্পল ডেটা প্রস্তুতি প্রয়োজন হতে পারে যা সময় নেয় এবং একটি সংক্ষিপ্ত টিডিডি প্রতিক্রিয়া লুপে সত্যই ভাল ফিট করে না।

তবে, যদি আপনি সামান্য সুরক্ষিত পদক্ষেপে আপনার অ্যাডাপ্টারটি ক্রমবর্ধমানভাবে বাড়ানোতে আরও স্বাচ্ছন্দ্য বোধ করেন তবে আমি অবশ্যই প্রথম পরীক্ষা নেওয়ার পরামর্শ দিচ্ছি, এটি ক্ষতি করতে পারে না।

আপনি এই পদ্ধতির উদাহরণগুলি এখানে পেতে পারেন: http://davesquared.net/2011/04/dont-mock-types-you-dont-own.html (6th ষ্ঠ অনুচ্ছেদ) http://blog.8thlight.com/eric- স্মিথ / 2011/10/27 / না না-না yours.html


এখানে আপনি ইন্টিগ্রেশন টেস্ট সম্পর্কে কথা বলছেন যা "আমাদের সিস্টেম" এবং তৃতীয় পক্ষের গ্রন্থাগারগুলির মধ্যে মিথস্ক্রিয়া যাচাই করে, উদাহরণস্বরূপ প্লাগ-ইন বিকাশ করার সময় প্ল্যাটফর্মের বিরুদ্ধে মিথস্ক্রিয়া পরীক্ষার কীভাবে?
চেডি 2149

যদিও আমার প্লাগইন বিকাশের সাথে সামান্য অভিজ্ঞতা আছে তবে আমি অনুমান করি যে তারা হোস্ট অ্যাপ্লিকেশনটির সাথে দৃ nature়ভাবে মিলিত হয়ে স্বভাব অনুসারে এগুলি পৃথক হতে পারে, তাই আপনি সেই সংহতিকে পুরোপুরি আলিঙ্গন করতে এবং সিদ্ধান্ত নিতে পারেন যে আপনাকে অ্যাডাপ্টারের স্তরটির প্রয়োজন নেই। সেক্ষেত্রে আমি পরীক্ষার পারফরম্যান্স সম্পর্কে সত্যই সতর্ক থাকব - হোস্ট অ্যাপ্লিকেশনটির উপর নির্ভর করে, আপনার পরীক্ষাগুলির একটি বিশাল সংখ্যায় সরাসরি এটির এপিআই কল করা খুব ধীর হতে পারে। যদি আপনি এটি সম্পর্কে ভীত হন তবে আপনি সর্বদা "বিমূর্ততার অতিরিক্ত স্তর" পদ্ধতির অবলম্বন করতে পারেন এবং অ্যাডাপ্টারে মকস + ইন্টিগ্রেশন পরীক্ষা ব্যবহার করতে পারেন।
guillaume31

1

সুতরাং আমি প্রথম উত্তরটি গ্রহণ করতে যাচ্ছিলাম তবে এটি মুছে ফেলা হয়েছে। একটি প্রদত্ত পুনরাবৃত্তিতে
এটির যোগফলটি যোগ করতে
:

  1. ইউনিট-পরীক্ষা লিখুন
  2. উত্পাদন কোড লিখুন
  3. মিথস্ক্রিয়া পরীক্ষা করতে ইন্টিগ্রেশন পরীক্ষা লিখুন

ইন্টিগ্রেশন পর্যায়ে টেস্টিবিলিটির গ্যারান্টি দেওয়ার জন্য 1 এবং 2 এর সাথে ইন্টিগ্রেশন টেস্টিং মনে রাখবেন।

ইন্টিগ্রেশন টেস্টগুলি অগত্যা পদক্ষেপ 3 এ শেষ হওয়ার জন্য শেষ লিখিত হয় না তবে সেগুলি 1 ও 2 ধাপের মধ্যে আংশিকভাবে লিখিত হতে পারে।


3
এই সংমিশ্রণটি প্রক্রিয়াটির পুনরাবৃত্তি প্রকৃতিটিকে সম্পূর্ণ উপেক্ষা করে। আপনার প্রডাকশন কোডের এপিআই একবার কিছুটা হলেও স্থিতিশীল হয়ে গেলে আপনি ইন্টিগ্রেশন টেস্টগুলি লিখতে শুরু করতে পারেন hen তবে আপনি আবার আপনার প্রোডাকশন কোডে কাজ করতে পারেন, এবং সম্ভবত আপনার ইন্টিগ্রেশন পরীক্ষার পরিবর্তন বা প্রসারিত করতে পারেন। সুতরাং বেশিরভাগ ক্ষেত্রে আপনি "উত্পাদন কোডের পরে ইন্টিগ্রেশন টেস্টগুলি লেখেন না", আপনি সাধারণত উভয়ই সমান্তরালভাবে কিছুটা ডিগ্রি করেন। এবং প্রকৃতপক্ষে, আপনি কোন ধরণের সফ্টওয়্যার কাজ করছেন তার উপরও এটি নির্ভর করে। "কালো-সাদা" চিন্তাভাবনা আপনাকে আর এনে দেয় না।
ডক ব্রাউন

উত্তম বিন্দু.এর উত্তরটি রিফ্যাক্টরিংয়ের মাধ্যমে ডিজাইনের পুনরাবৃত্ত প্রকৃতিটিকে উপেক্ষা করবে বলে মনে হচ্ছে।
চেডি 2149

0

ইউনিট পরীক্ষা করে আপনার প্রকল্পের মধ্যে কোডের ব্লক ব্লক পরীক্ষা করে ।
ইন্টিগ্রেশন টেস্টগুলি পরীক্ষা করে যে কীভাবে আপনার কোড অন্য কোডের সাথে ইন্টারফেস করে: অন্য কথায়, তারা আপনার কোডের ইন্টারফেসটি পরীক্ষা করে ।

ইন্টারফেসের পিছনে কোড তৈরি করার সময় ইউনিট পরীক্ষা লিখুন।
ইন্টারফেস বা ইন্টারফেস প্রয়োগ করে এমন কোনও কোড বিকাশ করার সময় সংহতকরণ পরীক্ষা লিখুন।

এর অর্থ হ'ল আপনি কখনও কখনও কোনও প্রকল্পের ক্ষেত্রে খুব দেরীতে ইন্টিগ্রেশন টেস্টগুলি লিখবেন, কারণ বেশিরভাগ কাজ ইন্টারফেসের পিছনে রয়েছে: উদাহরণস্বরূপ, একটি সংকলক, একটি নির্দিষ্ট ওয়েবসার্ভিস যা যুক্তির বিভিন্ন স্তরকে প্রয়োগ করে বা .. এমন কিছু যা এতে প্রচুর পরিমাণে জড়িত অভ্যন্তরীণ যুক্তি।

তবে, আপনি যদি আরইএসটি পরিষেবার একটি সেট বাস্তবায়ন করছেন বা ডেটা মডেলটি রিফ্যাক্টর করছেন এবং এক্সএ লেনদেনের জন্য সমর্থন যোগ করছেন, তবে আপনি প্রায় সঙ্গে সঙ্গেই ইন্টিগ্রেশন টেস্টগুলি বিকাশ শুরু করতে যাচ্ছেন, কারণ আপনার বেশিরভাগ কাজ ইন্টারফেসের চারপাশে কেন্দ্রিক, এটি কিনা whether REST এপিআই বা প্রোগ্রাম কীভাবে ডেটা মডেল ব্যবহার করে।


আপনি কি ইউনিট টেস্টগুলি হোয়াইটবক্স টেস্টিং এবং ইন্টিগ্রেশন টেস্টগুলি ব্ল্যাকবক্স পরীক্ষা বলে বলতে রাজি হন?
শেডি 2149

দুর্ভাগ্যক্রমে, এটি নির্ভর করে। ইন্টিগ্রেশন টেস্টিংয়ের প্রযুক্তিগুলি সাম্প্রতিক বছরগুলিতে (অন্তত জাভা বিশ্বে) প্রচুর উন্নতি করেছে যাতে আমি 1 ক্লাস পরীক্ষা করতে পারি - তবে একটি অ্যাপ্লিকেশন সার্ভারে। প্রশ্নটি তখন হয়ে যায়, ইউনিট পরীক্ষা এবং ইন্টিগ্রেশন পরীক্ষার মধ্যে লাইনটি কোথায়? আপনি যখন আপনার কোডটি অন্য প্রযুক্তির সাথে ইন্টারফেসিং পরীক্ষা করেন, বা আপনি যখন আপনার পুরো অ্যাপ্লিকেশনটি পরীক্ষা করেন তখন একটি ইন্টিগ্রেশন টেস্ট হয় - তবে প্রয়োজনীয় পরিবেশে এটি চালানো নয়?
মার্কো

সংক্ষেপে, কিছু ক্ষেত্রে, নিশ্চিত ইন্টিগ্রেশন টেস্টগুলি ব্ল্যাক বক্স টেস্টিং - তবে সব ক্ষেত্রেই নয়।
মার্কো

এফওয়াইআই: উইকি সংহতকরণ পরীক্ষার সংজ্ঞা দেয় "সফটওয়্যার টেস্টিংয়ের সেই পর্যায় যেখানে স্বতন্ত্র সফ্টওয়্যার মডিউলগুলি একটি গ্রুপ হিসাবে একত্রিত করা হয় এবং পরীক্ষিত হয়"
মার্কো

ঠিক ঠিক, মার্কো। প্রতিটি উপাদান স্তরের একীকরণ আছে। কোড স্তর, প্রয়োগ স্তর, সিস্টেম স্তর।
আলেকজান্ডার.লিজুশকিন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.