Select Page

Category Selected: Fixed

275 results Found


People also read

Accessibility Testing

European Accessibility Act : What You Need to Know

Automation Testing

Docker with Selenium: Boost Your Automation

Mobile App Testing

Appium Debugging: Common Techniques for Failed Tests

Talk to our Experts

Amazing clients who
trust us


poloatto
ABB
polaris
ooredo
stryker
mobility
Desktop App Automation Testing using Python

Desktop App Automation Testing using Python

In this blog article, you will learn Desktop app automation testing using Python. Automating a desktop app is not an easy task using open-source tools. In the past, we wrote many blog articles on how to automate desktop applications test cases using White Framework.

However, today we would like to show you how to automate a desktop app using Python.

Required Packages

To automate desktop app, we need the following packages (pyWin32, comtypes, & six). Use the below Pip command to install all the three packages.

pip install pywinauto  

Launching An Application

from pywinauto.application import Application
app = Application().start("notepad.exe")
  

Inspecting Elements

You can use anyone of the below listed inspecting tools to write locators.

  • AccEvent.exe
  • AccExplorer32.exe
  • Inspect.exe
  • SPYXX.EXE
  • swapy-ob-0.4.3.exe
  • UISpy.exe
  • ViewWizard.exe
  • WSEdit.EXE

Locating windows by title

app.window(title="Untitled - Notepad").menu_select("Help->About Notepad")
  

Locating with regular expression

app.window(title_re='.* - Notepad$')
  

Finding a window with multiple properties

window = findwindow(title = "Untitled - Notepad", class = "Notepad")

Print Identifiers

Use the below command to print all the identifiers on a window.

app.window(title="Untitled - Notepad").print_control_identifiers()  

Other Actions

app.UntitledNotepad.menu_select("File->SaveAs")
app.SaveAs.ComboBox5.select("UTF-8")
app.SaveAs.edit1.set_text("Example-utf8.txt")
app.SaveAs.Save.click()
  

We explored this library with excitement. Desktop app automation testing using Python library is more user-friendly and the execution is also much faster than other implementations.

Assertion in Python using Assertpy

Assertion in Python using Assertpy

Assertpy is a simple assertion library in python with a nice fluent API. All automation testing validations should be asserted. In Java, we use AssertJ to compare actual and expected result. However, Assertpy is a suitable package to write readable assertions with method chaining concept. Implementing BDD step definitions using Assertpy enables effective collaboration between testers and other stakeholders. Writing chaining method calls for assertion helps automation testers to understand the existing test scripts during maintenance.

Assertion in Python using Assertpy

Installation

pip install assertpy 

Matching strings

assert_that('').is_not_none()
assert_that('').is_empty()
assert_that('').is_false()
assert_that('').is_type_of(str)
assert_that('').is_instance_of(str)

assert_that('foo').is_length(3)
assert_that('foo').is_not_empty()
assert_that('foo').is_true()
assert_that('foo').is_alpha()
assert_that('123').is_digit()
assert_that('foo').is_lower()
assert_that('FOO').is_upper()
assert_that('foo').is_iterable()
assert_that('foo').is_equal_to('foo')
assert_that('foo').is_not_equal_to('bar')
assert_that('foo').is_equal_to_ignoring_case('FOO')

assert_that(u'foo').is_unicode() # on python 2
assert_that('foo').is_unicode()  # on python 3

assert_that('foo').contains('f')
assert_that('foo').contains('f','oo')
assert_that('foo').contains_ignoring_case('F','oO')
assert_that('foo').does_not_contain('x')
assert_that('foo').contains_only('f','o')
assert_that('foo').contains_sequence('o','o')

assert_that('foo').contains_duplicates()
assert_that('fox').does_not_contain_duplicates()

assert_that('foo').is_in('foo','bar','baz')
assert_that('foo').is_not_in('boo','bar','baz')
assert_that('foo').is_subset_of('abcdefghijklmnopqrstuvwxyz')

assert_that('foo').starts_with('f')
assert_that('foo').ends_with('oo')

assert_that('foo').matches(r'w')
assert_that('123-456-7890').matches(r'd{3}-d{3}-d{4}')
assert_that('foo').does_not_match(r'd+')

Matching Integers

assert_that(0).is_not_none()
assert_that(0).is_false()
assert_that(0).is_type_of(int)
assert_that(0).is_instance_of(int)

assert_that(0).is_zero()
assert_that(1).is_not_zero()
assert_that(1).is_positive()
assert_that(-1).is_negative()

assert_that(123).is_equal_to(123)
assert_that(123).is_not_equal_to(456)

assert_that(123).is_greater_than(100)
assert_that(123).is_greater_than_or_equal_to(123)
assert_that(123).is_less_than(200)
assert_that(123).is_less_than_or_equal_to(200)
assert_that(123).is_between(100, 200)
assert_that(123).is_close_to(100, 25)

assert_that(1).is_in(0,1,2,3)
assert_that(1).is_not_in(-1,-2,-3)

In Conclusion:

Assertpy development is still active. There are more assertions packages available in Python, we will review in the subsequent blog articles.

3 Critical Skills for Every Software Tester

3 Critical Skills for Every Software Tester

Software testing or QA Testing acts as the ‘gatekeeper’, ensuring the delivery of quality software applications and packages to clients and customers. The very act of Software Testing implies the introduction of ‘hygiene’ in the development of computer code that drives a variety of modern software systems. As a corollary, the absence of such testing (or sub-par testing practices) defeats the purpose of digitization and can extract a heavy toll in terms of manifest malfunctions in the operation of mission critical applications and systems. Therefore, Software Testers must equip themselves with all manner of skills that enable them to perform their duties. These skills may variously relate to technical qualifications, technical knowledge, a holistic approach to QA Testing, and developing a habit to understand the core requirements of a testing project.

Basic Programming Knowledge

Modern computer code represents an enormous undertaking that can be navigated through the use of coding languages. Software Testers must realize the importance of pure knowledge and the technical skills that emanate from fluency in such languages. In line with this, Software Testers must constantly add to their body of knowledge as a means to amplifying their technical skillsets, which would offer them an advantage in terms of identifying and remediating coding errors in different QA Testing projects.

3 Critical Skills for Every Software Tester

Thorough Understanding of Business Situations

Software Testers, as a matter of principle, must develop a clear understanding of the project at hand. They should be able to appreciate the fact QA Testing is undertaken as part of creating quality assurances that guarantee the performance of a larger business model. This is achieved when Software Testers map various business scenarios in their minds and attempt visualization of complex business problems. Such actions would empower Software Testers to envision solutions to such problems and apply their testing skills to that effect. In addition, the modern QA Company should encourage the inculcation of such a mindset in every tester, which would yield rich dividends in the form of heightened awareness in the minds of each tester. The outcomes may include streamlined testing efforts that bear zero scope for confusion or complications in devising testing processes.

Automated Testing Processes

The current breed of Software Testers must train to use automated testing frameworks and processes. However, this does not negate skills that focus on manual testing. Automation in QA Testing assumes importance since these test processes offer significant time savings to the testing community, thereby allowing Software Testers to focus their energies on devising complex testing scenarios. Automation in Software Testing also implies the use of technology to validate computer code in short order, thereby enabling a software testing company to take on large testing projects. In addition, test automation generates huge volumes of data that remain open to review by QA Testing engineers, leading the way to code refinement and the creation of grounds for further testing.

3 Critical Skills for Every Software Tester

Knowledge of Web and Mobile Technologies

Awareness of such technologies is key when Software Testers commit their efforts and careers to the domain of QA Testing. Such awareness must remain in an ongoing project, clearly exhibiting the working life of QA Testing engineers and professionals. These personnel can improve by consulting online tech news websites, apps, technical journals, and other forms of knowledge publications to keep themselves abreast with emerging web and mobile technologies. In addition, they can apply the knowledge to their work areas and thus gain a competitive edge over their peers and colleagues. Further, such knowledge can elevate their performance in QA Testing exercises when such personnel participate in live testing projects.

DevOps and Agile

Software Testers must gain fluency in the various dictates of modern methodologies such as DevOps and Agile, since these promote a collaborative work environment in which Software Testers must fully participate to generate the best outcomes. These methodologies also remain significant to the evolution of modern testing frameworks hence the participation of a tester does not remain an option. Specifically, veteran Software Testers note that the testing community must ensure all test cases are automated as part of efforts to achieve 100% code coverage. In addition, Software Testers must work to attain standardized test environments wherein the deployment of QA boxes is automated. Further, pre-testing tasks, post-testing tasks, and code clean-up operations must be automated and aligned with continuous integration cycles.

In Conclusion

The skills outlined can serve to empower the modern software testing professional to excel in the workplace. The managers of a QA Company must encourage their testing staff to inculcate the correct mindset in such matters. In time, the application of such skills may encourage the QA Testing community to elevate industry standards and create new benchmarks to gauge professional performance. Our team consists of experts with these and more requisite skills. Connect with us so we can help you to leverage these skills to outsmart your competitors.

Splinter – A Wrapper Library for Selenium with Python

Splinter – A Wrapper Library for Selenium with Python

Splinter is a python library and it has common readable wrapper methods for Selenium and zope.testbrowser frameworks. If you would like to write readable automated tests using Python, then Splinter is a good choice. As an automation testing company, exploring new tools/libraries is one of the important R&D activities. Please subscribe our blog to get the updates. Now, let’s see how to use Splinter.

How to install Splinter?

pip install splinter

Browser Launch What we have noticed with Splinter during Browser launch is the browser is launched very quickly. If you are also noticing the same, please feel free to comment over here.

from splinter import Browser
browser = Browser('chrome')

URL Navigation

browser.visit('https://codoid.com')

Find Element You can use the following methods find_by_css, find_by_xpath, find_by_name, find_by_tag, find_by_value, find_by_text, and find_by_id to locate an element.

browser.find_by_id('menu-item-54').click()

All together

from splinter import Browser

browser = Browser('chrome')

browser.visit('https://codoid.com')

browser.find_by_id('menu-item-54').click()

browser.quit()
Geographic Factors Affecting Mobile Testing

Geographic Factors Affecting Mobile Testing

The mobile paradigm has established a firm grip on various forms of consumer, industrial, commercial, and scientific technologies. Matching pace with this phenomenon, mobile device testing has gained criticality since such activities guarantee the performance of various mobile-native applications. Geography features among the various parameters that could spell success for mobile app testing services. This factor is important given the fact that various segments of the target user base of an app remain dispersed across regions, nations, and continents.

Mobile Operating Systems

Consumers in different nations favor varying brands of mobile devices. An overwhelming number of mobile users in the United States use devices powered by the iOS operating system, while Google’s Android finds millions of users across Asian nations. These facts are amongst the drives of the requirement for expansive strategies in mobile app testing initiatives. This would require testing professionals to forge different test strategies for mobile apps, keeping the requirements of a wider consumer base at the fore. Therefore, mobile app testing strategies must focus on these geographic factors, since they underlie the key aspects of the operational focus of a mobile app testing company.

Geographic Factors Affecting Mobile Testing

 

Settings within a device are typically aligned with consumer preferences in target geographies. This implies that mobile testing strategies should focus on region-specific settings designed into the operating system of mobile devices and hence mobile app testing professionals must design test strategies focused on region-specific usage. For instance, devices and apps meant for use in the Americas must be tested to display financial information in their currency – US Dollars. Similarly, testing must validate the month, date, and year format since certain apps find heavier usage in particular geographies. Apps originating in European nations and with a maximum consumer base in that continent must conform to patterns of usage as per the consumers. The setup and application of mobile app testing services must remain mindful of these factors.

Bandwidth

Internet bandwidth fluctuates in different parts of the world. 4G bandwidth, widely available in certain geographies, tends to perform differently in across nations. Therefore, the providers of mobile app testing services must consider connectivity speeds when testing an app for a particular location. A uniform testing strategy may appear in the list of best practices, but it is important to customize strategies to match connectivity and local usage. This approach would enable testing professionals to monitor the performance of a mobile device in real-world conditions.

In Conclusion

It is necessary to remain cognizant of the centrality of geography to put in place the best mobile device testing strategies. Individual testers may use their experience and knowledge to fine-tune the strategies, thus expanding the scope of intelligent mobile app testing services. We work across the globe, which enhances our knowledge and expertise of the various geographical considerations. Connect with us to gain all these advantages and more.

Continuous Performance Validation of Server Response Important during Load Testing

Continuous Performance Validation of Server Response Important during Load Testing

Load testing checks the ability of a software application to perform under anticipated user loads. The objective of load testing is to identify potential bottlenecks in an application before sending it ‘to market’. Further, load testing aims to check the availability of a system, its performance, capacity, and to validate its ability to deliver the service or functionality requested by the user/as intended. Any top performance testing company would ensure that testers also validate server response. This is performed by checking database execution time and verifying the response time of the application under low, normal, moderate, and heavy load conditions. The fact is experts know that load and functionality related problems usually happen, and hence every single step of performance validation is critical to success. Companies specializing in load and performance testing will validate server responses each time. This validation covers a vast gamut of activities, and some of these include validating – response code, basic structure of a page, main components, page completeness, important points of the activity currently being conducted, and a lot more.

Deliver Top Quality Products

A top performance testing company would ensure that accuracy of the server response each time. To achieve this, test engineers would ensure that load testing products provide efficient validation functionality. By devising test scenarios and validation parameters that guarantee the successful execution of services being tested, testers can ensure validation of the server response to some extent. Some test engineers may view this from a load testing perspective – for instance, identifying pages with responses that exceed certain specified duration. Engineers undertaking load testing services would need to investigate such discrepancies and provide immediate remediation.

Validation of Server Response

Checking the Response Codes

Load testing service engineers could discover that unexpected data is going out as a user request-response. Response codes are essential to detect such anomalies in the server response. For instance, a properly functioning web server is expected to generate a response code of 200. However, testers of a performance testing company may detect responses such as 401, 404, and 503. These responses indicate a clear problem while validating the server response during load testing exercises. Further, the total time required to load an entire webpage is indicative of server response performance in certain testing scenarios.

Hardware Problems

Computer hardware performance is critical to load testing exercises. An engineer providing performance testing services must assess the performance of testing hardware before evaluating test results. The hardware (such as a web server or a server farm) hosting an application must perform optimally at all times. An intelligent approach to this would be to perform distributed load testing from multiple geographical locations. Additionally, modern testing tools and frameworks can help detect hardware problems that could distort the server response in test environments.

Validation Rules

Test engineers performing load testing services can deploy validation rules to assess the accuracy of server responses. Validation rules represent comparison criteria that testers can add to scenarios and these rules work by comparing server response data against expected values. A tester can create a specific validation rule if a server ‘responds’ with incorrect data. Typically, validation rules can be built around simple data types such as strings, long strings, numbers, Boolean values, and complex data such as objects or arrays. Such techniques represent benchmarks in the realm of server response validation during load testing.

In Conclusion

Server response has a direct impact on the experience of a software application or product by the end user. Therefore, this parameter must be tested from multiple perspectives to guarantee client satisfaction and user delight. Functional problems usually emerge during load and performance testing – not typically during load execution but during dry-runs of low load. Additionally, inconsistent response times, spikes, and others are certain ‘typical flawed load behaviors’. The premise of validating server responses during load and performance testing is to find unusual and unexpected flaws. Experts testers would excel in such testing exercises – connecting with us puts you in the driver’s seat.