Note :

*** తెలుగు లో classes కదా అని అన్ని తెలుగు పదాల లోనే ఉంటాయి అనుకోకండి Easy గా అర్థం కావడం కోసం కొన్ని ఇంగ్లీష్ పదాలనే వాడటం జరగింది.***

Thursday, 18 June 2015

Smoke Vs Sanity Testing  

Introduction and Differences


  • Software Testing లో , ఈ Smoke మరియు Sanity testing ని ఎక్కువగా misunderstood చేసుకుంటూ ఉంటారు . 
  • Software Testing ఎంతో subject  ఉన్న వారు కూడా ఈ Smoke మరియు Sanity testing విషయం లో పప్పు లో కాలు వేస్తూ ఉంటారు . 
  • ఈ క్రింది చెప్పే ఈ వ్యాసం , smoke మరియు sanity testing లో గందరగోళం ను పరిష్కరించడానికి ఒక ప్రయత్నం చేస్తుందని భావిస్తునాను . 
  • smoke మరియు sanity testing మద్య అతి ముక్యమైన key differences ని ఈ క్రింది చిత్రంలో  చూడవచ్చు. 
Software Build?

    "Software Build" అంటే ఏమిటంటే , మీరు ఒక చిన్న computer program ను develop చేసారు అనుకుందాం . దీనికి కేవలం ఒకే ఒక source code file, కలిగి ఉంది అనుకుందాం . దీనికి మీరు executable file కోసం దినిని compile మరియు  link చేస్తారు . ఇది సమస్య కాదు . 
       
        అదే మీరు ఓ కష్టతరమైన , పెద్ద Software Project ని develop చేసారు అనుకుందాం . అందులో కొన్ని సార్లు 100 లలో , 1000 లలో source code files ఉంటాయి . దీనికి executable program ని తయారు  చేయాలంటే , ఎంతో సమయం తో కూడుకున్న పని . అందుకే అప్పుడు "build" software ను executable program కోసం వాడటం జరుగుతుంది . దీనినే "Software Build" అంటారు . 
Smoke Testing?
  • Software build ని software build తర్వాత , program లో critical functionality(s) సరిగ్గా work చేస్తున్నాయో లేదో తెలుసుకోవడం కోసం నిర్వహిస్తారు . 
  • దినిని regression test కన్నా ముందే నిర్వహిస్తారు . 
  • badly broken application ను reject చేయడమే దిని యొక్క ముక్య ఉద్దేశం , దిని వలన QA TEAM , software application ను installing and testing కోసం సమయం waste చేయదు . 
  • ఈ Smoke Testing కోసం రాసే test cases లో ఎక్కువగా అత్యంత ముక్యమైన సిస్టం యొక్క functionality or component పై ద్రుష్టి పెడతారు . 
For Example : Application launches successfully అవడం కోసం , GUI యొక్క responsive ... etc. ఎలా ఉందో చూడటం . 
Sanity Testing?
code లో చిన్న చిన్న changes తో కూడిన software build ను  అందుకున్న తర్వాత , Sanity testing ను ఆ bugs ని fix చేయడం కోసం , దీనిలో కలిగే మార్పు వలన వచ్చే issues ని కనుగొనడం కోసం నిర్వహిస్తారు . 
దిని యొక్క ముక్య ఉద్దేశం functionality, సరిగ్గా  expected అవుతున్నాయో లేదో రఫ్ గా check చేయడమే . 
sanity test విపలం (fail ) అయితే అటువంటి build ని reject చేసేస్తారు . దిని ద్వార time అలాగే cost రెండు ఆదా చేయవచ్చు . 
For instance: మీరు ఒక్క  scientific calculator ప్రోగ్రాం లో 2 + 2 =5! ఇస్తున్నట్లు program రాసారు అనుకోండి . అటువంటపుడు , there is no point testing the advanced functionalities like sin 30 + cos 50.

Smoke Testing Vs Sanity Testing 

Smoke Testing
Sanity Testing
Smoke Testing అనేది కష్టతరమైన  functionalities , program లో సరిగ్గా work అవుతోందో లేదో check చేయడ0 కోసం చేస్తాం . Sanity Testing అనేది new functionality / bugs , fixed గా ఉన్నవో లేదో చెక్ చేయడం కోసం చేస్తాం . 
 ఇది developers or testers చేస్తారు . ఇది ఎక్కువగా testers చేస్తారు . 
దీనిని Regression testing యొక్క subset  గా చెప్పవచ్చు . దీనిని Acceptance testing యొక్క subset  గా చెప్పవచ్చు . 
దీనిని entire  system from end to end check చేస్తారు .  దీనిని కేవలం particular component కి మాత్రమే apply చేస్తారు . 
Smoke testing అనేది General Health Check Up లాంటిది . అదే Sanity Testing అనేది specialized health check up లాంటిది .