Software Testing

What is Software Testing?

Software testing can be termed as an investigation done with an intent  to gather information about the quality of the product or service under test.
It also provides an objective and independent view of the software which is a very useful information for stakeholders. This information allows the business to  understand the risks of software implementation.
What is a Testing Technique?
Test technique is  the process of executing a program or application with the intent of finding software bugs , errors or other defects.
The process of software testing includes execution of a software components .
It involves the execution of a software component or system component to evaluate one or more properties of interest. In general, these properties indicate the extent to which the component or system under test:
The intent of testing includes:
  • The properties of the system under test should meet the requirements for which they have been design and development.
  • The system under test should responds correctly to all kinds of inputs.
  • The system under test should perform the functions defined it is supposed to , within an acceptable time.
  • The system under test should be sufficiently usable.
  • The system under test should be such that it could  be installed and run on the intended environments .
  • The system under test should achieve the results in general that its stakeholders desire.

How much testing do we need?
There are possibly infinite tests for any software component that needs to be tested . But
it is practically impossible to test all the conditions due to time and business constraints.
Therefore we must deploy a strategy to select tests that are feasible for the available time and resources.
When to test?
Overall testing approach should determine when and how testing should be conducted. 
Software testing can be conducted as soon as executable software (even if partially complete) exists.
Links to useful posts:

·         Abstraction
·         Method Overriding
·         Method Overloading
·         Instance Variables 
·         Java Applets
·         Pop ups and Alerts
·         Absolute path
·         Relative path
·         Annotations
·         JSP Vs Servlet
·         Testng Annotations - part 1
·         Model-based testing (MBT)
·         Big Data Testing
·         Cloud Testing
·         TDD Test Driven Development
·         Verification vs Validation
·         Software testing types
·         Risk Management