Solved

Acceptance Testing Frameworks

Posted on 2011-03-16
7
260 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
Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

 

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

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Suggested Solutions

A list of useful business intelligence software.
Workplace bullying has increased with the use of email and social media. Retain evidence of this with email archiving to protect your employees.
Learn the basics of lists in Python. Lists, as their name suggests, are a means for ordering and storing values. : Lists are declared using brackets; for example: t = [1, 2, 3]: Lists may contain a mix of data types; for example: t = ['string', 1, T…
The viewer will learn how to set up a document for the web and print and the recommended PPI for printing.

743 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

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now