• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 331
  • Last Modified:

Acceptance Testing Frameworks

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
geldfeld
Asked:
geldfeld
1 Solution
 
peprCommented:
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
 
geldfeldAuthor Commented:
@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
 
peprCommented:
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
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
geldfeldAuthor Commented:
@pepr  - this has covered the issues that I needed resolved regarding Acceptance Testing.

The article from Martin Fowler were especially helpful

0
 
jpg526Commented:
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
 
James MurrellProduct SpecialistCommented:
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

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now