View on GitHub

Racket-QA

Utilities that a QA Engineer could use for Racket

Download this project as a .zip file Download this project as a tar.gz file

Racket-QA

Authors

Overview

Racket-QA is a set of utilities that expand on RackUnit to provide a Regression Harness that QA Engineers could potentially use if coding in Racket. Along with automated testing, Racket-QA also provides a means of standardizing documentation in code so it can also be processed and displayed in web pages.

Screenshots

master-gui-page.png

bottle-racket-gui.png

test-capture-gui.png

scheduler-gui.png

racket-doc-gui.png

mail-list.png

Concepts Demonstrated

External Technology and Libraries

Favorite Lines of Code

Roy

File: bn-to-racket.rkt line 266

This procedure is an example of not only using HOP, but also abstracting the procedures called within such that the person doesn't have to know how any of the other procedures are implemented to see what this procedure is doing. You call get-all-test-information and it retrieves all the important test case information needed to generate a test suite file, and the implementations can be changed if the user is trying to convert a different kind of test file (in our case, the Bottlenose files).

(define (get-all-test-information all-lines)
  (zip (get-all-test-inputs all-lines)
       (get-all-expected-values all-lines)
       (get-all-test-names all-lines)))

Yong

File: scheduler_ui.rkt line 1038, 1067

These lines conveniently disable all children elements in a GUI area container. I used it in the test scheduler UI where a group of the UI elements becomes irrelevant when user makes certain selections.

(define (disable-all-children area-container)
  (for-each send-disable (send area-container get-children)))
(define (send-disable control) (send control enable #f))

James

File: PageGenerator.rkt line 475

This code segment generates Racket code for a web server and static web pages, inserting into them data parsed from the user's *.rkt files. I like it because although I--like every other CS student--have written text to files, this is the first time I'm writing code which in turn writes code of its own! Also, this is the first time I have ever done web development. This code uses abstraction and HOP: I have literally no idea how the Racket's internal procedures actually link the web pages, but since I am on the higher side of the abstraction barrier, I don't need to.

(write-string "\n(a ((href, (embed/url codeblock" output)
         (write-string (number->string count) output)
         (write-string "-page))) \"Code\")\n" output)
         (write-string "(br) (br) (br)\n" output)
         (set! count (+ count 1))
         (procLooper (cdr pLst) (cdr dLst) count)

How to Download and Run

Latest release is Racket-QA v1.0.0. Repository can be found here.

There are 4 main components to Racket-QA, with a 5th helper component.

  1. Bottle-Racket
    • This utility is used to convert Bottlenose test fiels into Racket test suite files.
  2. Test-Capture
    • This utility can run a specified test suite, with or without sending an email of the test results to a specified emailing list.
  3. Test Scheduler
    • This utility can run test suites at specified time intervals. It also has the option of sending the results of each timed run to a mailing list.
  4. Racket-Doc
    • This utility extracts attributes and documentation form source *.rkt fiels and embeds them in generated web pages.
  5. Manage Mailing List
    • Configure email database for recipients of test results.

The script you want to run is master-gui.rkt, which is found in the Racket-QA parent directory.

  1. When you run master-gui.rkt you will be presented with a GUI that has 6 buttons.