Currently Browsing

Posts Tagged ‘ testing ’

Cucumber in Web testing (part 6 of 8)

6. Page flow

 

Page flow is a widely used pattern in web testing which describes how we should use our page objects to write more readable and well designed code. What page flow telling us, is that in our test code every Page Object method which navigates from one page to another should return a new Page Object. The following actions in the test code will be executed by calling methods from the newly returned Page Object. Here is an example:
 
Sample code - Password change
 

The benefits of this pattern are:

  1. Easier to write test code. The Page Object methods reveals which page will be the next the method execution.
  2. Improving test code readability
  3. We got additional verifications, because each page object extends the Selenium’s LoadableComponent class. When we are creating a new instance of a PageObject the isLoaded() method will be executed, which contains validations against must displayed elements on the page.

Cucumber in Web testing (part 5 of 8)

5. Web testing project structure

 

Structure without cucumber

The following picture represents our basic structure what we use for web testing:

 
TestBase contains the initialization and termination of a Selenium Webdriver. It usually contains a before() and after() method where we start and close web browser. In addition to this we setting up desired capabilities if needed.
 

Behavior-Driven Development (BDD)

BDD is a software development process evolved from TDD and we can say it is an extension of TDD. It uses domain-specific language (DSL) that we call natural or ubiquitous language to illustrate behaviors (how users will interact with the product or what are the expectations of business objectives with the product).

Jmeter – How to improve performance

Jmeter is a powerful load testing tool. If you are new to it you might run into some of the following problems: Out of memory error, it consumes a a lot of memory and CPU or even with a high end pc it can only work with 200 threads at the time.
Here are some tips and tricks about how can you improve the performance of Jmeter.
A simple and an important thing is to always you the latest version of Jmeter. Memory usage and performance is improved with every version so always be up to date.
The biggest error that the beginners do is the usage of listeners. Using a lot of listeners will result in out of memory since report generating takes a lot of resources. The best thing to do is to remove all the listeners. If you are asking how will you know the results then, you can use the “Simple Data Writer” to collect the results and you view the results later and generate the graphs.

If you decide to remove the listeners and go with the data writer, you need to add these lines into the user.properties file:

jmeter.save.saveservice.output_format=csv
jmeter.save.saveservice.data_type=false
jmeter.save.saveservice.label=true
jmeter.save.saveservice.response_code=true
jmeter.save.saveservice.response_data.on_error=false
jmeter.save.saveservice.response_message=false
jmeter.save.saveservice.successful=true
jmeter.save.saveservice.thread_name=true
jmeter.save.saveservice.time=true
jmeter.save.saveservice.subresults=false
jmeter.save.saveservice.assertions=false
jmeter.save.saveservice.latency=true
jmeter.save.saveservice.bytes=true
jmeter.save.saveservice.hostname=true
jmeter.save.saveservice.thread_counts=true
jmeter.save.saveservice.sample_count=true
jmeter.save.saveservice.response_message=false
jmeter.save.saveservice.assertion_results_failure_message=false
jmeter.save.saveservice.timestamp_format=HH:mm:ss
jmeter.save.saveservice.default_delimiter=;
jmeter.save.saveservice.print_field_names=true

Some useful information for Android and IOS testing

This basic information wrote down in this post is maybe unneeded and not necessary for most of users, but just remember, when you got the first Android/IOS device and need to setup something. So the information below is a basic testing startup guide.

First important thing is to check your Android or IOS device system version. The possibilities are different for Android or IOS systems and the application settings are depending of the OS versions. It is very important to the developers to have the information, which device was used for testing and which characteristics they have.

Graphwalker – how to start guide

Graphwalker (http://www.graphwalker.org/) is a state machine based tool, written in Java, generating sequences of tests both for online and offline testing. Diagrams are not UML models (which do not have any functionality) and as a result, much easier to get start with them.
The goal is to create long and unpredictable test sequences. The tool allows to create unique variation of paths across the edges and make these all randomly. The models do not contain any stop or exit points, however stop criteria make it possible to shut them down. In online test cases it makes possible to create the „walking path” during the actual execution. Graphwalker also supports switching between models.

Regression testing

Regression testing, sometimes referred to as verification testing, is a type of testing that is done after patching or modifying an implementation within a program. This is done by rerunning existing tests to check whether the bugs were fixed, and that previously working features weren’t broken.

Overview of automated testing

Software testing has become a more and more significant step in the process of developing. As requirements and expectations grow in IT organizations, the relevance of testing grows in the case of small and big companies as well. The process has two main parts: manual and automation testing and they have the same types, but the essential difference between them is the way of execution. Both types of testing have pros and cons, so testers have to choose the good one in the given situation. In this text the issue of automation testing will be discussed, more precisely the problem of how could a developer who has not done this kind of projects before start it and which is the best way to go.
Test automation offers a possibility to improve the efficiency of the testing. Once automated tests have been developed, they can be run quickly and repeatedly. It could be a cost-effective method for the testing of software products.

Importance of Quality Assurance Testing

What is QA and why it is important?

Definition of QA: Quality Assurance (QA) is a way of preventing mistakes or defects in manufactured products and avoiding problems when delivering solutions or services to customers.

More tips on finding bugs during testing

This time we continue the Q&A series of tips and tricks. If you are a software tester or a QA engineer then you must be thinking every minute about finding a bug in an application. And you should be. We will focus on trying to find out the hidden bugs in the system that might occur for special conditions and cause strong impact on the system. You can find such bugs with some tips and tricks.