Testing plays a vital role in the software development life cycle, helps to decide whether to release a product or application to the market. The time when to perform software testing activity is subjective to the development model chosen.
Any application would need to undergo the following types of testing at different situations as a process and quality check before releasing it to market.
- Functional testing
- Unit testing
- API testing
- Load testing
- Database testing
- Security testing
The decision as which all types of testing to be performed is based on the organisation’s interest, budget, time and on the level of importance. For example, any banking related application would need to undergo thorough UI functional, Load & Security testing.
Functional testing also known as black box testing is done on every update or build or release of application which have new features or enhancements or bug fixes. The testing team holds a major responsibility to thoroughly check if all the functional areas of the application which used to work earlier is working fine now and is termed as regression testing, any bugs identified during this process are termed as regression bugs and are treated with high priority as they regulate the decision to release an application to market. These bugs might have been introduced due to the code changes done as part of new feature or enhancement or bug fixes.
Testers are also expected to perform vigorous testing on the newly developed features, enhancements and the bug fixes.
As regression testing is highly prioritised, application need to undergo testing that is to execute the same set of functional test cases repeatedly, now if we perform this activity every time manually we will not be able to spend qualitative and quantitative time to test the new features , bug fixes and enhancements. This is when the need to automate functional test cases has arisen and which can help to reduce or eliminate the manual efforts to test the functional areas in the application which are supposed to work fine from before. Automation brings an added advantage of giving accurate results and have parallel execution of scripts.
After the automation testing been introduced, organisations have seen a major improvement in the quality of the application that got released to market along with reduction of testing costs and efforts. Now the manual resources can spend more and more time in doing thorough testing in new features , enhancements, bug fixes etc, which led to increase in giving more qualitative features to market.
As the application grows with time, organisations build more and more automation scripts and assets to increase the testing coverage, helps in increase of regression testing scope. Testing performed using automation scripts would result in accurate results and also saves a lot of time, money and effort. Resources can spend more and more time on writing manual test cases for new features, enhancements and also perform testing on new features, enhancements, bug fixes. The resource can utilize the time and work more on analyzing the bug patterns to come up with new approaches or strategies to optimize the testing.
Unit testing also known as white box testing which is performed at regular intervals of software development and bug fixing process by the respective software developers.
API testing is performed to check if the exposed APIs are working fine and are intact.
Load testing is performed on applications to evaluate the load it can handle and what is the maximum extend of load it can bear to work properly. These are generally done on applications where huge traffic is expected. It will help to understand the behavior of application during peak hours and stress.
Database testing is performed to check if database related basic operations work fine in various conditions of applications and also to check if data is consistent across different screens of the application.
Security testing is performed to check the vulnerable areas where hackers could break the system and gain access or cause issues to application.
Very well summarized how automation testing effective in S/w testing process. Here we are talking about automation of function testing part. If automation implemented by taking care parameters for long run it will be effective,efficient and time saver.
Thank you shraddha for your compliments and yes as you said it will be highly effective, time and money saver for the organisation.
Appreciate you for sharing your thoughts, keep looking for the articles and continue sharing your valuable comments.
This is very useful article to understand all kind of necessary automation testing .
Automation testing can help reduce the manual efforts and save time ,I think function testing is used for check product stability when product updated, but function testing usually cant find lots of bug as manual QA ,then how to evaluate function testing is necessary ? how to help manual QA covert more case to automation case quickly then save the resource cost ? Author give us a good answer.
Compare with functional testing , API testing need more access to the database ,then it required tester has more technical background ,thoroughly understand the code logic and background data table structures ,need find out each interface features and interface parameters meaning , expected return value etc,. API testing cant be interrupted ,then good file configuration and test data preparing is important.
Hi Ding,
That is a very good question, I will try my best in my answer here 🙂
The manual QA would be testing more on the areas which are updated or newly added features as you mentioned and hence there are high chances of finding bugs and automation is mainly focused on testing something which is stable and there might be chances of errors occurring due to latest bug fixes or feature updates or integration with other products. So as long as the bugs found in automation testing is low we can consider that the development team is doing a good job.
Also there is a catch here, we need to have good understanding of the application as which areas would get effected due to the code changes that has happened and so the scoping of automation test cases plays a very important role to validate if things are working fine as earlier, for this bot the functional and automation testing team need to work in tandem discuss thoroughly to get good results.
And in case there are bugs identified during automation testing its a high alarm to check and highest priority to get it fixed as we cannot something to customer which used to work earlier and is not working now.
And regarding how to increase the coverage, there are different ways to look at it, instead of just increasing the coverage every where try to find out the priority areas target to automate them initially , this could be known only by discussing with functional teams. As we always we know this 80 – 20 rule where they say 20% makes the major impact.
And also need to find out ways to speed up the development process to develop more and more automation scripts, these can be addressed based on the kind of framework that is being used. I hope you must be having a very good framework which supports you for the same.
Thank you , its really good answer.
I am happy that i could answer you clearly, keep visiting the site to learn more and ask more..
Yes as you said API testing needs good initial effort to make some configurations or generic ways to help quicken the process of development of automation scripts.
And yes it is expected that people working on API testing need to have good database related skills and quick understanding on the schema of the application under test.
I hope i tried to address both of your queries, please do let me know if you need more details.
This is a good article for us to understand the necessity of software automation testing. I’m wondering that is the functional automation testing not suitable for newly developed product?
That decision is subjective to the stability of the application.
If the application is expected that no major changes will happen, automation script development for the same could be started.
And in the cases when changes are expected in application even the automation will have an impact. If we have any impact analysis we can take a decision when to start.
hi Srinivas
Your knowledge on testing automation is exceptionally very clear.
I really liked your article and the answers on comments.
keep sharing such valuable inputs.
stay blessed
meena
Thank you meena, happy to help 🙂 i am glad you liked it.