When we travel back in time, millions of years ago, we might see a small, hand-sized creature poking its head out of the mud – a turtle.
Turtles got their shells through the process of evolution, they evolved over a very long period of time. The tortoise’s hard upper outer shell protects them against predation. The shell evolved to get bigger over time for better protection.
On the other side – humans evolved with their bigger and better brain; larger brains with a complex structure enabled humans to think, interact with each other and with their surroundings in new and different ways and find means of protection and evolution. This made a huge difference.
Similarly, Software Testing has evolved over the years and Software Testing, has now become an integral part of software development.
Testing has also gone through changes and evolved over time.
So how has software testing evolved over time?
- Testing first ensured that the software works as per the specified end-user requirements (Business Requirement or Functional Requirement).
- Then Testing was used to find the issues/bugs and also ensuring the proper functioning of the software.
- Software Testing then became a measurement of quality of Software and also got included in the software development life cycle.
- The testing process then had its own Software Testing life cycle.
- Various Software Testing Models emerged in-line
- Waterfall Model.
- V Model.
- Agile Model.
- Spiral Model.
- Iterative Model
These different models or approaches can be used in the process where each model has its own advantages and disadvantages. So, you must choose a particular model depending on the project deliverables and complexity of the project.
- Agile – Growth of the software development process needed more comprehensive ways of testing. The incremental and iterative approach employed by agile testing helped in achieving this goal.
- Automation – Testing was taken to entirely different level by Automation Testing. Automated testing is a method in software testing that uses various automation tools to control the execution of tests, so more time can be saved on repetition tasks and this time can be spent on higher value tasks, such as exploratory tests. Mainly Automating time-consuming tests, such as regression tests. While you do need spend time maintaining test scripts overall, you will increase your test coverage and scalability.
- Continuous Testing- Continuous Testing is in the trend now and has become important with the concepts like Continuous Integrationand Continuous Deployment becoming popular. To meet the continuous integration and delivery needs, we have turned to continuous testing backed by automation. As this is the time of digital transformation, we need Digital Testing to meet the quality needs of future driven by AI.
- Artificial Intelligence (AI): This is the future – collaborative and smart testing. Artificial Intelligence is the machine’s capability of imitating human behaviour by perceiving, understanding and learning. AI can be used to help automate and reduce the amount of tedious tasks in development and testing. AI also uses image recognition techniques to navigate through the application and verify UI objects and elements visually. AI can also be used to sell more and spend less time on Admin tasks.
Jeffrey AI was born in early 2019 in order to fulfil a need for automating and managing tasks for the sales team with minimal time required from the manager.
JeffreyAI’s parent is Carbon and Finch which provides software development for Microsoft Dynamics, C# and .Net. The company’s founder, Jimmi Jakobsen, needed to improve the quality and quantity of sales leads in order to increase revenues but also to reduce the team’s time on repetitive and often unproductive tasks.
So the team built JeffreyAI, named after one of the team. JeffreyAI focuses on capturing, understanding and responding to email enquiries, freeing up the team to build better relationships and close more deals.
JeffreyAI is still young, but every day gets stronger and smarter.