Automation testing using Cucumber – Behavior driven development (BDD)
Application behavior is the main focus on BDD. The requirements are written in English which gives more readability and understandability of the requirement.
So any roles in the company like Tester, developer, end user, and techno functional person can read it and understand it. Also this will reduce the complication in terms of missing requirement or misrepresenting or misunderstanding requirements between different roles like Developer , tester , end user etc.
Gherkin is a business readable language, refer below for an example. Below feature file is integrated with Selenium and are having user stories as below.
Please refer below – “feature, Scenario, Given, When, And, Then “are the Keywords below to understand on how to write a feature file…
What is Feature file in Cucumber test and how to create a feature file.
Feature file is a part of Cucumber framework and it contains descriptions in English language.
Software testing trends. Importance of Python programming is increased specially on test automation steam. Also Open source tools like Selenium, JMeter demand is increased in IT companies.
Another importance area which testers can learn expertise for future opening is Mobile app testing as the popularity is tremendously increasing.
Agile testing and CI tools usage is increased already – most of the complex IT projects are handled using SCRUM methodologies. Script-less automation is another specialization already in place with automation. This uses customized keywords so that both functional and technical team could use and easily relate to functional requirements.
In conclusion – Open source tools and Mobile apps are showing good opportunities unless new technologies replace this.
Performance testing best practices and activities.
As first step, Performance Engineer needs to learn the requirements, performance expectations & system architecture.
Note: To learn the performance requirements & expectations, SME (Subject matter expert ) or production user can help. This information will help to define performance goals and SLAs
Then develop best matching performance test scenarios, approach, define goals (SLAs) & sign off test plan.
Note 1: To identify the right performance test scenarios, SME can give some feedback on about the current performance issues in production / live application that he/she is facing.
Now Performance Engineer can developer V– USER scripts and execute the scripts in Controller to generate performance analysis results
Note 1: Apart from delivering performance analysis results, Performance Engineer can coordinate with other team to monitor real time performance on Database server, Application server and also make sure load balancing is working fine while stress testing.
Some of the e.g. when performance testing is needed
for Database upgrade,
Application upgrade,
Or if user complains that application performance is bad – like page response is not meeting his/her expectations.
Jenkins allow continuous integration which helps developers or Automation testers to integrate code into a shared repository. It acts an open source automation server for test automation projects. Jenkins offers lots of plugins to integrate various tools.
GitHub is a web-based hosting service supporting distributed version control of codes. for e.g. if someone already registered a domain for a website in GoDaddy or similar domain services site but looking for a free hosting service, Github can be used to store code. Go daddy and Github should be linked to make this happen.
Performance testing vs Load testing vs Stress testing vs Endurance testing
1. Performance testing – The main purpose of Performance testing is to arrive the benchmark & baseline of the system behavior (e.g response time) under normal/moderate load. This test will help performance engineer to analyse how does the application behave under normal conditions.
2. Load testing – here load will be constantly and steadily increased over a given period of time. i.e the constant load applied for a constant period of time. For example a load of 100 users are applied for 15 min.
3. Stress test – it is meant to push the system beyond the normal load limits or extreme conditions. This test is to make sure the servers don’t crash or what point it crashes. Stress test will verify the breaking point of the system or how much load, system can withstand.
For example a load of 100 users are applied for 15 min and then 150 users load is applied for next 15 min. then 200 users load is applied for next 15 min. Verify at what point system stopped to respond.
4. Endurance testing – for easy understanding, I would say it is a “Load testing on extended period” to make sure web servers are performing longer period of time. For example a load of 100 users are applied for 48 hours
Note: Once the performance testing is completed successfully, tester can assume the performance requirements are met and he can start load testing. After that Stress testing if required.
Load testing tools in the market are
1) HPE LoadRunner is from Hewlett Packard Enterprise.
2) JMeter – Apache JMeter. It is a Java based performance testing tool works on web communication layer (HTTP)
What is Rendezvous point with reference to performance testing
Rendezvous point is Synchronization or Wait point. Rendezvous points makes Vusers to wait during test execution and multiple Vusers will simultaneously perform a task.
Why Rendezvous point is used ?
Rendezvous is mainly used to emulate heavy load on a particular scenario/ transaction to test the application behavior.
Jenkins is a continuous integration (CI) tool. It is the leading open source automation server. Jenkins provides hundreds of plugins to support building, deploying, and automating any project.