How to Change from Manual Testing to Automation Testing
Nov 14,2019. Reference: 1 Day Experience Sharing with Khun Prathan(Noom) Dansakulcharoenkit at Siam Chamnankit co. Ltd.
“1 Day Experience Sharing, Change from Manual Testing to Automation Testing”
The trainer shared his experience regarding automation testing development that big firms or software houses would face. For example, prepared UI automation Testing would be affected after code development. In addition, all tests cannot be completely covered with UI automation testing. Not to mention a drained efforts.
Facts of testing in Waterfall methodology
- Testing is involved in the later phase of SDLC because earlier phases , which are requirements , analysis and design , and coding are delay. However, release date is not postponed. It makes time frame tight.
- Purpose of testing is’bugs finding’ instead of ‘bugs preventing’
- Manual testing takes time
- [Expectation] Bugs are found in requirement phases in order to reduce chances of bugs finding in production.
- [Actual] Most of bugs are found in acceptance testing , and production phases.
Root causes
- [Most importance] lack of business domain and requirements information. This leads to planing, analysis ,and awareness issues.
- Testing is involved in the later phase
- Silo style with poor communication and collaboration
- Requirements amendment
Resolutions
- To prevent defects, not to find them. A QA organization should champion processes that build quality into the code from the start rather than test quality in later.
- Testing should be involved since the beginning so that testers would get involve in business flows and test cases would be more accurate.
- Automation testing
What is the goal of Automate testing?
We automate repeatable (Testing = Functional Testing + Non Functional Testing) in example Regression testing (Retest all , Selection prioritized).
We need to execute test frequently when there is a change in requirements, Change code according to the requirements, Add, Edit and/or remove new features, Fixed bugs/defects.
Automate Testing Tips
Write failing automated test -> Run failing test -> develop code to make test pass -> run test -> repeat
- Automate Testing should be kept in Repository, same as Develop source code, otherwise written Testing Code is useless.
- Use Coding standard in order to makes it easier for implementation or modify by other members.
- Mind mapping should be applied.
- Test Data should be similar to production data, because it would cover all business test cases.
- Tester or QA is still working with the same process but Test case should come up with requirements.
- Tester should improve Testing Skills, Test Design, Testing Technique: Black-box/White-box Testing)
- We should start Automation Testing with new task because it will be faster than Legacy Code, so never Test Code before.
- The reason why we should implement unit test rather than UI testing is that design is changed ,then UI is changed. It’s the impact of Automate UI.
Automate build and test
- Automate builds the whole system and runs the test in ten minutes. A build that takes tasks longer than ten minutes will be used much less, missing the opportunity for feedback.
- The statement of the practice gives three clues: automate can build the whole system and run all of the tests in ten minutes.
Testing Technique
- [Functional Testing]: checking functionalities of the software system. It mainly concentrates on requirements such as Unit testing, Integration testing, etc.
- [Non-Functional Testing]: Beside the requirements, we have to test Scalable, Security, Privacy, Installation, Data Migration, etc.
- [Test Case/ Test Scenario]: Data preparation (Test Condition + Test Data Production) for testing and expected results.
4. [Test Pass / Fail] : If Actual results = Expected results , then pass.
Verification vs Validation
Validation is the process of checking whether the specification captures the customer’s needs, while verification is the process of checking that the software meets the specification.
1. [Test Driven]: Test is used to drive behavior changing for software developments
2. [Test Automation] : Main benefits of automation testing are less time consuming and more frequency.
3. [Regression Testing] : We use regression testing when we want to re-tests test cases after Requirements change or fixed Bugs. So, Test Automation can help and it is repeatable.