Solved

Acceptance Testing Frameworks

Posted on 2011-03-16
7
269 Views
Last Modified: 2013-12-13
I need clarification on how an Acceptance Test (AT) may  be automated.


I use Unit Tests extensively already but I am a little confused on how may  an acceptance may
fits into the picture.

I do know that the AT must be given a high-level description, but how does this map to code?
0
Comment
Question by:geldfeld
7 Comments
 
LVL 28

Expert Comment

by:pepr
ID: 35152068
I am not 100 % sure, but I think that you should search for "mockup" testing. Basically, you need to build a kind of faked environment that simulates the chosen subset of real situations. The tested part of the system is joined to the mockup objects and have to respond (as a black-box) correctly.

If unit testing is focused on testing the tiny, essential bits of the functionality (isolated), the acceptance test do test the units in cooperation, as if it was real run of the system.
0
 

Author Comment

by:geldfeld
ID: 35157360
@pepr  - I have read the Acceptances Tests can be automated, yet they are defined in high level langague by the business users.  What are the steps in between, mapping the high-level description to the test scenario.

This is not what I am clear about.
0
 
LVL 28

Accepted Solution

by:
pepr earned 500 total points
ID: 35158147
I personally did not implement it, so take my words from that position. I have touched the problem when learning principles of Agile software development (http://en.wikipedia.org/wiki/Agile_Software_Development), namely the Extreme Programming (http://en.wikipedia.org/wiki/Extreme_Programming). However, there are other approaches to Agile development (see the earlier page).

Probably all of the methodologies rely on heavy testing. The problem is that some methodologies name the same thing using different terms. This is possibly also because of the fact that they recognize and support different levels of testing (more or less fine grained levels).  As far as I know all of them quite agree with Unit testing (i.e. the lowest tests).  However, Extreme Programming adds only Acceptance testing.  Some other methodologies talk about integration testing, GUI automated testing, etc.

Another problem is that it is easy to talk about something, but it is difficult to implement it.  Many probably agree with User stories (http://en.wikipedia.org/wiki/User_story) that are usually written on paper cards using some simple sentences. They are something like "human-oriented expectation unit-tests". Then the question is who is the user. Is it the one that clicks the button on the screen or the one that had a vision how their system should look like inside...

It is also difficult to say what does it mean the "domain specific language" that should help to formalize the descriptions form User stories. Try to search for articles by Martin Fowler (http://www.martinfowler.com/). Read the sample chapter related to the domain specific languages (http://www.informit.com/articles/article.aspx?p=1592379).

Google for http://www.google.cz/search?q=Martin+Fowler+DSL

Try also http://www.google.cz/search?q=Martin+Fowler+mock and read the article "Mocks Aren't Stubs" (http://martinfowler.com/articles/mocksArentStubs.html). This is not the direct answer but you may find some things there that you look for.

Search also for Robert C. Martin  (try  http://www.google.cz/search?q="Robert+C.+Martin"+acceptance+test)
Read his "The Test Bus Imperative: Architectures That Support Automated Acceptance Testing" (http://martinfowler.com/ieeeSoftware/testBus.pdf)
0
DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

 

Author Comment

by:geldfeld
ID: 35163954
@pepr  - this has covered the issues that I needed resolved regarding Acceptance Testing.

The article from Martin Fowler were especially helpful

0
 
LVL 4

Expert Comment

by:jpg526
ID: 35338815
To make it simple, unit test is done by developer to ensure the functional point works.
To do a Acceptance test, you need to study the software requirement, think about what actual that user expectation.

You should not try to "map" it code (and.....actually you don't need to)

for example, let's say you are developing a image editing software, and you have developed lots of complicated image editing functions (and you did extensive unit test on it). The acceptance test may be just simple as:
Test Case 1: Open and close application
Test Case 2: Open a JPG image
Test Case 3: Open a BMP image
Test Case 4: Apply blur filter to opened image.

that's it.


0
 
LVL 31

Expert Comment

by:James Murrell
ID: 36515797
This question has been classified as abandoned and is closed as part of the Cleanup Program. See the recommendation for more details.
0

Featured Post

Simplifying Server Workload Migrations

This use case outlines the migration challenges that organizations face and how the Acronis AnyData Engine supports physical-to-physical (P2P), physical-to-virtual (P2V), virtual to physical (V2P), and cross-virtual (V2V) migration scenarios to address these challenges.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

When we want to run, execute or repeat a statement multiple times, a loop is necessary. This article covers the two types of loops in Python: the while loop and the for loop.
Today, still in the boom of Apple, PC's and products, nearly 50% of the computer users use Windows as graphical operating systems. If you are among those users who love windows, but are grappling to keep the system's hard drive optimized, then you s…
Video by: Tony
This video teaches viewers how to export a project from Adobe Premiere Pro and the various file types involved.
An overview on how to enroll an hourly employee into the employee database and how to give them access into the clock in terminal.

776 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question