Note :

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

Monday, 18 May 2015

Automation Testing

ఆటోమేషన్ టెస్టింగ్ (Automation Testing) :

               Manual testing లో మనం ఒక ప్రాజెక్ట్ ని మనుషులు  టెస్ట్ చేస్తారని తెలుసుకున్నమ్. యిప్పుడు  Automation Testing  గురించి తెలుసుకుందాం . 



  • Automation Testing  టెస్టింగ్ అంటే ఒక టెస్ట్ కేసు ని ఒక automation tool ద్వార టెస్ట్ చేయడాన్నే Automation Testing అంటారు. 

  • ఇందులో  test data ని సిస్టం లో ఆటోమేటిక్ గా ఎంటర్ చేసి expected మరియు actual  results ని మొత్తం ను test  reports గా అందిస్తుంది . 

  • అయితే Automation Testing చేయాలి అంటే అందుకోసం టెస్టింగ్ టూల్స్ పై అవగాహనా ఉన్న సిబ్బంది మరియు టూల్స్ కావలసి ఉంటుంది అందుకే ఇది కొంత కర్చుతో కూడుకున్న పని . 

  • అయితే Automation Testing వలన వందమంది చేయగల పని ఒక్కరే చేయగలుగుతారు . ఒక్కసారి ఇందులో టెస్ట్ కేస్ ని రికార్డు చేసి ఉంచినట్లయితే మనకి ఎపుడు కావలసి వస్తే అపుడు ఎన్నిసార్లైన వాడుకోవచ్చు . 
  • *** ముక్యమైన పాయింట్ ఏమిటంటే, Automation Testing యొక్క ముక్యమైన ఉద్దేశం ఏమంటే పలుమార్లు చేసే పనిని manual testing గా కాకుండా Automation చేయడమే తప్ప  manual testing ని eliminate  చేయడం కాదు . 



Why Automated Testing?

            
              Automated testing అనేది ఈ క్రింది కారణాల చేత ముక్యమైనది గా భావిస్తారు .  

  • Manual Testing ద్వార అన్ని work flows, అన్ని fields , అన్ని negative scenarios కనుగొనాలి అంటే సమయం మరియు ఎక్కువ ఖర్చు తో కూడుకున్న పని. 
  • multi lingual sites ని manually గా టెస్ట్ చేయడం కష్టం తో కూడుకున్న పని . 
Image result for automation gears
  • దీనికి ఎక్కువ మంది నిపుణులతో పని లేదు . 
  • Automation ద్వార టెస్టింగ్ speed ఎక్కువ గా ఉంటుంది . 
  • Manual Testing చేస్తూ ఉంటె కాసేపటి తర్వాత boring గా ఉంటుంది దిని వలన ఎక్కువ error వచ్చే అవకాసం ఎక్కువ . 

 

Which Test Cases to Automate?


    Image result for automation gears
  1. High Risk - Business Critical test cases. 
  2. Test cases that are executed repeatedly.  
  3. Difficult to perform manually. 
  4. which are time consuming. 


ఈ క్రింది సమయాలలో  automation అనేది not suitable:

Image result for no automation
  • Test Cases కొత్తగా design చేసినపుడు మరియు ఒక్కసారి కూడా  manually  టెస్ట్ చేయకుండా ఉన్నపుడు . 
  • Test Cases ని requirements ని frequently మార్పు చేయాలి అనుకున్నపుడు . 


Automation Process

**** మరింత సమాచారం తరవాయి బాగం లో తెలుసుకుందాం ....  ****



Thursday, 14 May 2015

Manual Testing

Image result for manual testing images
Manual Testing :


  • Manual Testing ఈ పద్ధతి లో testers ఎటువంటి automation tools ని వాడకుండా టెస్ట్ చేస్తారు .
  • అన్ని testing types (యూనిట్,సిస్టం etc .) కి ముందుగా Manual Testing ని నిర్వహిస్తారు.
  • Manual Testing అనేది కనీసం ఒక్కసారైనా నిర్వహిస్తారు. ఏదైనా ప్రాజెక్ట్ ని ఆటోమేషన్ టూల్స్ ద్వార టెస్ట్ చేసే ముందు కనీసం ఒక్కసారైనా ఈ పద్ధతి నిర్వహిస్తారు.
  • Manual Testing చేసే వారికి టెస్టింగ్ టూల్స్ గురించి పరిజ్ఞానం ఉండవలసిన అవసరం లేదు .
  • Software Testing Fundamental ప్రకారం పూర్తి స్థాయిలో 100% Automation అనేది జరగదు. అందుకే Manual టెస్టింగ్ అవసరం.

Goal of Manual Testing :

  • Manual Testing యొక్క ముక్య ఉద్దేశం ఏమిటంటే application ని error free గా మరియు specified functional requirements ని satisfies చేస్తోందో లేదో చూడటమే.
  • Test Suites or cases ని ఈ విధానం లోనే రూపొందిస్తారు.
  • ఈ విధానం లో developers ద్వార fix అయిన error ని తిరిగి టెస్ట్ చేస్తారు.
  • Manual Testing యొక్క ముక్య ఉద్దేశం  system యొక్క క్వాలిటీ ని చెక్ చేయడం మరియు bug-free product ని కస్టమర్ కి అందివడమే.


Manual Testing types:

              క్రింది చిత్రం లో చూపిన Manual Testing Types , Manual టెస్టింగ్ ద్వార మరియు automation tool ద్వార execute చేయవచు.

types of manual testing


Manual టెస్టింగ్ యొక్క అపోహలు నిజాలు :

              క్రింద చూపినవి ఎక్కువగా టెస్టింగ్ గురించి చాలామంది అనుకునే కొన్ని అపోహలు మరియు నిజాలు :

   

అపోహ : ఎవ్వరైనా సరే manual టెస్టింగ్ చేయోచ్చు.
నిజం : Testing చేయడానికి చాల  నిపున్యం ఉండాలి.

అపోహ :  టెస్టింగ్ ద్వార 100% defect free product ని పొందవచ్చు .
నిజం : టెస్టింగ్ చేయడం ద్వార చాలావరకు వీలైనన్ని defects ని కనుగొనగలం అంతే గాని పూర్తి స్థాయి 100% లో defects ని కనుగొనడం సాధ్యపడదు . 

అపోహ : manual testing కన్నా Automated testing అనేది more powerful 

నిజం : 100% test automation cannot be done. Manual Testing కూడా అవసరమే.

అపోహ : Testing చాల సులభం 
నిజం : టెస్టింగ్ అనేది అనుకున్నంత సులభం కాదు దీనికి చాల analytical నైపుణ్యం కావలి. చాల challenging తో కూడుకున్న పని టెస్టింగ్. 


Comparison of Manual and Automated Testing :

  • Automation టెస్టింగ్ లో test cases ని execute చేయడానికి tools ని ఉపయోగిస్తారు అదే manual testing లో మనుషులని వాడతారు.

  • Automation Testing లో సమయం , డబ్బు, manpower save చేయవచ్చు. ఒక్కసారి record, చేసాక test suite ఎన్నిసారులు కావాలంటే అన్ని సార్లు మనం run చేసుకోవచ్చు . అదే manual testing తో పోల్చుకుంటే నైపుణ్యం ఉన్న మనుషులు కావలసి వస్తుంది .

  • ఎటువంటి application  అయిన manual గా టెస్ట్ చేయవచు , అదే automated testing ద్వార కొన్నింటిని మాత్రమె టెస్ట్ చేయగలం .

  • automated టెస్టింగ్ దినిని ఎక్కువగా regression testing కోసం వాడుతారు  
  • అలాగే కొన్ని టెస్టింగ్ కి like ad-hoc and monkey testing కి manual execution చాల ఉపయోగ పడుతుంది .

  • manual టెస్టింగ్ లో పదే పదే repetitive గా చేయవలసిన భాగాన్ని టెస్ట్ చేయడం కోసం automation టెస్టింగ్ చాల ఉపయోగ పడుతుంది. 


ముగింపు :

         Manual testing అంటే tester ఎంతో ఓపికతో ,creative & open minded తో ఒక End User ల ఆలోచిస్తూ టెస్టింగ్ చేసే ఒక ప్రక్రియ.

Friday, 8 May 2015

Incremental Model

Incremental model 





  • ఈ incremental model లో మొత్తం requirement ని చిన్న చిన్న బాగాలుగా విభజిస్తారు.
  • ఈ పద్ధతిలో చాల development cycles ఉంటాయి విటన్నిటిని కలిపి "multi -waterfall" cycle గా పిలవచ్చు.
  • సులబంగా manage చేయడం కోసం ఈ cycles ని మళ్ళి చిన్న చిన్న బాగాలుగు (module) విడగొడతారు .
  • ప్రతి ఒక్క module , requirements, design, implementation and testing phases ద్వార డెవలప్ చేయబడుతుంది.
  • ఇలా విడగొట్టిన మోడుల్స్ అన్నింటిని ఒక్కొకటి గా కలుపుకుంటూ ప్రాజెక్ట్ పూర్తి అయ్యేవరకు చేస్తారు.


For example:







  • పైన చూపిన విధంగా incremental module ఉంటుంది.
  • అంటే ఒక్కొక్క బాగాన్ని విడిగా పూర్తి చేసే , పూర్తి అయిన భాగాన్ని మరొక పూర్తి అయిన భాగం తో కలిపి చివరికి పని (project) పూర్తి చేస్తారు.
  • పైన చిత్రం లో చూపిన విధం గా ఒక్కొక్క భాగాన్ని పూర్తి చేసి step by step ప్రాజెక్ట్ ని పూర్తి చేస్తారు.



Advantages of Incremental model:




  • Generates working software quickly and early during the software life cycle.
  • This model is more flexible – less costly to change scope and requirements.
  • It is easier to test and debug during a smaller iteration.
  • In this model customer can respond to each built.
  • Lowers initial delivery cost.
  • Easier to manage risk because risky pieces are identified and handled during it’d iteration.




Disadvantages of Incremental model:




  • Needs good planning and design.
  • Needs a clear and complete definition of the whole system before it can be broken down and built incrementally.
  • Total cost is higher than waterfall.



When to use the Incremental model:




  1. The requirements of the complete system are clearly defined and understood.
  2. Major requirements must be defined; however, some details can evolve with time.
  3. There is a need to get a product to the market early.
  4. A new technology is being used
  5. Resources with needed skill set are not available
  6. There are some high risk features and goals.

Thursday, 7 May 2015

V-Model :

                                                     V-Model :

               Waterfall Model లో ఉన్న ప్రధానమైన drawback ఏమిటంటే చివరి విభాగాలలో (అంటే కోడింగ్ తర్వాతి విబాగాలు ) మాత్రమే మనం testing చేస్తాం మరియు ఏమైనా defects ఉంటె at end stage లో మాత్రమే కనుగొనడం జరుగుతుంది .
  • ఇలా చేయడం ద్వార time మరియు money చాల ఖర్చు అవుతుంది. దీని గురించి వివరంగా " cost to fix the defects " లో తెలుసుకోవచ్చు.
  • ఇటువంటి సమస్యలను overcome చేయడం కోసం రుపొందినచిందే “V Model”
  • ఇప్పుడు ఎక్కువగా వాడుతున్న software development process లో V model ఒకటి.
  • దీనినే verification and validation model అని కూడా అంటారు.

V-Model గురించి తెలుసుకునే ముందుగా Verification మరియు  Validation అంటే ఏంటో తెలుసుకుందాం.

Verification: ఇది ఒక static analysis technique. ఈ పద్దతిలో code execute చేయకుండ టెస్టింగ్ చేస్తాము.
 
Examples  – Reviews, Inspection and walk-through.

 
Validation: ఇది ఒక dynamic analysis technique. ఈ పద్దతిలో code execute చేసి టెస్టింగ్ చేస్తాము.
 
Examples -  functional and non-functional testing techniques.

 
V - Model : 

  • ఈ పద్దతి లో development, QA ఏకకాలం లో జరుగుతాయి.
  • ఎడమ చేతి వైపు development (అభివృద్ధి ) కార్యకలాపాలు చూపిస్తుంది మరియు కుడి వైపు testing కార్యకలాపాలు చూపిస్తుంది. 



ఎడమ చేతి వైపు (Left Hand side ):
ముందుగా చెప్ప్పిన విధంగా ఎడమ చేతి వైపు development (అభివృద్ధి ) కార్యకలాపాలు జరుగుతాయి.

Requirement analysis: 
  • ఈ విభాగం లో requirements ని collect, analyze చేస్తారు.
  • ప్రాజెక్ట్ యొక్క objectives పూర్తిగా తెలుసుకోవడం కోసం Brain storming sessions/walkthrough, interviews ని జరుపుతారు.

Verification activities : Requirements reviews.
Validation activities :Creation of UAT (User acceptance test) test cases
Artifacts produced : Requirements understanding document, UAT test cases.

 
System requirements / High level design: 
  • ఈ విభాగంలో high level design of the software ని  build చేస్తారు .
  • requirements ని ఏ విధం గా implement చేయవచ్చో చున్నం గా పరిశిలిస్తారు. 
  • Hardware / software ఏమేం కావాలో ఒక నిర్ణయానికి వస్తారు.

Verification activities: Design reviews
Validation activities: Creation of System test plan and cases, Creation of traceability metrics
Artifacts produced: System test cases, Feasibility reports, System test plan, Hardware software requirements, and modules to be created etc.

 
Architectural design:  
  • ఈ విభాగం లో  high level design ఆధారంగా software architecture ని రూపొందిస్తారు.
  • The modules, వాటి మద్య  relationships మరియు dependencies ని రూపొందిస్తారు.
  • architectural diagrams, database tables ని రూపొందిస్తారు.

Verification activities: Design reviews
Validation activities: Integration test plan and test cases.
Artifacts produced: Design documents, Integration test plan and test cases, Database table designs etc.

 
Module design/ Low level Design:   

  • ఈ విభాగం లో ప్రతి module లేదా software components  యొక్క design ను విడివిడిగా రూపొందిస్తారు.
  • Methods, classes, interfaces, data types మొదలైనవి అన్ని ఈ దశ లో పూర్తి చేస్తారు.

Verification activities: Design reviews
Validation activities: Creation and review of unit test cases.
Artifacts produced: Unit test cases,

 
Implementation / Code:
  • ఈ విభాగం లో అసలైన కోడింగ్ పని మొదలవుతుంది.

Verification activities: Code review, test cases review
Validation activities: Creation of functional test cases.
Artifacts produced: test cases, review checklist.

 
కుడిచేతి వైపు (Right Hand Side ):
              ముందుగా చెప్పినట్లు కుడి చేతి వైపు testing activities లేదా Validation జరుగుతాయి.

Unit Testing:                     
                    ఈ విభాగం లో Low level design దశ లో రుపొందిన్చినటువంటి unit test case ని executed చేయడం జరుగుతుంది.
  • Unit testing  ఒక  white box testing technique.
  • ఈ testing మాములుగా development team చేస్తుంది.

Artifacts produced:  Unit test execution results

 
Integration Testing:  

               ఈ విభాగం లో Architectural design దశ లో రుపొందిన్చినటువంటి integration test cases ని executed చేయడం జరుగుతుంది.
  • Integration Testing  ఇందులో unit tested modules ని integrate చేసి టెస్ట్ చేస్తారు.
  •  expected results వస్తునాయో లేదో పరిశిలిస్తారు.

Artifacts produced: Integration test results.

 
Systems testing:
            అసలైన టెస్టింగ్ ఈ దశ లోనే మొదలవుతుంది అన్ని system test cases, functional test cases మరియు nonfunctional test cases
execute చేస్తారు.

Artifacts produced: Test results, Test logs, defect report, test summary report and updated traceability matrices.

 
User acceptance Testing: 
  • ఇది ఒక  business requirements testing కి సంబంధించినది.
  • ఈ దశ లో business requirements ,user environment లో expected results ని ఇస్తాయో లేదో చెక్ చేస్తారు.
  • Compatibility testing మరియు sometimes nonfunctional testing (Load, stress and volume) testing ను చేస్తారు.

Artifacts produced: UAT results, Updated Business coverage matrices.

 
ఎక్కువ గా V Model ను ఎప్పుడు use చేయాలి ?
  1. Requirement is well defined and not ambiguous
  2. Acceptance criteria are well defined.
  3. Project is short to medium in size.
  4. Technology and tools used are not dynamic.

Tuesday, 5 May 2015

Waterfall Model :


 SDLC Waterfall Model


  • Waterfall Model మొట్టమొదటగా ఉపయోగించిన మోడల్.
  • దీనినే "Linear-sequential life cycle మోడల్ " అని కూడా అంటారు.
  • ఈ మోడల్ లో ఒక phase పూర్తిగా కంప్లీట్ అయిన తర్వాతనే తర్వాతి phase కి వెళ్ళడం జరుగుతుంది.
  • software development కోసం ఉపయోగించిన పద్ధతులలో Waterfall model చాల పురాతనమైనది.
  • waterfall Model లో software development process ఒక linear sequential flow (క్రమ పద్ధతి ) లో ఉంటుంది. అందుకే దీనిని
  • "Linear-sequential life cycle మోడల్ " అని కూడా అంటారు.


Waterfall Model design :

  • ఈ పదతిలో ఒక్క phase లోని output మరో phase కి input అవుతుంది.

The sequential phases in Waterfall model are:

Requirement Gathering and analysis:

       Software Development కి కావలసిన possible requirements ని gather చేస్తారు వాటిని requirement specification document పొందుపరుస్తారు.


System Design:
  • మొదటి విభాగం లోని requirement specifications ని పరిసిలించిన తర్వాత system design ని రూపొందిస్తారు.
  • దీని ద్వార hardware and system requirements మరియు overall system architecture ని రూపొందిస్తారు.
Image result for system design clip art

Implementation:

  • system design లోని వివరాలతో చిన్న చిన్న ప్రోగ్రామ్స్ గా విడగోడతారు వీటినే "యూనిట్స్" అని అంటారు.
  • ఈ చిన్న చిన్న యూనిట్స్ ని తర్వాతి విబాగం లో integrate (కలపడం) చేస్తారు.
  • ఈ విధం గా విడగొట్టి డెవలప్ చేయడాన్ని , టెస్ట్ చేయడాన్ని "యూనిట్ టెస్టింగ్" అంటారు.
Image result for implementing Image result for planning

Integration and Testing:

  • ముందు విబాగం లో ఉన్న చిన్న చిన్న యూనిట్స్ ని ఒకటిగా merge చేసి మొతాన్ని ఒకసారి టెస్ట్ చేస్తారు.
  • ఇలా మొతాన్ని టెస్ట్ చేయడాన్ని "system" టెస్టింగ్ అంటారు ఇలా చేసి ఏమైనా faults and failures ఉన్నాయేమో చూస్తారు.
Image result for implementing

Deployment of system:

        చివరిగా functional and non functional testing పూర్తి చేసిన తర్వాత product (ప్రాజెక్ట్) ని customer environment లో deploy చేయడం గాని లేదా market లో release చేయడం గాని చేస్తారు.
Image result for deployment of system

Maintenance:

          ఈ విబాగం లో final గా ఏమైనా client environment నుండి issues ఉంటె వాటిని solve చేయడం అలాగే అవసరం మేరకు better versions ని release చేయడం జరుగుతుంది.   

Image result for maintenance man icon