কম্পিউটার প্রোগ্রামিং এবং সফ্টওয়্যার পরীক্ষায় স্মোক টেস্টিং (এছাড়াও আত্মবিশ্বাস পরীক্ষা, স্যানিটি টেস্টিং,[১] বিল্ড ভেরিফিকেশন টেস্ট(বিভিটি ) [২][৩] এবং বিল্ড গ্রহণযোগ্যতা পরীক্ষা) সহজ ব্যর্থতা প্রকাশের জন্য প্রাথমিক পরীক্ষা হিসাবে দেখা যায়, উদাহরণস্বরূপ এটি সম্ভাব্য সফ্টওয়্যার রিলিজ ক্যান্সেল করে দেয়। ধূম পরীক্ষার একটি উপসেট হল পরীক্ষার বিষয় একটি উপাদান বা সিস্টেম সবচেয়ে গুরুত্বপূর্ণ কার্যকারিতা, সফ্টওয়্যার প্রধান ফাংশন সঠিকভাবে কাজ করার প্রদর্শিত হবে কিনা তা এইড মূল্যায়ন করতে।[৪] যখন কোনও কম্পিউটার প্রোগ্রামকে আরও অধিকতর সূক্ষ্ম পরীক্ষা করা উচিত কিনা তা নির্ধারণ করার জন্য যখন ব্যবহার করা হয় তখন ধোঁয়া পরীক্ষাকে ইনটেক টেস্ট বলা যেতে পারে। অন্যথা, এটি একটি প্রতিটি নতুন বিল্ড চালানো পরীক্ষার গুচ্ছ পণ্যের তা যাচাই করতে বিল্ড করার আগে বিল্ড টেস্ট দলের হাতে উন্মুক্ত করা হয়।[৫] ডিভোপস দৃষ্টান্তে, একটি বিভিটি ধাপের ব্যবহার অবিচ্ছিন্ন ইন্টিগ্রেশন ম্যাচিউরিটি পর্যায়ের এক বিশেষ দিক।[৬]
উদাহরণস্বরূপ, ধূম পরীক্ষা "প্রোগ্রামটি কি চলে?", "ইউজার ইন্টারফেস কি খোলে?", অথবা "মূল বোতামে ক্লিক করলে কি কিছু হয়?" ধূম পরীক্ষার প্রক্রিয়ার লক্ষ্য হল অ্যাপ্লিকেশনটি এত খারাপভাবে ভেঙে গেছে কিনা তা নির্ধারণ করা যাতে তাৎক্ষণিক আরও পরীক্ষা অপ্রয়োজনীয় হয়। সফ্টওয়্যার টেস্টিং[৭] পাঠের বই থেকে বলা হয়েছে, "ধূম পরীক্ষাগুলি সীমিত সময়ের মধ্যে পণ্যের বৈশিষ্ট্যগুলিকে ব্যাপকভাবে আবৃত করে যদি মূল বৈশিষ্ট্যগুলি কাজ না করে বা যদি বাগগুলি এখনও সমাধান করা না হয়, তাহলে আপনার দল ইন্সটল বা টেস্টে আর সময় নষ্ট হবে না।"[২]
ধূম পরীক্ষাগুলি প্রায়শই খুব দ্রুত চলে, আরও বিস্তৃত পরীক্ষা স্যুট চালানোর পরিবর্তে দ্রুত ফলাফলের সুবিধা দেয়, যাতে অনেক বেশি সময় নেয়।
একটি দৈনিক নির্মাণ এবং ধূম পরীক্ষা সেরা অনুশীলনগুলির মধ্যে একটি।[৮] আরও পরীক্ষার জন্য নির্মাণ গ্রহণ করার আগে পরীক্ষকদের দ্বারা ধূম পরীক্ষা করা হয়। মাইক্রোসফ্ট দাবি করেছে যে কোড পর্যালোচনার পরে, "সফ্টওয়্যারের ত্রুটিগুলি সনাক্তকরণ এবং সংশোধন করার জন্য ধূম পরীক্ষা সবচেয়ে সাশ্রয়ী পদ্ধতি"।[৯]
কেউ ম্যানুয়ালি বা স্বয়ংক্রিয় টুল ব্যবহার করে ধূম পরীক্ষা করতে পারে। স্বয়ংক্রিয় সরঞ্জামের ক্ষেত্রে, যে প্রক্রিয়াটি বিল্ড তৈরি করে তা প্রায়শই পরীক্ষা শুরু করে।[তথ্যসূত্র প্রয়োজন]
ধূম পরীক্ষাগুলি কার্যকরী পরীক্ষা বা ইউনিট পরীক্ষা হতে পারে। কার্যকরী পরীক্ষা বিভিন্ন ইনপুট সহ সম্পূর্ণ প্রোগ্রাম অনুশীলন করে। ইউনিট পরীক্ষা পৃথক ফাংশন, সাবরুটিন, বা বস্তুর পদ্ধতি অনুশীলন করে। কার্যকরী পরীক্ষায় প্রোগ্রাম ইনপুটগুলির একটি স্ক্রিপ্টেড সিরিজ অন্তর্ভুক্ত থাকতে পারে, সম্ভবত এমনকি মাউসের গতিবিধি নিয়ন্ত্রণের জন্য একটি স্বয়ংক্রিয় প্রক্রিয়া সহ। ইউনিট পরীক্ষাগুলি কোডের মধ্যেই পৃথক ফাংশন হিসাবে প্রয়োগ করা যেতে পারে, বা অন্যথায় একটি ড্রাইভার স্তর হিসাবে যা কোডটি পরীক্ষা করা কোড পরিবর্তন না করেই কোডের সাথে লিঙ্ক করে।[তথ্যসূত্র প্রয়োজন]
সফ্টওয়্যার টেস্টিং-এ শেখা পাঠে, সিম কানের, জেমস বাখ এবং ব্রেট পেটিকোর্ড শব্দটি প্রদান করেছেন: "ধূম পরীক্ষা" শব্দটি ইলেকট্রনিক হার্ডওয়্যার পরীক্ষা থেকে আসে। আপনি একটি নতুন বোর্ড প্লাগ ইন করুন এবং পাওয়ার চালু করুন। আপনি যদি বোর্ড থেকে ধোঁয়া আসতে দেখেন তবে বিদ্যুৎ বন্ধ করুন। আপনাকে আর কোনো পরীক্ষা করতে হবে না।"[২]