What is non functional testing in software testing?

It is testing of “how” the system works. Non functional testing may be performed at all test levels. The term non-functional testing describes the tests required to measure characteristics of systems and software that can be quantified on a varying scale, such as response times for performance testing. Types of Non-functional testing are performance testing, load testing, stress testing, usability testing, maintainability testing, reliability testing and portability testing.

Why the testing people go for Automation testing?

To save money and time. This is done by automating test cases which need to be run over and over again with different set of data/environment/OS etc.
Interestingly, automation benefits are often not what you might expect. Smart managers will use it for the mundane testing, and then rather than layoff testers, allow them to perform more exploratory testing.

If well implemented, it can detect subtle issues, like counters that are valid with values of 1 or greater, generating issues when they occasionally reset to 0. It will identify object property naming issues that are not visible to the user. It can even track when links have taken you to from the test site to the live site.

One approach to estimated ROI savings can be calculated by the amount of money that would have been paid to a warm body to perform the testing manually, plus the estimate of the cost to the company to pacify the customer had the defect reached them.

If poorly implemented, they become projects that require more maintenance than execution, losing buy-in, and eventually failing

What is the difference between quality assurance and quality control?

qa is set of activities whose purpose is to demonstrate that an entity meets all quality requirements. this is done by adopting a standard set of process and ususl qa techniques like review, training, facilitation etc. it can be termed as defect prevention

qc is set of activities whose purpose is to ensure that all quality requirements are being met.this is defect detection, and done by testing