itsallcode / openfasttrace Goto Github PK
View Code? Open in Web Editor NEWOpen source requirement tracing suite
License: GNU General Public License v3.0
Open source requirement tracing suite
License: GNU General Public License v3.0
The following two requirements were removed ahead of the OFT API design:
req~reporting.plain-text.report-options~1
The following parts of the plain text reports can be switched on and off:
Covers:
Needs: dsn
req~reporting.plain-text.default-report-options~1
The following options are set by default in the plain text report unless options are specified by the user:
Covers:
Needs: dsn
dsn~reporting.plain-text.report-options~1
The following parts of the plain text reports can be switched on and off:
Covers:
req~reporting.plain-text.report-options~1
Needs: impl, utest
dsn~reporting.plain-text.default-report-options~1
The following options are set by default in the plain text report unless options are specified by the user:
Covers:
req~reporting.plain-text.default-report-options~1
Needs: impl, utest
During a system test with existing legacy MD files, imports were missing. Looks like that the format used in the field has additional syntax elements that OFT is not yet compatible with.
I searched an easy way to see a resulting report of OFT.
New lines (especially after empty lines) are not treated correctly in the MarkdownImporter and PlainTextReport
As a developer
I want to see all links from and to a specification item including the link status
so that I can fix issues as fast as possible.
As a developer
I want a tracing report that is easy to ready
so that I can identify and fix gaps and errors in the tracing easily.
As a quality engineer
I want a report that I can view in a browser
so that I don't have to install any special tools on my machine when auditing a project.
As a customer
I want a report that I can understand and archive
so that I get a solid view of whether the team working for me does a good job.
As a user
I want OFT to only import new or changed artifacts for my project
in order to speed up the import process.
OFT is a requirement tracer so "openfasttrace" fits much better than "openfasttrack".
org.itsallcode.openfasttrace
As a software developer,
I want to OFT to automatically determine the artifact type of the file I am putting coverage tags in,
in order to save time and reduce the chance to make mistakes in configuration.
As a software developer
I want to filter specification items by tags before tracing or converting
so that I can concentrate on implementing and tracing those that concern me.
As a quality engineer
I want OFT to automatically select the correct importer
in order to import multiple files without selecting an importer explicitly.
If a specification item claims to cover another specification item that does not exist, this case is currently not recorded.
The reason is that in
void openfasttrack.core.Linker.linkIgnoringRevision(LinkedSpecificationItem item,
SpecificationItemId id)
the special case that no matches for the claimed coverage are found (even ignoring the revision) is not handled.
Linker detects and records coverage link to non-existing specification item.
Case is silently ignored.
Instead of tracing, the CLI command "trace" feeds an unlinked Stream of LinkedSpecificationItems to the Tracer.
If requirements are linked in a ring, OFT runs into an endless recursion and terminates with a stack overflow exception.
As a Quality Engineer
I want the list of input files and directories to consist of individual unnamed parameters
in order to easily append the list to the command in scripts.
oft trace doc/spec.md doc/design.md src/main/java
oft trace --verbosity-level=failures doc/spec.md doc/design.md src/main/java
oft --verbosity-level=failures trace doc/spec.md doc/design.md src/main/java
As a quality engineer
I want to run OFT on a list of files / and or directories (including their sub-directories)
in order to check requirement coverage over a whole project.
TagImporter shall create spec items with a generated ID and covers
attribute set correctly.
See #49 for urther improvements.
Lets face it. Plain HTML rendered from Markdown is not optically appealing. To fix this we need a CSS stylesheet for our specification documents.
As per GNU convention the following is equivalent:
myprogram --verbose --recursive
myprogram -verbose -recursive
myprogram -v -r
myprogram -vr
--output-dir
)http://www.gnu.org/software/libc/manual/html_node/Getopt-Long-Options.html
As a software integrator
I want OFT to reflect the tracing result in the exit status
in order to fail builds if tracing is broken.
As a developer
I want to be able to tell from the requirement ID, what a specification item is good for,
so that I can correlate sources with specification faster.
As a user
I want OFT to import coverage tags from my source code
in order to trace requirements to source code level.
As a software architect
I want to have a shortcut for passing down system requirements directly to the detailed design
so that I can efficiently forward all requirements that are not relevant in the system architecture - typically requirements that effect only a single component.
# Passed down requirements
* `req~display_remaining_inactivity_time~1 -> dsn`
Test testTraceWithReportVerbosityMinimal fails because it expects fileContent(this.outputFile), equalTo("not ok\n") but get on windows for fileContent(this.outputFile) "not ok\r\n"
As a developer
I want to build OpenFastTrack with Eclipse and Maven
in order to be fast and not have to manage the dependencies by hand.
As a user
I want OFT to run on all processor cores of my machine
in order to get requirement coverage feedback as fast as possible.
Situation
Acceptance Criteria
As a software integrator
I want to integrate requirement tracing into my build chain from scripts
so that I can run it automatically as a part of my build.
As a configuration manager
I want to see a master branch containing only releases of the project
in order have a clean and simple release history in the repository.
This simplifies adding tags to source code, where a common prefix is used for all tags in a sub-project.
Called command:
Expected behavoir:
Observed behavoir:
Stacktrace:
Exception in thread "main" org.itsallcode.openfasttrace.exporter.ExporterException: Found no matching exporter for output format 'null'
at org.itsallcode.openfasttrace.exporter.ExporterFactoryLoader.getExporterFactory(ExporterFactoryLoader.java:70)
at org.itsallcode.openfasttrace.exporter.ExporterService.exportFile(ExporterService.java:65)
at org.itsallcode.openfasttrace.mode.ConvertMode.convertToFileInFormat(ConvertMode.java:38)
at org.itsallcode.openfasttrace.cli.commands.ConvertCommand.convert(ConvertCommand.java:70)
at org.itsallcode.openfasttrace.cli.commands.ConvertCommand.run(ConvertCommand.java:54)
at org.itsallcode.openfasttrace.cli.CliStarter.run(CliStarter.java:68)
at org.itsallcode.openfasttrace.cli.CliStarter.main(CliStarter.java:45)
The Markdown importer does not realize required coverage if only one artifact type is listed in the "needs" section. From two on it works though.
Avoid flooding the log with warning caused by unknown XML elements by using a white list of root element names.
See #66
As a quality engineer
I want to know the requirement coverage of my project
in order to get gaps closed and over-covered requirments investigated.
Integration test should be runnable in a separate test phase.
The fail save plug-in established the standard naming convention for integration tests:
https://maven.apache.org/surefire/maven-failsafe-plugin/integration-test-mojo.html#includes
Status, tags and title are missing from both ".xml" / ".oreqm" import. Location is missing from ".oreqm".
At the moment isOk() only considers coverage.
Fix Sonar Findings on 0.4.0
As a developer
I want to add tags to implementation and tests
so that a coverage trace tells me whether I forgot anything.
impl
)utest
, itest
)As a software developer
I want to see the number of broken links and duplicates per specification item
in order to fix the issues faster.
Per specification item
As a document author
I want that ignoring an artifact type ignores outgoing links from a specification item
so that I can completely focus on the tracing for the requirement types I am interested in.
As an OFT user
I need a handbook
in order to quickly find out what OFT can do for me and how to use it.
Use an xml parser supported by Android
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.