After a longer than expected hiatus the Rebel Blog is back with a bang, this time with a guest post from a good friend of Rebel Recruitment, Andy Shaw. You can view Andy’s profile here and share your thoughts on his post in the comments section below!
Automated Testing: A journey so far
My name is Andy Shaw and I am an IT Professional who is developing a career in Software Testing. Recently, I have started to gain a practical insight into performing Automated Testing after attending different networking events explaining the benefits and limitations of Automated Testing, as well as hearing about some of the software testing tools that are available like Selenium and HP Load Runner.
I have started by automating specific areas of a software system, which I have developed by exploring how the software works, how the automated testing tools can be used to automate the different tasks performed by the software and the feasibility of automating specific tasks (as it is not possible to automate every task performed by the software system).
I have automated the software that I am testing incrementally, so I could see how the automated tests would work when running, and reviewed the tests that I needed to automate to determine their feasibility and how the automation would add value to the software being tested and the project in question.
The benefits that I have found with automated testing are that by incrementing automated tests I could see how the tests I was creating were adding value to the software being tested and the organisation, and gaining a deeper understanding of how the software tasks were performed, which needed to be created as automated tests.
The limitations that I have found with automating the tests is that some of the functionality included in the tools that I have developed is not as robust as I initially thought and it has been tricky to learn how to use some of the functionality to automate some of the tests.
What I have learned from performing automated testing is that
- It can take time to automate tests for software and that you need to be patient and persevere with creating the automated tests, and keep on going and not give up if the tests do not produce the expected results needed for testing.
- Developing the tests using an AGILE methodology is helpful to see how the tests can be created using an iterative approach. It is easier to create small automated tests to begin with, which you can add to and develop, than to create a really complex automated test which is inflexible to use.
- Understanding the software and how it works is beneficial to understanding how tests should be automated. It is also useful to ask questions with colleagues using and developing the software to understand deeper how it works
- It is not possible to automate some tests for a specific software/ web based system and there are indeed some specific tests that would be difficult to automate.
I would also recommend to testers who are considering automating tests in their organization to:
- Plan, and consult with other testers and Testing Managers about their plans to automate the tests, and identify which tests they wish to automate and how the automated tests will add value to the software and the organisation.
- Identify which areas of the software they wish to automate tests for and identify the feasibility of automating them. It is also worth prioritising which automated tests need to be created and the value that they could bring when testing a software/ web based system (including the benefits of producing automated tests for regression testing, which will save time testing).
- Identify the tests which may be considered out of scope at the present time, because they may be difficult to create automated tests for, depending on the automated testing tools used. Remember, not all tests can be automated easily and some may need to be considered to be automated at a later date. Some tests are also beneficial when performing exploratory and manual testing (especially when you have a short amount of time to test something).
- Look at and learn different automated testing tools like Selenium and how beneficial they could be for developing automated tests for a software/ web based system.
- Attend IT, Software Testing and professional networking events and talking to people who have used specific testing tools that you may consider learning about. They may give you some valuable insights into how you can use the testing tools that you can use for your testing.
- Learn a programming language like C, C#, Java, Visual Studio and languages like SQL, if you are interested in learning more about the coding behind the software, which can help identify different ways in which to automate specific tests.
- Continually review the automated tests that you are creating and identify whether or not they are adding value to the testing you are undertaking and their effectiveness for testing specific areas of a software/ web based system. Some automated tests may be beneficial and used for regression testing and save time.
- Learn about the software/ web based system that you are testing, which will help to automate the tests.
- Understand that it can take time for automated tests to achieve a Return on Investment because it can take a while to automate different tests and the short term of developing automated tests can produce quicker testing results over time. Being patient with creating and developing the automated tests will help
I feel that Automated Testing will be beneficial to help test the software/ web based systems that I have been testing and I am interested in learning more about how automated testing. I also feel that automated testing, combined with manual, exploratory and other types of testing can produce significant benefits to an organisation by indicating the level of quality of a software/ web based system is, uncover areas in those systems that have been affected by changes and more companies I know are using automated testing. I shall also be looking at developing my knowledge and experience of some of the automated testing tools that are available, as well as gain more experience in coding so I can write more automated tests in the future.
How have you all found automation testing? What are the benefits that you have seen, as well as the limitations provided by different tools? I hope you have enjoyed my post and I look forward to hearing any comments.