GOPHERSPACE.DE - P H O X Y
gophering on hngopher.com
HN Gopher Feed (2017-10-22) - page 1 of 10
 
___________________________________________________________________
Show HN: Appraise - Visual test automation
42 points by adzicg
https://github.com/AppraiseQA/appraise
___________________________________________________________________
 
sarthakjain - 3 hours ago
Would be good to have prebuilt rules for eg material design
guidelines.Would it be even possible to test the material design
rules across and entire page without having to define what
individual components across the entire website look like?
 
  adzicg - 3 hours ago
  not currently, but that's definitely an interesting idea.Appraise
  is designed to make it easy for a human to approve/reject current
  state or changes, with a smart visual diff and a good way to show
  actual and expected pictures side-by-side or as an overlay, but
  it currently doesn't have any smart logic beyond that.
  Theoretically it could do something smarter as a comparison.As it
  stands now, you could run it once to capture the current state,
  and get someone to approve it, then it becomes a regression test
  pack and the tool would alert to any changes with a smart diff.
 
alkonaut - 28 minutes ago
Could this be used to diff pdf's?
 
  adzicg - 19 minutes ago
  haven't tested it myself, but I assume headless chrome can render
  PDFs, so the answer should be yes. Try it and if it doesn't work,
  submit an issue on github and we'll make it work together. You'll
  probably need to use a fixture producing a local file, check out
  https://github.com/AppraiseQA/appraise/blob/master/examples/...
 
lunarcave - 23 minutes ago
Very Nice! Can you tell me how this could be different to a tool
like niffy (https://github.com/segmentio/niffy)?
 
  adzicg - 15 minutes ago
  I have not used niffy so this is based on their github
  description, so might be wrong1) niffy seems to be designed to
  use UI interactions to lead you to the result, appraise works
  like fitnesse, separating what is being tested from how it's
  being tested, so you could go several levels deeper than UI
  interactions and eg test how your models and views produce
  outcomes, without the http serving and web pages in between. this
  makes tests faster and easier to maintain. appraise is more for
  visual unit testing.2) niffy seems to be optimised for
  developers, appraise is intended for cross-functional
  collaboration between developers, testers and designers. with
  appraise, the test is a markdown page that renders nicely in
  github and shows expected results and the conditions under which
  they should happen.
 
bcherny - 2 hours ago
This looks pretty neat! A few questions:1. Are there plans for a
multi-browser (especially mobile web) test runner?2. Are there
plans to detect change provenance (eg. if I change my heading
height on a page, all the content below it will shift down. The
change I really want to be notified about is that the header's
height changed, not that everything was pushed down because of
it)?3. There are a lot of similar tools (eg. back in the day I used
https://github.com/facebookarchive/huxley) - where does Appraise
succeed where those tools failed, or what does Appraise do better?
 
  adzicg - 2 hours ago
  > 1. Are there plans for a multi-browser (especially mobile web)
  test runner?the screenshot engine is designed to be pluggable, so
  theoretically this should be easy to do with some kind of mobile-
  test-farm runner.> 2. Are there plans to detect change
  provenance...You can set the relevant clip region to just the
  header, so it will only notify you if the header changed and
  ignore the rest. check out https://github.com/AppraiseQA/appraise
  /blob/master/examples/...>3. There are a lot of similar
  tools...appraise is designed to be used like fitnesse (so
  example+fixture=> result) instead of record/replay tools that end
  up being fragile. it makes the examples easy to understand,
  splitting what is being tested and how it will be tested clearly
  so both of those aspects are easy to maintain.it's also designed
  to work well with github markdown, so your tests become
  executable API/component specs that are easy to read and also
  easy to verify.I'm working on an AWS Lambda runner now, which
  will also make it quick and cheap to run UI tests in parallel, so
  it will provide reasonably fast feedback for large test suites.
 
iamaelephant - 1 hours ago
Oh good I look forward to deleting mountains of these kinds of
tests in a couple of years when the shine comes off the apple and
people realise the effort of separating the flake from the real
failures isn't worth it.
 
  dang - 56 minutes ago
  It's always possible I've misread your comment, but if not:
  please don't dismiss other people's work in an assholish way on
  HN. It breaks both the site guidelines and the extra rules for
  Show HNs:https://news.ycombinator.com/newsguidelines.htmlhttps://
  news.ycombinator.com/showhn.htmlSubstantive critique is welcome,
  of course, but in this case that would mean talking about
  problems with visual testing and making it clear you're not
  picking on this particular implementation.
 
revelation - 2 hours ago
This is diffing PNGs? That sounds like a recipe for disaster.Here
is what this looks like in the much denigrated Java Enterprise
world:https://eclipsesource.com/blogs/tutorials/rcp-testing-
tool-r...
 
  adzicg - 2 hours ago
  >This is diffing PNGs? That sounds like a recipe for disaster.Not
  necessarily, if you use it for what it was intended -- visual
  layout tests that are easy for a human to approve/reject when
  there is a difference. It doesn't know if the change is right or
  wrong, just helps humans be more effective by showing the
  difference clearly and aiding in comparisons.
 
adzicg - 3 hours ago
Author here - Appraise is a new opensource tool for visual test
automation. It?s like FitNesse, but for visuals, and working from
Markdown that shows up nicely in GitHub repositories.Appraise can
help you:- Automate acceptance/regression tests for visual look and
feel in a visual language, rather than xUnit style code- Review and
approve changes to web pages, visual layouts and browser components
quickly through visual inspection- Publish easily
maintainable/verifiable developer docs with visual examples to
Github easily (markdown) or as a static site (html)- Start Spec by
Example/BDD from a sketch (hand-drawn, wireframe, or from a graphic
tool), easily compare actual outcomes, then just approve the final
result to make a regression testIn the near future, Appraise will
also help you:- Speed up visual exploratory testing by making it
easier to rebuild visual components from example
data/configuration- Run visual tests quickly/in parallel using AWS
LambdaThis is another tool we built for MindMup, and we used it for
the last few months internally, to assist with visual checks and
test automation. It helped us move away from tedious layout tests
that were very difficult to maintain for small changes, but that
would be visually easy to approve or reject. Appraise makes visual
tests easy to compose and maintain, by letting people describe what
they want something to look like (with a drawing, photo, screenshot
or a wire-frame), instead of describing how to test it (eg 10
pixels left, this css color). Here it is in action, preventing me
from introducing a stupid layout bug: https://gojko.net/assets
/appraise-screenshot.pngUnder the hood, Appraise uses headless
Chrome to take screenshots, so it can inspect anything that Chrome
can render.The initial release of Appraise is alpha-quality. It
covers our key usage scenarios, so we think it is ready for some
nice community feedback. It?s useful to us, let?s make it useful to
you together.We?ve designed it to be extensible and pluggable, so
other ways of executing fixtures, taking screenshots or processing
results should be easy to bolt on to it. We?re releasing it under
the MIT license, and the code is on GitHub.
 
  chrisweekly - 2 hours ago
  Bravo! Sounds fantastic. Curious whether you?ve considered
  possible paths to integration with tools like WebPageTest.
 
felipellrocha - 1 hours ago
How is this different than happo?