Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9153185
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 17, 20262026-06-17T12:13:40+00:00 2026-06-17T12:13:40+00:00

Any good software architects would be agree that when someone builds a new project

  • 0

Any good software architects would be agree that when someone builds a new project from scratch, he mustn’t carry about boundaries at the beginning (database, GUI, external services etc…)
Indeed, he should construct heart of his software independently of any backend and think about them as just kind of “plugins” to the application.

TDD and acceptance testing promote that for each new feature:

  1. Write a failing acceptance test (end-to-end) for the feature
  2. Drive and complete your code design thanks to some unit tests
  3. Finished as soon as acceptance test passes.

However, a lot of articles explain that an acceptance test is a really really end-to-end test involving thus GUI (browser (using Selenium for instance) or some other interface).

Shouldn’t Acceptance testing be based on the application’s HEART and independent of any boundaries? It would force me to think about GUI for instance… :s

What is a good practice? Write two kind of Acceptance tests for each feature?: one for business logic and one ensuring that the GUI well works?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-17T12:13:41+00:00Added an answer on June 17, 2026 at 12:13 pm

    First let me suggest reading Growing Object-Oriented Software, Guided by Tests by Steve Freeman and Nat Pryce. It’s by far the best software testing book I read so far. What’s great about it is that the authors don’t focus on dummy use cases like Calculator class and using TDD to test add(int, int) method. This is silly. Instead they build fully-functioning application with Swing interface, network connectivity via XMPP and quite a lot of business logic. Which brings us back to your question.

    Authors of the book above use various techniques and tools but they keep TDD practices all the time. For unit tests they go for mockito but for acceptance and integration tests they actually automate starting an application (GUI) and XMPP test server.

    They managed to test-drive GUI tests by employing high separation between the test and GUI. You should hide your user interface (web, desktop, SOAP web service, etc.) behind an abstraction called driver. Your test interacts only with the driver using high level methods like placeOrder("Foo"). Each driver (BrowserDriver, SwingDriver) understand what that means and either browses your web page or clicks buttons on fat GUI.

    If you can change your GUI without changing test but only by changing underlying driver – you got it right.

    See also

    • Page Objects – keeping Selenium tests maintainable
    • FitNesse
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm looking for a diagramming software that would produce good looking output. It doesn't
There does not appear to be any good software to mount an FTP to
Any good alternatives to tying software activation to a hardware piece on the machine
anyone know any good mac version control software? if so why is do you
I was searching for software that would help me with JavaScript development (I'm a
Does anyone know any good software packager other than InstallShield? What software did MS
Can anyone recommend any good material that seeks to provide a real world perspective
I am currently evaluating for an eCommerce project. Is there any good Python based
I want to create a new software that can be controlled by email. It
Does anyone know of any good resources (books, articles, existing software, etc...) for learning

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.