quality-assurance Updates

Uncover our latest and greatest product updates
blogImage

How to develop a modular code base based on PyUnit

Quality assurance is more than just a process. It is a carefully executed study which eventually adds to and affects the credibility of your product or service. How can you go about taking the right steps for Quality Assurance in your company? We’d like to share a recent predicament one of our clients went through. Our client is a leading manufacturer of high performance computing systems. What was the problem? This client recently came up to us with a very specific requirement. They came up to us with a vision to be able to create an all-inclusive test framework.“Owing to our extensive systems, we wanted to develop a modular code base that could easily be extended by a broad team. We wanted a framework that acts like an improvement over the existing testing frameworks- and we wanted these based on technologies as PyUnit.” said the product manager. As we realized, PyUnit is not a mature enough tool to undertake end-to-end testing. And so, in order to achieve end-to-end testing, our customer would need to set up new hardware, virtual clusters, and databases, and file systems. This setup creation and configuration was not only a very painstaking option, but also a very costly enterprise. Our client also wanted to use Python or Bash as required as the test case automation language. In addition, they wanted to make the test cases data-driven rather than script-driven. For instance: creating a file system with 4, 8, or 16 NSD servers and do load testing on it. These test cases reports needed to be ported to Rally and Jenkins; so that charting and easy deep-diving would be possible for identifying issues and test failures. So how did we help? We designed a framework that looked something like this- To begin with, we recommended a YAML based test case definitions where the tester can provide test data, pre-setup modules to run, actual test modules and post-test modules. TC: TC1161 # Rally test case ID for reporting pre_module: autoconfigure tags: realhw,couplet test_modules: network_shutdown:node=oss0:NICS=ib0, sleep:TIME=10m,check_fs_mounted A test processing engine executed the test modules in Bash or Python scripts. As you may know, these are scripts that can use PyUnit or Selenium as required. The solution involved a meta-layer for managing test cases and encapsulate all test cases within a single framework. The test cases were tagged according to where they can be run. “realhw” as shown above means the test was run on real hardware. Test modules that were developed were data-driven; exactly as our desired by the client, so that the code duplication issue is minimized. The best part about this arrangement is that it helps QA professionals greatly as they only need to write new YAML data when needed. To successfully execute this project we used tools like- YAML, PyUnit, JUnit, Jenkins and Selenium. And we are all winners! Throughout this project our main aim was to reduce the additional infrastructure that the client may require; and to extend the capability of PyUnit and Selenium to use universal test case creation and execution. We were able to achieve all this, while our client also reaped benefits like- Quick execution and high cost-effectiveness A framework so that the QA engineers only need to provide new test case data in simple language. New test cases can be executed across any testing framework. A happy client always makes us happy!

Aziro Marketing

blogImage

8 Tips to Be More Effective in Agile Software Testing

Agile software development happens fast and code releases happen more frequently. Testing in such an environment is very important for coming up with accurate code that works. How does a programmer ensure quality of the code? In agile environment, there are three major challenges: Gathering the requirements and the number of hours committed Creating short-term releases Keeping scrum short for more time for code inspections As an agile software tester, you should be very proficient with the tools you use. Here are eight tips to be more effective in agile software testing. 1. Character Traits of an Agile Tester There are a few character traits and mindsets you should be in for being a successful agile tester. Being passionate, creative, and unafraid is important for an agile tester. The agile tester should have soft skills in management, communication, leadership, etc., as well. These skills will help you envision the client’s expectations before the delivery of the product. 2. Understanding the Data Flow When you know how the data travels inside your application, you are better able to analyze the impact of component failures and security issues. Hence, recognize how the data is used within the application early on in order to report bugs and defects faster. 3. Analyzing the Logs In agile development, understanding the defect that causes an issue in the application under test involves log analysis. Application logs contain a great deal of information about the system-level architecture of the application. Some of the errors that the tester needs to know about are called “silent errors,” which means the end user doesn’t perceive the effect of the error. Log analysis helps you better spot silent errors as well as work more efficiently with the development team. 4. Risk- and Change-Based Testing In agile development, development happens on the fly as does testing. The go-to-market time is all that matters, and the teams work together to achieve the best go-to-market time. When the application gets modified, you, the tester, need to understand which parts of the application are being changed. Also, you need to know the overall effect of the change to the final application. 5. Understand the Business Objectives Agile tester is essentially the end user of the product. Hence, you should know how end users use the product. In order to evaluate your testing strategies, focus on the key areas or parts of the application that an end user is more likely to use. Create separate strategies for product architecture and end users. Also, this end-user-specific categorization allows you to report bugs based on the application’s business objectives, i.e., prioritizing the defects. At the end of the day, meeting end-user requirements is what any business needs. Based on the user stories, QA teams prepare the acceptance criteria. 6. Browser Tools Browser plugins and tools may be highly effective for agile testers sometimes. For instance, Google Chrome and Firefox come with developer tools in-built to allow testers immediately spot errors. Also, there are third-party browser plugins such as FireBug that testers can use. 7. Requirement Repositories Understand what type of agile development strategy your organization uses—Adaptive Software Development (ADP), Agile Unified Process (AUP), Kanban, Scrum, etc. Documentation of test cases and scenarios that the development and testing team create together is very important. Over time, the requirements and test scenarios are gathered into a repository-style system, from which a tester can get a lot of information. 8. Test Early, Often, and Continuously Exploratory Testing (ET) is a practice in which testing is instantaneous. This is very important in agile development. Many testing professionals believe that the testing should be as early, often, and continuous as possible for proper application delivery. All types of testing—functional, load, etc.,—should be put within the project plan. Conclusion In agile software development, rather than the end-product, the development stages are important. Hence, testing is an integral part of the development process. In the early days of software testing, the quality assurance personnel did not have high level access to what is being tested or the results. With agile movement, the software companies and professionals have a more real-time view of the testing environment and scenarios. In agile development, there are shorter iterations leading to smaller test cases. Using a good test automation solution can be helpful in coming up with faster builds. In order to provide a quality product to customers in a short delivery time schedule, Aziro (formerly MSys Technologies) opted for agile testing approach from the conservative waterfall or V-Model, which paved way for us to address the continuously changing requirements and quality feedbacks of the customers.

Aziro Marketing

blogImage

The Business Level Importance of Software Testing

Today, software development is no longer what it used to be. In the past, you had only one or two platforms to consider while developing software applications. Also, code releases and new versions used to come out once in a year or so. Testing was a relatively relaxed process. Today, we have a plethora of operating systems in both mobile and desktop platforms. In the mobile world, you have Android, Apple iOS, Windows Phone, and BlackBerry. Although BlackBerry and Windows Phone occupy a diminutive slice of the market, you still can’t ignore them. Software testing assumes great importance in the case of agile development where coding is a continuous process.Quality Assurance of Your AppsImagine your bank provided an Android app for such activities as net banking and funds transfer. During development, the bank tested the app only on the Samsung Galaxy family of devices owing to the fact that it was highly popular. Hence, when you open up the app within your Nexus 5, it provides ineffably bad performance with such UI faux pas as invisible buttons, overlapping text boxes, and misaligned menus. You can imagine the poor user experience it would give you. The bank cannot expect all of its users to have Galaxy phones, can it? Android is a serious challenge for testers due to its many versions, and it is adopted by many OEMs in a multitude of hardware configurations. As Android is a free, no-strings-attached operating system, OEMs go out of their way to modify it, developing their own user interfaces. While this freedom proved to be one of the reasons behind the enormous success of Android, it also made the OS flavors incredibly diverse.This device diversity makes testing an Android app an intricate task. Had your bank done proper testing on your Android app with the help of an emulator and a test automation suite such as Mobitaz, the app would have been much better.Types of Software TestingThere are mainly two types of software testing: white-box and black-box testing. The difference between them is minor. In the black-box method, testing is based on the output generated across a range of inputs submitted; in essence, the internal code structure is not evaluated. In white-box testing, aka glass-box testing, the tester takes into account the internal mechanism of the software. Besides these, there are a number of areas a software tester needs to take care of: functionality, system, stress, performance, etc. All these different types of testing ensure that the application runs smoothly and provides all the functionalities expected.Testing in the Android WorldAndroid app testing may be a little more complex than testing desktop applications. As mentioned earlier in the case of the banking application, the tester needs to take care of a huge number of devices. Look at the diversity in the Android market as of February 18, 2014.Version        Codename            API    Distribution 2.2            Froyo               8      1.3% 2.3.3 – 2.3.7  Gingerbread         10     20.0% 3.2            Honeycomb           13     0.1% 4.0.3 – 4.0.4  Ice Cream Sandwich  15     16.1% 4.1.x          Jelly Bean          16     35.5%\ 4.2.x          Jelly Bean          17     16.3% 4.3            Jelly Bean          18     8.9% 4.4            KitKat              19     1.8% Android devices, although very sophisticated, do not provide the level of performance of a laptop or a desktop computer. Hence, performance testing of your app is very important. What if your app slows down the entire system thereby frustrating the users?Also, some additional testing methodologies, such as regression testing and unit testing, assume importance in the case of Android apps. Regression testing is a method in which a modified component is tested for its effect in the entire system. Unit testing is done on a single unit or a group of related units. A unit may be one or more software components grouped together.Businesses Depend on Software TestingIf you are into software development, your aim should be to bring your application to the market faster than your competition does. Also, you cannot afford to offer a half-baked product. Your agile development and testing teams have to work hand in hand in order for the app to be stellar in every aspect. A tool to automate the testing of your app may spell the difference between failure and success in such scenarios.Especially in mobile app development, where the competition is extremely hot, you really need to bring your app out fast. In such cases, an excellent test automation solution is a necessity.ConclusionAndroid is an operating system that enjoys continuous development. New features are added continually. Your app should be capable of taking advantage of this aspect of Android. Multi-touch gestures are one such feature that many test automation suites failed to incorporate for several years; however, Mobitaz supports it as well as other difficult-to-automate components as found in hybrid apps. Aziro (formerly MSys Technologies)’s Mobitaz has been quick to catch up to the market with all the necessary features of a robust test automation solution.

Aziro Marketing

blogImage

How to do Test Automation of Flex Applications With Custom Components?

Test automation tools have made their presence felt in the field of software development in facilitating the execution of several testing processes that would otherwise call for a considerable amount of manual effort and resources. Ranging from rudimentary data driven testing to the complex end to end testing process these products have come to make the lives of both the developers and testers easier by a great deal. Despite such developments, with increasing competition and the advent of several establishments offering such automated testing products, clients face difficulties in choosing the optimal product and in using all its features to its fullest. Moreover, such developments have given rise to multitudes of features and plugins being added to these tools.Many such features have proven to be infamous in their necessitating a technical prerequisite for the users in being able to execute them with ease. Of these, the flex components that have been around for quite a while in different automation tools still prove to be a bit problematic in a selected few and quite simple in some. However, the latter instance holds good only in cases where the personnel involved are those who possess a considerable amount of technical insight and the steps involved in the process.Testing Flash components using flex plugins has always proven to be a sticky wicket where technical assistance is required for clients to be able to get through the automation process. This is a result of the fact that the automated testing process of a flex application requires data about the flex application properties the likes of SWF URL and flash variables which most users tend to oversee.Manual execution of flex TestingIncluding the SWF URLs and the flex variables in the manual process is generally carried out by fetching them from the webpage that contains the Flex application. They are present in the object tag in the HTML page. The SWF URL is generally obtained from the Attribute present in Parameter subtag of the object tag. The flash variables are generally fetched from the “flashvars” attribute of parameter sub tag of the object tag. This however, applies only to instances where there are flash variables present in the web page being tested. It is this data that is most crucial in ensuring proper flex automation, immaterial of the tools used.Flex testing using test automation suitesThere are several suites like MTAS that are designed to automate the process obtaining the flash and SWF variables that are necessary for the flex testing process. In most tools, the input process of the SWF URL and the flash variables is carried out by means of a plugin. The recording features offered by the different tools designed to automate said process caters to fetching the SWF URL and the flash variables, thereby automating the process.The MTAS edge – Automation in its true senseReliability and robustness, apart from compatibility and usability, play a great role in establishing such automation tools amongst customers. In processes the likes of flex automation, compatibility takes a hit in several tools where the process requires clients to modify their flex components in a manner that suits the tools being used. This being a process that requires the inclusion of additional libraries and changes in configuration, steps that drag the definition of automation, has proven to be quite a considerable drawback for several tools in the market. However, features like the flex loader that has been incorporated into tools like MTAS renders moot any such concerns of altering the source code in order to enable the automation of the testing process.

Aziro Marketing

EXPLORE ALL TAGS
2019 dockercon
Advanced analytics
Agentic AI
agile
AI
AI ML
AIOps
Amazon Aws
Amazon EC2
Analytics
Analytics tools
AndroidThings
Anomaly Detection
Anomaly monitor
Ansible Test Automation
apache
apache8
Apache Spark RDD
app containerization
application containerization
applications
Application Security
application testing
artificial intelligence
asynchronous replication
automate
automation
automation testing
Autonomous Storage
AWS Lambda
Aziro
Aziro Technologies
big data
Big Data Analytics
big data pipeline
Big Data QA
Big Data Tester
Big Data Testing
bitcoin
blockchain
blog
bluetooth
buildroot
business intelligence
busybox
chef
ci/cd
CI/CD security
cloud
Cloud Analytics
cloud computing
Cloud Cost Optimization
cloud devops
Cloud Infrastructure
Cloud Interoperability
Cloud Native Solution
Cloud Security
cloudstack
cloud storage
Cloud Storage Data
Cloud Storage Security
Codeless Automation
Cognitive analytics
Configuration Management
connected homes
container
Containers
container world 2019
container world conference
continuous-delivery
continuous deployment
continuous integration
Coronavirus
Covid-19
cryptocurrency
cyber security
data-analytics
data backup and recovery
datacenter
data protection
data replication
data-security
data-storage
deep learning
demo
Descriptive analytics
Descriptive analytics tools
development
devops
devops agile
devops automation
DEVOPS CERTIFICATION
devops monitoring
DevOps QA
DevOps Security
DevOps testing
DevSecOps
Digital Transformation
disaster recovery
DMA
docker
dockercon
dockercon 2019
dockercon 2019 san francisco
dockercon usa 2019
docker swarm
DRaaS
edge computing
Embedded AI
embedded-systems
end-to-end-test-automation
FaaS
finance
fintech
FIrebase
flash memory
flash memory summit
FMS2017
GDPR faqs
Glass-Box AI
golang
GraphQL
graphql vs rest
gui testing
habitat
hadoop
hardware-providers
healthcare
Heartfullness
High Performance Computing
Holistic Life
HPC
Hybrid-Cloud
hyper-converged
hyper-v
IaaS
IaaS Security
icinga
icinga for monitoring
Image Recognition 2024
infographic
InSpec
internet-of-things
investing
iot
iot application
iot testing
java 8 streams
javascript
jenkins
KubeCon
kubernetes
kubernetesday
kubernetesday bangalore
libstorage
linux
litecoin
log analytics
Log mining
Low-Code
Low-Code No-Code Platforms
Loyalty
machine-learning
Meditation
Microservices
migration
Mindfulness
ML
mobile-application-testing
mobile-automation-testing
monitoring tools
Mutli-Cloud
network
network file storage
new features
NFS
NVMe
NVMEof
NVMes
Online Education
opensource
openstack
opscode-2
OSS
others
Paas
PDLC
Positivty
predictive analytics
Predictive analytics tools
prescriptive analysis
private-cloud
product sustenance
programming language
public cloud
qa
qa automation
quality-assurance
Rapid Application Development
raspberry pi
RDMA
real time analytics
realtime analytics platforms
Real-time data analytics
Recovery
Recovery as a service
recovery as service
Retail
rsa
rsa 2019
rsa 2019 san francisco
rsac 2018
rsa conference
rsa conference 2019
rsa usa 2019
SaaS Security
san francisco
SDC India 2019
SDDC
security
Security Monitoring
Selenium Test Automation
selenium testng
serverless
Serverless Computing
Site Reliability Engineering
smart homes
smart mirror
SNIA
snia india 2019
SNIA SDC 2019
SNIA SDC INDIA
SNIA SDC USA
software
software defined storage
software-testing
software testing trends
software testing trends 2019
SRE
STaaS
storage
storage events
storage replication
Storage Trends 2018
storage virtualization
support
Synchronous Replication
technology
tech support
test-automation
Testing
testing automation tools
thought leadership articles
trends
tutorials
ui automation testing
ui testing
ui testing automation
vCenter Operations Manager
vCOPS
virtualization
VMware
vmworld
VMworld 2019
vmworld 2019 san francisco
VMworld 2019 US
vROM
Web Automation Testing
web test automation
WFH

Real People, Real Replies.
No Bots, No Black Holes.

Big things at Aziro often start small - a message, an idea, a quick hello. A real human reads every enquiry, and a simple conversation can turn into a real opportunity.
私たちと一緒に始めましょう

Phone

Talk to us

+1 844 415 0777

Email

Drop us a line at

info@aziro.com

Got a Tech Challenge? Let’s Talk