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
I searched an easy way to see a resulting report of OFT.
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.
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.
At the moment isOk() only considers coverage.
Situation
Acceptance Criteria
If requirements are linked in a ring, OFT runs into an endless recursion and terminates with a stack overflow exception.
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.
TagImporter shall create spec items with a generated ID and covers
attribute set correctly.
See #49 for urther improvements.
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 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 user
I want OFT to run on all processor cores of my machine
in order to get requirement coverage feedback as fast as possible.
OFT is a requirement tracer so "openfasttrace" fits much better than "openfasttrack".
org.itsallcode.openfasttrace
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)
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.
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.
Avoid flooding the log with warning caused by unknown XML elements by using a white list of root element names.
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 a quality engineer
I want OFT to automatically select the correct importer
in order to import multiple files without selecting an importer explicitly.
As a user
I want OFT to import coverage tags from my source code
in order to trace requirements to source code level.
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
As a user
I want OFT to only import new or changed artifacts for my project
in order to speed up the import process.
New lines (especially after empty lines) are not treated correctly in the MarkdownImporter and PlainTextReport
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 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 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 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.
Fix Sonar Findings on 0.4.0
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.
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 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
Instead of tracing, the CLI command "trace" feeds an unlinked Stream of LinkedSpecificationItems to the Tracer.
See #66
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
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
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.
Use an xml parser supported by Android
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.
This simplifies adding tags to source code, where a common prefix is used for all tags in a sub-project.
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.
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 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 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`
Status, tags and title are missing from both ".xml" / ".oreqm" import. Location is missing from ".oreqm".
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
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.