background preloader

Quality 1

Facebook Twitter

Junit

RegExr: Online Regular Expression Testing Tool. Examples of Exploratory Testing. See lecture notes on exploratory testing and paired exploratory testing. Copyright (c) Cem Kaner, 2004 The essence of exploratory testing is that you learn while you test, and you design your tests based on what you are learning. One definition (Bach's) is “Any testing to the extent that the tester actively controls the design of the tests as those tests are performed and uses information gained while testing to design new and better tests.” Another definition (Bach/Kaner) is any testing process that involves simulteous learning, test design, and test execution. The examples below only scratch the surface of the exploratory process, because they show an easily-understood sequence of test / result / follow-up test / result and so on.

We learn as we go, but we only learn from the results of the individual tests. Any type of test can be designed and/or used in an exploratory way. The following examples illustrate the application of the function testing style of analysis. Faster apps for a faster web: introducing Speed Tracer. Do you ever wonder what's going on inside the browser when a webpage doesn't load or respond as quickly as it should? Many developers do, especially when trying to build powerful web applications for their users. But up until now, it's been difficult for developers to identify problems in a slow-to-respond application. So, tonight at Google Campfire One, we're happy to announce that we're adding a new tool to Google Web Toolkit called Speed Tracer. Speed Tracer is a Google Chrome extension that enables developers to identify performance problems in their web apps using a "Sluggishness Graph," in combination with many other metrics.

If the y-axis is close to zero, then the app is fastIf the y-axis registers around 100%, then the app is, well, sluggishAnd in either case, Speed Tracer provides lots of additional data to help diagnose any particular performance issue. We think developers will find that Speed Tracer looks under the covers of web applications like never before. Test Driven .NET Development with FitNesse: Second Edition. A java client implementation for the TestLink API. » Gerência de Teste de Software. Checklist usabilidade. Autotest – Trac. Projects:TestGen4Web - Spike Developer Zone. Web Application Security. Testing Replication Over the Pond – Part 2 Secure - Everything MySQL.

Testing Secure Replication For the first test I used encrypted (SSL) replication and inserted 200,000 records using three 10 minute disconnection intervals per hour. After several hundred thousand of inserts, deletes and updates on the SOA and RR tables simultaneously over a normally connected SSL replication channel I have the following results: RR Update TestTest 1: RR Records Updated (Changes Set) = 129145 Elapsed Time = 14147.411601 RR Updates/Second = 9.13 RR Updates/Minute = 547.8 Europe MySQL Slave RR Update Counts (Changes Set) = 129145 Asia MySQL Slave RR Update Counts (Changes Set) = 129145Test 2: RR Records Updated (Changes Cleared) = 129145 Elapsed Time = 10168.638867 RR Updates/Second = 12.70 RR Updates/Minute = 762 Europe MySQL Slave RR Update Counts (Changes Cleared) = 129145 Asia MySQL Slave RR Update Counts (Changes Cleared) = 129145 Below is a snapshot of the transfer results after the Slaves are reconnected to the Master over the given SSL channels:

Testing Replication Over the Pond - Part 1 Non-Secure - Everything MySQL. Testing Non-Secure Replication A series of experiments were conducted to determine whether MySQL replication would prove to be reliable with SSL enabled. Please note that all tests were conducted using the MyDNS schema with includes the SOA and RR tables on MySQL 5.1. The first experiment sets focused on replication operations and not on a predetermined set of Insert, Update or Delete patterns.

So Inserts were used since they are the easiest to tag and verify. Again, the focus is on replication channel fault recovery. Later iterations used simultaneous Inserts, Deletes and Updates against both SOA and RR tables from production snapshots of the mydns database, with request sets greater than 100,000 rows each, over an SSL replication channel.

The first test was done by closing the Slave server's outbound SQL port to the Master with iptables, the Slave was uaware it was no longer connected to the Master after several minutes beyond closing. JUnit FAQ. Questions about JUnit. Can You Write a JUnit Test Case Class in 2 Minutes? JUnit Questions and Answers (Continued from previous question...) Can You Write a JUnit Test Case Class in 2 Minutes? With the simple class, Calc.java, listed in the previous question, you should be able to write a simple JUnit test case class within 2 minutess. Package com.parcelhouse.myproj; import junit.framework.TestCase; import com.parcelhouse.myproj.Calc; //testing class public class CalcTest extends TestCase { Calc c = null; public CalcTest(String name) { super(name); } protected void setUp() throws Exception { super.setUp(); c = new Calc(); } /* * Test method for 'Calc.add(int, int)' */ public void testAdd() { int x = c.add(5,6); assertEquals(11, x); } /* * Test method for 'Calc.multiply(int, int)' */ public void testMultiply() { int x = c.multiply(5,6); assertEquals(30, x); } public static void main(String[] args) { junit.textui.TestRunner.run(CalcTest.class); } } This test case class contains two tests: Other Interview Questions.

Behavior Driven Development com JUnit. JUnit. Serviço de validação de CSS do W3C. Unit-Testing XML. There are many occasions where software creates XML output. XML documents are used for data interchange between different applications, web application create (X)HTML output or respond to AJAX requests using little XML snippets. There are many use cases where XML is generated and the outputs have to be tested as much as any other part of the application. There are several approaches for testing the generated XML, and each of these approaches has its flaws when used in isolation.

For example you can: validate the generated XML against a DTD, an XML Schema or any of the other grammar alternatives. In addition the existing APIs for either task are often inconvenient. XMLUnit XMLUnit is an open source project licensed under the BSD license. There is a Java and a .NET version of XMLUnit, but the Java version is more mature and provides more features. XMLUnit was founded by Tim Bacon and Jeff Martin in 2001 and developed as a testing framework for their own projects. Validating XML DetailedDiff. Generatedata.com. WebTest. Three Index Cards To Easily Remember The Essence Of Test-Driven Development. TDD Anti-Patterns. Recently I began to write a paper on TDD Anti-Patterns, and decided to first quickly jot down some of the most common ones that others or myself have encountered “in the wild.” I then posted what I had on the testdrivendevelopment on yahoogroups mailing list, and got an excellent bit of feedback!

As a side note, keep in mind this is merely a catalog at the moment, hopefully to be expanded in full down the road. TDD Anti-Pattern Catalogue The Liar An entire unit test that passes all of the test cases it has and appears valid, but upon closer inspection it is discovered that it doesn’t really test the intended target at all. Excessive Setup A test that requires a lot of work setting up in order to even begin testing. The Giant A unit test that, although it is validly testing the object under test, can span thousands of lines and contain many many test cases.

The Mockery Sometimes mocking can be good, and handy. The Inspector Generous Leftovers [4] The Local Hero [1] The Nitpicker [1] The Dodger [1] Integrating JMeter into Ant. Last updated Mar 14, 2003. In 1995, Sun Microsystems made the first public version of Java available. It defined Java as having the following attribute: Java is simple. That simplicity derives from syntax similar to C/C++ and the omission of complex C/C++ features such as multiple implementation inheritance, pointers, and operator overloading.Java is object-oriented.

The above definition implies that Java is not your average computer language. Initially these goals were ambitious and required developers to spend a significant amount of time testing and debugging their applications running in different virtual machines on different operating systems, but as time moved forward, so did Java. The History of Java Java’s abstraction of the underlying operating system, and hence the underlying network infrastructure, can only be appreciated after a brief history lesson about how Java came to be. So what happened to Java after that? The Power of Java Summary. Test Case Writing Best Practices. Bridging the Communication Gap » The book. Specification by Example and Agile Acceptance Testing By Gojko Adzic Buy the paperback | Buy the PDF |Buy on Kindle Store | Buy on ITunes | Register your copy | Sample chapters | Reviews | Table of contents Bridging the Communication Gap (ISBN-10: 0955683610, ISBN-13: 978-0955683619, published in January 2009 by Neuri Limited) is a book about improving communication between customers, business analysts, developers and testers on software projects, especially by using specification by example and agile acceptance testing.

These two key emerging software development practices can significantly improve the chances of success of a software project. They ensure that all project participants speak the same language, and build a shared and consistent understanding of the domain. This book is primarily intended for product owners, business analysts, software developers and testers who want to learn about agile acceptance testing and implement it. Read this book to: Reviews Sample chapters. Ajax testing with Selenium using waitForCondition. An often-asked question on the selenium-users mailing list is how to test Ajax-specific functionality with Selenium. The problem with Ajax testing is that the HTML page under test is modified asynchronously, so a plain Selenium assert or verify command might very well fail because the element being tested has not been created yet by the Ajax call.

A quick-and-dirty solution is to put a pause command before the assert, but this is error-prone, since the pause might be not sufficient on a slow machine, while being unnecessarily slow on a faster one. A better solution is to use Dan Fabulich's waitForCondition extension. But first, a word about Selenium extensions. If you've never installed a Selenium extension, it's actually pretty easy. You should have a file called user-extensions.js.sample in the same directory where you installed the other core Selenium files (such as TestRunner.html and selenium-api.js). Now back to testing Ajax functionality. What does waitForCondition buy you? Getting Selenium to wait for Ajax. In our application, we have a page that regenerates most of a certain page using Ajax that was a bit of a headache to test with Selenium.

The data that we pulled for the page was tested elsewhere but there was some non-trivial Ajax that we wanted to test. In much of our research, “people” test for the existence of elements or text on the page in a selenium.waitForCondition(). In our case however, the data may change and the elements are basically the same before and after.

Also we wanted some solution that would work without having to tailor it to every single page; we just wanted to wait for Ajax to complete any pending requests before continuing with the test. We (i.e. Michael Buckley) found a way to have Selenium wait for all in-flight Ajax requests to finish processing: protected void waitForAjax() throws InterruptedException { selenium.waitForCondition("selenium.browserbot.getCurrentWindow().dojo.io.XMLHTTPTransport.inFlight.length == 0;", DEFAULT_WAIT_PERIOD); } Handling browser pop-up windows with Selenium. An introduction to Test Driven Development. Test Automation Tips. Evolutionary architecture and emergent design: Test-driven design, Part 2.

This is the second part of a two-part article investigating how use of TDD allows better design to emerge from the process of writing tests before you write code. In Part 1, I wrote a version of a perfect-number finder using test-after development (writing the test after writing the code). Then I wrote a version using TDD (writing the tests before the code, allowing the testing to drive the code's design). At the end of Part 1, I found that I had made a fundamental flaw in thinking about the kind of data structure used to keep the list of perfect numbers: my instinct started me with an ArrayList, but I found that the abstraction was more suited to a Set. I'll pick up at that point, expanding the discussion into ways you can improve the quality of your tests and check the quality of the finished code.

Test quality The test using the better abstraction of a Set appears in Listing 1: Listing 1. Moist tests My TDD rule of thumb is that tests should be moist but not drenched. Listing 2. Summary. Evolutionary architecture and emergent design: Test-driven design, Part 1. One of the common agile development practices is TDD. TDD is a style of writing software that uses tests to help you understand the last step of the requirements phase. You write tests before you write the code, solidifying your understanding of what the code needs to do. Most developers think that the primary benefit derived from TDD is the comprehensive set of unit tests you end up with. However, when done correctly, TDD can change the overall design of your code for the better because it defers decisions until the last responsible moment. Because you don't make design decisions up front, it keeps you open to better design options or refactoring to better designs.

This article walks through an example that illustrates the power of allowing design to emerge from the decisions around unit tests. TDD workflow The important word in the term test-driven development is driven, indicating that testing drives the development process. Figure 1. The workflow in Figure 1 is: TDD vs. test after. Tutorias recomendados sobre TDD. Ferramenta para teste SIP. Ferramenta para teste feita em rails. TESTAVO. Agile software development testing. Questioning Software. OWASP. Open source software testing tools. …zezologs. Google Testing Blog. UITest.com. One Stop Testing. Software Testing Zone. Software Testing. From Wikipedia, the free encyclopedia The Software Testing Portal Software testing is the process used to measure the quality of developed software.

Software testing, depending on the testing method employed, can be implemented at any time in the development process. Traditionally most of the test effort occurs after the requirements have been defined and the coding process has been completed, but in the Agile approaches most of the test effort is on-going. Keyword-driven testing, also known as table-driven testing or action-word testing, is a software testing methodology for automated testing that separates the test creation process into two distinct stages: a Planning Stage, and an Implementation Stage. ...More Expand the stubsAdd citations to articles for verification Purge server cache.