title: Understanding how software testing works and what to test
body: <p><strong>Intro:</strong> <br>
  I've seen lots of topics here on SO about software testing and other terms I don't understand.</p>
  
  <p><strong>Problem:</strong> <br>
  As a beginner developer I, unfortunately, have no idea how software testing works, not even how to test a simple function. This is a shame, but thats the truth. I also hope this question can help others beginners developers too.</p>
  
  <p><strong>Question:</strong> <br>
  Can you help me to understand this subject a little bit more?</p>
  
  <p>Maybe some questions to start would help:</p>
  
  <ul>
  <li>When I develop a function, how should I test it? For example: when working with a sum function, should I test every input value possible or just some limits? How about testing functions with strings as parameters?</li>
  <li>In a big program, do I have to test every single piece of code of it? When you guys program do you test every code written?</li>
  <li>How automated test works and how can I try one? How tools for automated testing works and what they do?</li>
  <li>I`ve heard about unit testing. Can I have a brief explanation on this?</li>
  <li>What is a testing framework?</li>
  </ul>
  
  <p>If possible please post some code with examples to clarify the ideas.</p>
  
  <p>Any help on this topic is very welcome! Thanks.</p>