10
ICT 3003 – Software Quality Assurance Assignment I Open Source Software Quality Assurance Testing Tools University of Colombo School of Computing Prepared by Waruna Kodituwakku

Open Source Software Testing Tools

Embed Size (px)

DESCRIPTION

Software Test automation tools are available under several categories such as commercial, free software, open source software and etc. In this paper Open Source Software Testing Tools will be discussed. Open source software test automation tools may be practical alternatives to popular closed-source commercial applications and some open source tools offers features or performance benefits that exceed their commercial counterparts. The source code is openly published for use and/or modification from its original design, free of charge. And these are usually available under a license defined by the Open Source Initiative.

Citation preview

Page 1: Open Source Software Testing Tools

ICT 3003 – Software Quality Assurance

Assignment I

Open SourceSoftware Quality Assurance Testing Tools

University of Colombo School of Computing

Prepared by

Waruna Kodituwakku

Page 2: Open Source Software Testing Tools

Page | 1

Table of Contents

1. Introduction............................................................................................................................2

1.1 Open Source Software Testing Tools ..............................................................................2

1.2 Types of Software Testing Tools .....................................................................................2

2. Popular Open Source Software Testing Tools.......................................................................3

2.1 Selenium ......................................................................................................................3

2.2 FitNesse........................................................................................................................3

2.3 Watir ............................................................................................................................4

2.4 Apache JMeter .............................................................................................................4

2.5 Robotium......................................................................................................................4

2.6 Bugzilla ........................................................................................................................5

2. Comparison of Selenium, Bugzilla and JMeter .....................................................................5

2.1 Analysis of Strengths and Weaknesses of Selected Tools...............................................6

2.1.1 Selenium ...................................................................................................................6

2.1.2 Bugzilla .....................................................................................................................6

2.1.3 JMeter .......................................................................................................................7

3. Future of Software Testing Tools ..........................................................................................7

4. Conclusion .............................................................................................................................7

5. References..............................................................................................................................8

Page 3: Open Source Software Testing Tools

Page | 2

1. Introduction

Software Quality Assurance (SQA) involves monitoring and improving the software testingprocess, making sure that any agreed-upon standards and procedures are followed, andensuring that problems are found and treated. In today’s context SQA is essential to everysoftware development process. Software Testing is a costly and time consuming process insoftware development. Therefore, software testing tools are often deployed to automate theprocess in order to reduce cost and improve efficiency.

SQA now incorporates more sophisticated tools that enhance software testing capabilities.Testing automation tools enable and help developers and testers to automate the entireprocess of testing in software development which include; find and report defects and issuesfaster; confirm tests meet customer specifications and requirement-traceability; have a fineway for communication; archive the test plan and execute it manually or automatically;maintain reusable tests; and document, verify and audit which tests were run for each project.

1.1 Open Source Software Testing Tools

Software Test automation tools are available under several categories such as commercial,free software, open source software and etc. In this paper Open Source Software TestingTools will be discussed.

Open source software test automation tools may be practical alternatives to popular closed-source commercial applications and some open source tools offers features or performancebenefits that exceed their commercial counterparts. The source code is openly published foruse and/or modification from its original design, free of charge. And these are usuallyavailable under a license defined by the Open Source Initiative.

1.2 Types of Software Testing Tools

Software testing tools can be categorized under several bases. Following table is showssoftware testing tools categorized under the testing activity or the process in which they areused.

Type Description Open SourceExamples

FunctionalTesting

Functional testing is the process of confirming thefunctionality of the application. This type of testingignores the internal parts and focuses on the output anddetermines that it is as per requirement or not.

Selenium, Watir,WatiN, CanooWebTest, Cucumber

Source CodeTesting

Source Code Testing tools are designed to analyze sourcecode and/or compiled version to verify the source codeand help identify the security flaws.

SWAAT, Flawfinder,PMD, Brakeman,RIPS, RATS

PerformanceTesting

To check whether system meets performancerequirements

Apache JMeter,FunkLoad, OpenSTA

DatabaseTesting

Database testing is about checking exact values whichhave been retrieved from the database by the web ordesktop application. Data should exactly match withthose in the records that are stored in the Database

Database OpensourceTest Suite,DBMonster, DBSanity, DBFeeder

Bug TrackingTools

These software applications are designed to help keeptrack of reported software bugs in software developmentefforts.

Bugzilla, Mantis,Trac, Redmine,Request Tracker,

Page 4: Open Source Software Testing Tools

Page | 3

TestManagementTools

Test management tools are used to structure automatedtests and manual test processes, and to manage multipleenvironments easily. Quality assurance teams use thesetypes of tools as a single application for managing testcases, environments, automated tests, defects and projecttasks.

Test Manager,TETware,Requirements andTesting Hub (RTH)

2. Popular Open Source Software Testing Tools

2.1 Selenium

Category : Functional Test Tool, Web Application Testing License: Apache License 2.0

Selenium is composed of multiple software tools. Those are Selenium IDE, SeleniumWebDirver and Selenium Remote Control. Selenium is a portable software testing frameworkfor web applications.. It supports a number of accepted programming languages, includingC#, Java, Groovy, Perl, PHP, Python and Ruby for writing test cases. The tests can then berun against many modern web browsers. Selenium is deployed on Windows, Linux, andMacintosh platforms.

Features

Record and playback Intelligent field selection Auto complete for all common Selenium commands Walk through tests, debug and set breakpoints Save tests as Selenese, Ruby scripts, or other formats Option to automatically assert the title of every page Easy customization through plug-ins

2.2 FitNesse

Category : Test Management Tools License : Common Public License (CPL)

This tool allows users to specify and run acceptance tests for software systems (an agile styleof black-box testing acceptance and regression testing). FitNesse facilitates detailed readabledescription of system function and it supports programming languages such as Java, C++,Python, Ruby, Delphi, C#, etc.

Features

Wiki engine Embedded web server Test engines (FIT, SLIM) Automated input generation and test case creation Additional libraries

Page 5: Open Source Software Testing Tools

Page | 4

2.3 Watir

Category: Functional Test Tool, Web Application Testing License: BSD License

Watir is a free, open-source functional testing tool for automating browser-based tests of webapplications. It works with applications written in any language. Watir project consists ofseveral smaller projects. Some of them are Watir-classic, Watir-webdriver and Watirspec.

Features

Handles multiple browser windows with attach method. Supports JavaScript events Supports frames and nested frames Supports visible and invisible running of test cases Automatic page loading waiting Supports hidden fields and saving images in a page and Screen capturing

2.4 Apache JMeter

Categories: Performance Testing, Load Testing License: Apache License 2.0

Apache JMeter is a 100% pure Java desktop application designed to load test functionalbehavior and measure performance. It was originally designed for testing Web Applicationsbut has since expanded to other test functions. JMeter architecture is based on plugins. Mostof its features are implemented with plugins. Off-site developers can easily extend JMeterwith custom plugins.

Features

Can load and performance test many different server types (Web - HTTP, HTTPS,SOAP, Database via JDBC, LDAP, JMS, Mail - SMTP(S), POP3(S) and IMAP(S),Native commands or shell scripts)

Complete portability and 100% Java purity. Full multithreading framework allows concurrent sampling by many threads and

simultaneous sampling of different functions by separate thread groups. Careful GUIdesign allows faster operation and more precise timings.

Caching and offline analysis/replaying of test results. Highly Extensible

2.5 Robotium

Categories : Mobile Testing tool, Android Application Test Tool License: Apache License 2.0

Robotium is a test framework created to make it easy to write powerful and robust automaticblack-box test cases for Android applications. With the support of Robotium, test casedevelopers can write function, system and acceptance test scenarios, spanning multipleAndroid activities.

Page 6: Open Source Software Testing Tools

Page | 5

Features

Fast test case execution. The framework handles multiple Android activities automatically. Minimal time needed to write solid test cases. Readability of test cases is greatly improved, compared to standard instrumentation

tests. Test cases are more robust due to the run-time binding to GUI components. Integrates smoothly with Maven or Ant to run tests as part of continuous integration

2.6 Bugzilla

Category: Bug Tracking Tool License: Mozilla Public License

Bugzilla is a web-based bug tracker and testing tool. This allows individuals or groups ofdevelopers to keep track of outstanding bugs in their product effectively. Generally Bugzillatracks bugs and code changes, communicates with teammates, submits and reviews patchesand manages quality assurance. Bugzilla is written in Perl, and works on various databasesincluding MySQL and Oracle.

Features

Advanced search capabilities Email notifications controlled by user preferences and integrated email capabilities Bug lists in multiple formats (Atom, iCal, etc.) and reports and charts Automatic Duplicate Bug Detection Time Tracking, Request System, Private Attachments and Comments Automatic Username Completion or Drop-Down User Lists and Patch Viewer Multiple Authentication Methods and Support for Multiple Database Engines

2. Comparison of Selenium, Bugzilla and JMeterSelenium (IDE,

WebDriver and RemoteControl)

BugZilla Apache JMeter

Testing Type Functional Testing,Regression Testing

Bug Tracking Performance Testing,Load Testing

Developed by ThoughtWorks Inc. Mozilla Foundation Apache SoftwareFoundation

Written in Java (ProgrammingLanguage)

Perl (ProgrammingLanguage)

Java (ProgrammingLanguage)

Operating System Cross-platform (Windows,Linux, OS X, Solaris)

Cross-platform Cross-platform

User InterfaceAvailable

Integrated into ALM & IDE,Standalone application,Webbased interface

Web based Interface Batch Mode, StandAlone application

Record andPlayback Option

Available No Available

Page 7: Open Source Software Testing Tools

Page | 6

Application Type It can be used to test onlyweb based applications.

It can be used to testonly web basedapplications

It can test web-basedas well as desktopapplications.

Integration withother tools

Allowed Allowed Allowed

Report GenerationFacility

Available Available Available

Multilingual(Localization)

No Yes No

Plugins, Add-ons,Customizations

Available Available Available

Installation Required Installation Required Installation Required Installation Required

Documentation andCommunity Support

Available Available Available

2.1 Analysis of Strengths and Weaknesses of Selected Tools

2.1.1 Selenium

Strengths

Selenium is one of the most popular open-source automation tools. Selenium provides ahandy unified interface that works with a large number of browsers, and allows writing testsin almost all the languages (E.g. Java, C#, Python, JavaScript, PHP, Erlang and etc).

Weaknesses

Selenium is written in JavaScript which causes a significant weakness: browsers impose apretty strict security model on any JavaScript that they execute in order to protect a user frommalicious scripts. And also it doesn't work directly with Flash.

2.1.2 Bugzilla

Strengths

Main strength of Bugzilla is that it is one of the well established and widely used software inthe industry. Other key strengths of BugZilla can be identified as; easily understood, easilyintegrates with several test management tools (e.g. Test Link, Test Runner, Testopia), verytest friendly and contains almost all the features found in commercial products.

Weaknesses

Main weakness of Bugzilla is its complex installation. And even with improvements;Bugzilla user interface hasn't changed much over the years – a fact that is not attractive forend-users.

Page 8: Open Source Software Testing Tools

Page | 7

2.1.3 JMeter

Strengths

JMeter is an Open Source Tool and it also a Freeware. It supports the distributed testing andhas various target systems and further it is Cross-platform. It has very high extensibility too,because pluggable samplers allow unlimited testing capabilities. Overall JMeter is a stable,easy to comprehend and long standing desktop Java application.

Weaknesses

It’s always advisable not to run JMeter on the same machine running the application to betested. JMeter may use extensive resources that might affect the other application'sperformance. JMeter chart representation looks a bit confusing to some users andterminology appears to be not very clear. Getting "correct" response times from JMeterprocess is very complex. Also remote machines must be declared in a property file beforestarting application.

3. Future of Software Testing Tools

Today, software has changed from a standard, single, windows-based platform to multipleplatforms. When considering about growth of software test automation tools we can see thatthere will be new areas which will enhance user friendliness, integration between tools,combining different tools to fit user needs.

With script-less automation, new tools will be shaped so that users could setup automationtesting in a simple and logical way. It means that technical skills and programmingknowledge will not be required any more. Another aspect is that Visual Test Automation isthe future for test object recognition in the modern software application development andtesting world. It contains algorithms built on OCR (object character recognition), ICR (imagecharacter recognition) and gesture recognition technology (interpreting human gestures).Technology based on visual based object recognition will allow testers to execute scriptscross-client and cross-platform. Automated testing tools will become less complex, easy touse and adaptive. Users will not need weeks to learn how to use testing tools. This kind ofsoftware testing will be even faster and will give exact results.

4. Conclusion

To be successful in the challenging business of software development, it is essential toprovide a quality product to the customers. Such process is known as ‘Software QualityAssurance’ (SQA). Software Testing Tools play a vital role in SQA. Testing is more than justdebugging. Testing is used to locate defects and correct them and also in validation,verification process, and reliability measurement. There are commercial and free testing toolsas well as open source testing tools. Among them, Open Source Testing Tools seems to themost popular. Comparatively it provides more flexibility, more eases of usage and allows toolcustomization also. In this paper several popular and notable open source software testingtools have been categorized, analyzed, compared and their respective strengths andweaknesses discussed. The future of the testing tools is indicative that they will become lesscomplex, more easy to use more adaptive and faster too.

Page 9: Open Source Software Testing Tools

Page | 8

5. References

1. Open Source Testing. 2013. Open source functional testing tools. [ONLINE]Available at: http://www.opensourcetesting.org/functional.php. [Accessed 15 March2013].

2. VTB. 2013. Article - Test Automation Tools. [ONLINE] Available at:http://www.vietnamesetestingboard.org/zbxe/?document_srl=555503. [Accessed 25March 2013].

3. Wikipedia, the free encyclopedia. 2013. Test automation - Wikipedia, the freeencyclopedia. [ONLINE] Available at: http://en.wikipedia.org/wiki/Test_automation.[Accessed 25 March 2013].

4. SparkWiz. 2013. The Types and Benefits of Software Testing Tools - SparkWiz |Spark Wiz. [ONLINE] Available at: http://sparkwiz.com/tips-n-tricks/the-types-and-benefits-of-software-testing-tools/. [Accessed 25 March 2013].

5. OWASP. 2013. Source Code Analysis Tools - OWASP. [ONLINE] Available at:https://www.owasp.org/index.php/Source_Code_Analysis_Tools. [Accessed 25 March2013].

6. Google Project Hosting. 2013. robotium - The world's leading Android™ testautomation framework - Google Project Hosting . [ONLINE] Available at:http://code.google.com/p/robotium/. [Accessed 25 March 2013].

7. Wikipedia, the free encyclopedia. 2013. Bugzilla - Wikipedia, the free encyclopedia.[ONLINE] Available at: http://en.wikipedia.org/wiki/Bugzilla. [Accessed 25 March2013].

8. TheServerSide.com. 2013. Open source software testing tools news, help andresearch - TheServerSide.com. [ONLINE] Available at:http://www.theserverside.com/resources/Open-source-software-testing-tools. [Accessed25 March 2013].

9. IndianGNU. 2013. IndianGNU.org » Blog Archive » Top 5 Open Source SoftwareTesting QA tools. [ONLINE] Available at: http://www.indiangnu.org/2011/top-5-open-source-software-testing-qa-tools/. [Accessed 25 March 2013].

10. Xoriant Software Product Engineering. 2013. Selenium Open Source Test AutomationTool: An Overview | Xoriant Software Product Engineering . [ONLINE] Availableat: http://www.xoriant.com/blog/software-testing-and-qa/selenium-open-source-test-automation-tool-an-overview.html. [Accessed 25 March 2013].

11. Apache JMeter™. 2013. Apache JMeter - Apache JMeter™. [ONLINE] Available at:http://jmeter.apache.org/index.html. [Accessed 25 March 2013].

Page 10: Open Source Software Testing Tools

Page | 9

12. CSS Corp Labs. 2013. CSS Corp Labs: Testing Tools Comparison . [ONLINE]Available at: http://cssinnovations.blogspot.com/2011/10/testing-tools-comparison_27.html. [Accessed 25 March 2013].

13. ProgrammingZ.com. 2013. Open-Source Quality Assurance And PerformanceAnalysis Tools . [ONLINE] Available at:http://www.programmingz.com/b/2435541/Open-Source-Quality-Assurance-And-Performance-Analysis-Tools/#.UU-rkaAtg3I. [Accessed 25 March 2013].

14. Open Source Testing. 2013. Open source test management tools. [ONLINE]Available at: http://www.opensourcetesting.org/testmgt.php. [Accessed 25 March 2013].

15. PHP Unit Manual. 2013. Chapter 8. Database Testing . [ONLINE] Available at:http://www.phpunit.de/manual/3.6/en/database.html. [Accessed 25 March 2013].

16. Mobile QA Zone. 2013. Visual Test Automation Leads the Future of the SoftwareTesting Industry - Mobile QA Zone. [ONLINE] Available at:http://www.mobileqazone.com/profiles/blogs/visual-test-automation-leads-the-future-of-the-software-testing. [Accessed 25 March 2013].

17. Software QA and Testing Resource Center. 2013. Database Testing Tools. [ONLINE]Available at: http://sqa.fyicenter.com/FAQ/Testing-Tools/Database_Testing_Tools.html.[Accessed 25 March 2013].

18. Ryan Schuetzler. 2013. QA Tool Review: JMeter. [ONLINE] Available at:http://www.schuetzler.net/2010/01/02/jmeter/. [Accessed 25 March 2013].

19. Wikipedia, the free encyclopedia. 2013. Comparison of issue-tracking systems -Wikipedia, the free encyclopedia. [ONLINE] Available at:http://en.wikipedia.org/wiki/Comparison_of_issue-tracking_systems. [Accessed 25March 2013].

20. Jon's Technical Notes. 2013. Jon's Technical Notes: Pros and Cons of Selenium .[ONLINE] Available at: http://jdrew33.blogspot.com/2012/02/pros-and-cons-of-selenium.html. [Accessed 25 March 2013].