# Announce: bbt v0.03

**URL:** https://forum.ada-lang.io/t/announce-bbt-v0-03/955
**Category:** Releases
**Tags:** tool, test
**Created:** [July 1, 2024, 5:42pm UTC](https://forum.ada-lang.io/t/announce-bbt-v0-03/955 "2024-07-01T17:42:34Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![LionelDraghi](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/lioneldraghi/32/416_2.png) [@LionelDraghi](https://forum.ada-lang.io/u/LionelDraghi)
#### Post date: [July 1, 2024, 5:42pm UTC](https://forum.ada-lang.io/t/announce-bbt-v0-03/955/1 "2024-07-01T17:42:34Z")

</div>

[bbt](https://github.com/LionelDraghi/bbt) is a driver for black box testing.

Its particular feature is that the test is written in english, using a Markdown format (that is directly suitable for the documentation), with a traditional TDD Given/When/Then structure.

A simple example:

```ada
## Scenario : I want to know uut version

- When I run `uut --version`
- Then the output contains `version 1.0`

```

That will be displayed as:

## Scenario : I want to know uut version

- When I run `uut --version`
- Then the output contains `version 1.0`

And to run it:

> bbt my\_scenario.md

That’s it.

There is another example slightly less minimalist on [bbt README](https://github.com/LionelDraghi/bbt)

The goal of the project is to explore to what extend:

1. we can get a description using all the possibilities of Markdown and Markdown extensions (for example graphics), and still executable,
2. we can use english as a DSL for behavior description language suitable for black bock testing,

and both without any ambiguity.

bbt is at an experimental stage, with limited features, but usable (I already use it on my acc project).  
If you have any ideas, comments or needs (its time to write your letter to Santa Claus), feel free.

No Alire packaging yet, but it’s easy to compile, I guess.

Lionel

---

<div class="post-metadata">

### Author: ![Lucretia](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/lucretia/32/17_2.png) [@Lucretia](https://forum.ada-lang.io/u/Lucretia)
#### Post date: [July 1, 2024, 5:59pm UTC](https://forum.ada-lang.io/t/announce-bbt-v0-03/955/2 "2024-07-01T17:59:30Z")

</div>

I see you starred gnatbdd, could I get further with my renderer with this?

---

<div class="post-metadata">

### Author: ![LionelDraghi](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/lioneldraghi/32/416_2.png) [@LionelDraghi](https://forum.ada-lang.io/u/LionelDraghi)
#### Post date: [July 1, 2024, 7:58pm UTC](https://forum.ada-lang.io/t/announce-bbt-v0-03/955/3 "2024-07-01T19:58:15Z")

</div>

Not sure to understand, you want to know if you could test some graphic component with gnatbdd?

---

<div class="post-metadata">

### Author: ![Lucretia](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/lucretia/32/17_2.png) [@Lucretia](https://forum.ada-lang.io/u/Lucretia)
#### Post date: [July 1, 2024, 10:39pm UTC](https://forum.ada-lang.io/t/announce-bbt-v0-03/955/4 "2024-07-01T22:39:54Z")

</div>

See the issues on gnatbdd.

---

<div class="post-metadata">

### Author: ![Verisimilitude](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/verisimilitude/32/384_2.png) [@Verisimilitude](https://forum.ada-lang.io/u/Verisimilitude)
#### Post date: [July 2, 2024, 1:20am UTC](https://forum.ada-lang.io/t/announce-bbt-v0-03/955/5 "2024-07-02T01:20:40Z")

</div>

I’ve never used TCL, but how does this differ from the `expect` functionality of which I’ve heard?

---

<div class="post-metadata">

### Author: ![LionelDraghi](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/lioneldraghi/32/416_2.png) [@LionelDraghi](https://forum.ada-lang.io/u/LionelDraghi)
#### Post date: [July 2, 2024, 11:56am UTC](https://forum.ada-lang.io/t/announce-bbt-v0-03/955/6 "2024-07-02T11:56:00Z")

</div>

Ok, Got it!  
So no, you won’t get further with bbt, because it is not done for integration or unit testing : there is no stub or mock in bbt.  
It is only testing command line app, from the (external) user point of vue.

---

<div class="post-metadata">

### Author: ![LionelDraghi](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/lioneldraghi/32/416_2.png) [@LionelDraghi](https://forum.ada-lang.io/u/LionelDraghi)
#### Post date: [July 2, 2024, 12:14pm UTC](https://forum.ada-lang.io/t/announce-bbt-v0-03/955/7 "2024-07-02T12:14:13Z")

</div>

Yes, You can do what bbt does (and actually much much more) with TCL expect/send and many other alternatives.  
Some like _bats_ or _precisely_ are mentioned somewhere in my notes in docs/, but they are all using some kind of shell or specific language.

bbt is the only one, **as far as I know** , that is using plain english, so that the documentation is directly executable without translating or rewriting (and can be written by non computer field people that don’t even know how it will be implemented)

The main point for me was the “single source of truth” : I write my behavior once, and it’s directly suitable for doc and for execution.
