Documentation ¶
Index ¶
- Variables
- func CalculateDuration(cases []Case) duration.Duration
- func CalculateSUTVariants(cases []Case) (map[string]*project.Version, error)
- func ContainsVariant(variantList []project.Variant, variant project.Variant) bool
- func GetProtocolNr(rl ProtocolLister, testVersion id.TestVersionID) (int, error)
- type Case
- type CaseExecutionProtocol
- func (prt CaseExecutionProtocol) DeepCopy() CaseExecutionProtocol
- func (prt CaseExecutionProtocol) Equals(in interface{}) bool
- func (prt *CaseExecutionProtocol) Finish(result Result, comment string, neededTime duration.Duration)
- func (prt *CaseExecutionProtocol) GetNeededTime() duration.Duration
- func (prt CaseExecutionProtocol) ID() id.ProtocolID
- func (prt *CaseExecutionProtocol) IsFinished() bool
- func (prt *CaseExecutionProtocol) SaveStep(stepNr int, observedBehavior string, result Result, comment string, ...)
- type CaseProtocolGetter
- type CaseVersion
- type Precondition
- type PreconditionResult
- type ProtocolLister
- type Result
- type Sequence
- type SequenceExecutionProtocol
- type SequenceInfo
- type SequenceVersion
- type Step
- type StepExecutionProtocol
Constants ¶
This section is empty.
Variables ¶
var ExampleSteps = [][]Step{{ Step{"Type \"SystemTestPortal\" into the search bar and press enter.", "The search results for \"SystemTestPortal\" appear in a list.", 1}, Step{"Click on the menu-button (The three horizontal lines at the top right corner).", "The sidebar opens.", 2}, Step{"Click on the third theme (the blue-green one).", "The user interface design changes." + "The URL addresses are displayed beneath the title of the search result. " + "The URL font color changes to green. The icons before the URL disappear. " + "The font gets bold.", 3}, }, { Step{"Type \"SystemTestPortal\" into the search bar and press enter.", "\"SystemTestPortal\" is written into the search bar. The search results are listed. " + "Under the search bar \"Web\" is selected as search result type.", 1}, Step{"Click on the search result that leads to systemtestportal.org.", "www.systemtestportal.org opens.", 2}, }, { Step{"Type \"portal image\" into the search bar and press enter.", "A new layout opens with multiple images. " + "Under the search bar \"Images\" is selected as search result type.", 1}, Step{"Under the row to select the search result type there is a second row of filters. " + "Click on the last filter which says \"All Colors\" and select \"Black and White\".", "Instead of \"All Color\" there stands now \"Black and White\". " + "The search results change. All search results are predominantly black and white.", 2}, }, { Step{"Type \"test definition\" into the search bar and press enter.", "Under the search bar \"Definition\" is selected as search result type. " + "On the top is a highlighted area with definitions for \"test\". " + "Several search results of websites follow.", 1}, }, { Step{"Click on the menu-button (The three horizontal lines at the top right corner).", "The sidebar opens.", 1}, Step{"Select \"other Settings\".", "A list of adjustable settings is viewed.", 2}, Step{"Select \"Español de España\" in the drop down menu on the right of \"Language\".", "The site is translated into Spanish (e.g. Settings changes into \"Ajustes\").", 3}, Step{"Scroll to the end of the settings list and click \"Guardar y salir\".", "The site changes back to DuckDuckGo.com. " + "The language viewed here is the language you selected in your browser settings.", 4}, }, { Step{"Click on the arrow down in the bottom center.", "The page scrolls down.", 1}, Step{"Click on the button \"Add DuckDuckGo to Chrome\".", "The notification \"Add DuckDuckGo for Chrome?\" appears.", 2}, Step{"Click \"Add extension\". ", "The notification \"DuckDuckGo for Chrome has been added to Chrome...\" appears. " + "In the top right corner the icon of DuckDuckGo is viewed.", 3}, Step{"Press ALT + G.", "In the top right corner a pop up appears with a search bar inside.", 4}, }, { Step{"Click on the menu-button (The three horizontal lines at the top right corner).", "The sidebar opens.", 1}, Step{"Select \"other Settings\".", "A list of adjustable settings is viewed.", 2}, Step{"Click \"Appearance\" in the list on the right of the headline \"Settings\". ", "A list of other adjustable settings is viewed.", 3}, Step{"Select \"Largest\" in the drop down menu on the right of \"Font Size\".", "The font size increases.", 4}, Step{"Scroll to the end of the settings list and click \"Save and Exit\".", "The site changes back to DuckDuckGo.com.", 5}, }, { Step{"Type \"Stuttgart Map\" into the search bar.", "The search results are viewed. At the top is a small map showing stuttgart." + " A list of websites follows.", 1}, Step{"Select \"OpenStreetMap\" in the drop down in the bottom right corner of the map.", "OpenStreetMap is written next to the small triangle of the drop down menu.", 2}, Step{"Click on the map.", "The map opens in full screen mode.", 3}, Step{"Click on \"Directions\".", "OpenStreetMap opens. The coordinates 48.7761, 9.1775 are entered as the finish of the route.", 4}, }, { Step{"Type \"s\" into the search bar.", "No list of auto-suggestions appears under the search bar.", 1}, Step{"Click on the menu-button (The three horizontal lines at the top right corner).", "The sidebar opens.", 2}, Step{"Select \"other Settings\".", "A list of adjustable settings is viewed.", 3}, Step{"Click the button \"Off\" next to \"Auto-Suggest\".", "The color of the button changes. The description of the button changes to \"On\".", 4}, Step{"Scroll to the end of the settings list and click \"Save and Exit\".", "The site changes back to DuckDuckGo.com.", 5}, Step{"Type \"s\" into the search bar.", "A list of auto-suggestions appears under the search bar.", 6}, }, { Step{"Type \"Pizza recipes\" into the search bar and press enter.", "\"Pizza recipes\" is written into the search bar. The search results are listed. " + "Under the search bar \"Recipes\" is selected as search result type.", 1}, }, { Step{"Click on the arrow down in the bottom center.", "The page scrolls down.", 1}, Step{"Click on the button \"Add DuckDuckGo to Firefox\".", "The notification \"Firefox blocked this website....\" appears.", 2}, Step{"Click \"Permit\".", "The notification \"Add DuckDuckGo Plus? ...\" appears.", 3}, Step{"Click \"Add\".", "The notification \"DuckDuckGo for Chrome has been added to Chrome...\" appears. " + "In the top right corner the icon of DuckDuckGo is viewed.", 4}, Step{"Press ALT + G.", "In the top right corner a pop up appears with a search bar inside.", 5}, }, { Step{"Click on the arrow down in the bottom center.", "The page scrolls down.", 1}, Step{"Click on the button \"Add DuckDuckGo to Edge\".", "The site \"Take Back Your Privacy! ...\" is displayed.", 2}, Step{"Follow the instructions on this site. Open a new tap and type \"SystemTestPortal\" " + "into the search bar.", "The search engine you used was DuckDuckGo (i.e the URL in the search bar " + "starts with \"https://duckduckgo.com/\").", 3}, }}
ExampleSteps is slice of exemplary Step-slices for use in tests and initialization
Functions ¶
func CalculateDuration ¶
CalculateDuration calculates the durationHours and durationMin for testsequences
func CalculateSUTVariants ¶ added in v1.2.0
CalculateSUTVariant calculates the applicable sut variants
func ContainsVariant ¶ added in v1.2.0
containsVariantchecks if the variantList contains the given variant
func GetProtocolNr ¶ added in v1.5.0
func GetProtocolNr(rl ProtocolLister, testVersion id.TestVersionID) (int, error)
getProtocolNr returns a new id, which is unique for the given test version the new, returned id will be blocked and will not be returned again
Types ¶
type Case ¶
type Case struct { Id int64 CreatedAt time.Time `xorm:"created"` // Foreign Key ----------------| ProjectID int64 Name string Project id.ProjectID `xorm:"-"` Labels []*project.Label `xorm:"-"` TestCaseVersions []CaseVersion `xorm:"-"` }
The Case struct contains the information needed for describing a test case
type CaseExecutionProtocol ¶ added in v0.10.0
type CaseExecutionProtocol struct { Id int64 TestVersion id.TestVersionID // The version of the case that belong to this protocol ProtocolNr int SUTVersion string SUTVariant string ExecutionDate time.Time UserName string `xorm:"-"` // The tester that executed this test IsAnonymous bool // Whether the execution was anonymous Result Result Comment string OtherNeededTime duration.Duration PreconditionResults []PreconditionResult `xorm:"-"` StepProtocols []StepExecutionProtocol `xorm:"-"` }
CaseExecutionProtocol contains all information relating to an execution of a test case
func NewCaseExecutionProtocol ¶ added in v0.10.0
func NewCaseExecutionProtocol(caseProtocolLister ProtocolLister, preconditionResults []PreconditionResult, caseVersion id.TestVersionID, SUTVariant string, SUTVersion string, neededTime duration.Duration, stepCount int, userName string, isAnonymous bool) (CaseExecutionProtocol, error)
NewCaseExecutionProtocol creates a new execution protocol of a test case execution with the given information
func (CaseExecutionProtocol) DeepCopy ¶ added in v0.10.0
func (prt CaseExecutionProtocol) DeepCopy() CaseExecutionProtocol
DeepCopy returns a copy, that is completely independent of its original.
func (CaseExecutionProtocol) Equals ¶ added in v0.10.0
func (prt CaseExecutionProtocol) Equals(in interface{}) bool
Equals compares two CaseExecutionProtocols and returns true, if these two are equal. If in is nil, Equals will return false.
func (*CaseExecutionProtocol) Finish ¶ added in v0.10.0
func (prt *CaseExecutionProtocol) Finish(result Result, comment string, neededTime duration.Duration)
Finish will finish the Protocol and saves over all Data.
func (*CaseExecutionProtocol) GetNeededTime ¶ added in v0.10.0
func (prt *CaseExecutionProtocol) GetNeededTime() duration.Duration
GetNeededTime returns the summed up time, needed for this execution so far.
func (CaseExecutionProtocol) ID ¶ added in v0.10.0
func (prt CaseExecutionProtocol) ID() id.ProtocolID
ID returns a caseProtocols id
func (*CaseExecutionProtocol) IsFinished ¶ added in v0.10.0
func (prt *CaseExecutionProtocol) IsFinished() bool
IsFinished checks, if the TestCase was executed till end or was interrupted and isn't completed yet.
func (*CaseExecutionProtocol) SaveStep ¶ added in v0.10.0
func (prt *CaseExecutionProtocol) SaveStep(stepNr int, observedBehavior string, result Result, comment string, neededTime duration.Duration)
SaveStep will be called, if the user executed one test step. The results of the execution will be saved to the protocol. stepNr starts with step 1.
type CaseProtocolGetter ¶ added in v1.0.0
type CaseProtocolGetter interface { // GetCaseExecutionProtocol gets the protocol with given id GetCaseExecutionProtocol(protocolID id.ProtocolID) (CaseExecutionProtocol, error) }
CaseProtocolGetter is used to get a specific protocols for a given protocolID.
type CaseVersion ¶
type CaseVersion struct { VersionNr int Message string IsMinor bool Description string Preconditions []Precondition Versions map[string]*project.Version Duration duration.Duration Steps []Step CreationDate time.Time Case id.TestID }
CaseVersion contains the information needed for describing a version of a test case
func NewTestCaseVersion ¶
func NewTestCaseVersion(version int, isMinor bool, message, description string, preconditions []Precondition, versions map[string]*project.Version, dur duration.Duration, testcase id.TestID) CaseVersion
NewTestCaseVersion creates a new version for a test case Returns the created test case version
func (CaseVersion) ID ¶ added in v0.9.0
func (tcv CaseVersion) ID() id.TestVersionID
ID returns a testcase versions id
type Precondition ¶ added in v1.3.0
type PreconditionResult ¶ added in v1.3.0
type PreconditionResult struct { Precondition Precondition Result string }
PreconditionResult contains information about the state of a precondition for an execution
type ProtocolLister ¶ added in v0.10.0
type ProtocolLister interface { // GetTestVersionProtocols gets the protocols for the testVersion with given id GetTestVersionProtocols(testVersionID id.TestVersionID) ([]id.ProtocolID, error) // GetCaseExecutionProtocol gets the caseProtocol related to the protocolID GetCaseExecutionProtocol(protocolID id.ProtocolID) (CaseExecutionProtocol, error) }
ProtocolLister is used to list protocols for a given testVersion.
type Result ¶
type Result int
Result is the type to describe the actual outcome of a test step execution
Pass, PartiallySuccessful, Fail and NotAssessed are possible values of the type Result
func GetResultFromString ¶ added in v1.1.0
GetResultFromString returns a valid result for a correct string
func (Result) PrettyString ¶ added in v1.7.0
String returns the result as a prettier string
type Sequence ¶
type Sequence struct { Id int64 CreatedAt time.Time `xorm:"created"` // Foreign Key ----------------| ProjectId int64 Name string Project id.ProjectID `xorm:"-"` Labels []*project.Label `xorm:"-"` SequenceVersions []SequenceVersion `xorm:"-"` }
The Sequence struct contains information for describing a test sequence
func NewTestSequence ¶
func NewTestSequence(name, description string, preconditions []Precondition, cases []Case, project id.ProjectID) (Sequence, error)
NewTestSequence creates a new test sequence with the given information
type SequenceExecutionProtocol ¶ added in v0.10.0
type SequenceExecutionProtocol struct { Id int64 TestVersion id.TestVersionID ProtocolNr int Result Result UserName string `xorm:"-"` // "Tester" in db IsAnonymous bool SUTVersion string SUTVariant string ExecutionDate time.Time OtherNeededTime duration.Duration PreconditionResults []PreconditionResult `xorm:"-"` CaseExecutionProtocols []id.ProtocolID `xorm:"-"` }
SequenceExecutionProtocol contains all information relating to an execution of a test sequence itself. Data referring to the single test cases are saved in the corresponding CaseExecutionProtocol
func NewSequenceExecutionProtocol ¶ added in v0.10.0
func NewSequenceExecutionProtocol(sequenceProtocolLister ProtocolLister, preconditionResult []PreconditionResult, sequenceVersion id.TestVersionID, sutVariant string, sutVersion string, neededTime duration.Duration, userName string, isAnonymous bool) (SequenceExecutionProtocol, error)
NewSequenceExecutionProtocol creates a new execution protocol of a test sequence execution with the given information
func (*SequenceExecutionProtocol) AddCaseExecutionProtocol ¶ added in v0.10.0
func (s *SequenceExecutionProtocol) AddCaseExecutionProtocol(caseProtocol CaseExecutionProtocol)
AddCaseExecutionProtocol adds an case protocol to the sequence protocol
func (SequenceExecutionProtocol) Equals ¶ added in v0.10.0
func (s SequenceExecutionProtocol) Equals(in interface{}) bool
Equals compares two SequenceExecutionProtocol and returns true, if these two are equal. The contained CaseExecutionProtocols will be compared too. If in is nil, Equals will return false.
func (SequenceExecutionProtocol) ID ¶ added in v0.10.0
func (s SequenceExecutionProtocol) ID() id.ProtocolID
ID returns a sequenceProtocols id
func (*SequenceExecutionProtocol) UpdateResult ¶ added in v1.5.0
func (s *SequenceExecutionProtocol) UpdateResult(cpg CaseProtocolGetter) error
updateResult calculates and set the overall result of the sequenceProtocol out of all the contained case-results. The rules for the calculation: At least one Fail -> fail No Fail, at least one PartiallySuccessful -> PartiallySuccessful No Fail, at least one NotAssessed but not only -> PartiallySuccessful Only Pass -> Pass Only NotAssessed -> NotAssessed Suppress linter "not used" nolint: megacheck
type SequenceInfo ¶
SequenceInfo contains meta information for a SequenceVersion. This data depends on the cases that the sequence contains.
type SequenceVersion ¶
type SequenceVersion struct { VersionNr int Message string IsMinor bool Description string Preconditions []Precondition CreationDate time.Time Cases []Case SequenceInfo SequenceInfo Testsequence id.TestID }
SequenceVersion contains information for describing a version of a test sequence
func NewTestSequenceVersion ¶
func NewTestSequenceVersion(version int, isMinor bool, message, description string, preconditions []Precondition, cases []Case, testsequence id.TestID) (SequenceVersion, error)
NewTestSequenceVersion creates a new version for a test case Returns the test case the version belongs to
func UpdateInfo ¶ added in v1.0.0
func UpdateInfo(ts *SequenceVersion) (*SequenceVersion, error)
UpdateInfo updates the SequenceInfo of a SequenceVersion, populating it with generated data
func (SequenceVersion) CountIncludedSteps ¶
func (tsv SequenceVersion) CountIncludedSteps() int
CountIncludedSteps returns the total number of steps summed over all included cases
func (SequenceVersion) CountIncludedStepsUpTo ¶
func (tsv SequenceVersion) CountIncludedStepsUpTo(maxCaseNr int) int
CountIncludedStepsUpTo returns the total number of steps summed over all included cases up to maxCaseNr the numeration starts with 0 and maxCaseNr itself will be included
func (SequenceVersion) ID ¶ added in v0.9.0
func (tsv SequenceVersion) ID() id.TestVersionID
ID returns a test sequences id
func (SequenceVersion) ItemEstimatedDuration ¶
func (tsv SequenceVersion) ItemEstimatedDuration() (minutes int, hours int)
ItemEstimatedDuration returns the estimated Duration for the sequence
type Step ¶
The Step struct contains information for describing a single step of a test case
func NewTestStep ¶
NewTestStep creates a new Step with action and expected result from parameters
type StepExecutionProtocol ¶ added in v0.10.0
type StepExecutionProtocol struct { NeededTime duration.Duration ObservedBehavior string Result Result Comment string Visited bool }
StepExecutionProtocol contains all information relating to an execution of a test step
func (StepExecutionProtocol) DeepCopy ¶ added in v0.10.0
func (s StepExecutionProtocol) DeepCopy() StepExecutionProtocol
DeepCopy returns a copy, that is completely independent of its original, but equal.