User:Usydwork/sandbox
{{User sandbox}}
= Acceptance Criteria (Software Engineering) =
{{Infobox
|above = Acceptance Criteria
|abovestyle = background:#cfc;
| image = File:Acceptance Criteria.png
|headerstyle = background:#ccf;
|header1 = Usage
| caption = An example of traditional approach for Acceptance Criteria
| label2 = Methods
| data2 =
| label3 = Compoenents
| data3 = Entry Criteria, Exit Criteria,Testing activity, Input(Parameter), ouput
| label4 = Stakholders
| data4 = Customers, end-users and testers
}}
Acceptance criteria is a form of documentation in Software development, defining a specific set of goals and requirements.{{Cite book|url=http://worldcat.org/oclc/827207542|title=Fundamentals of Software Testing.|last=Homes|first=Bernard|date=2013|publisher=Wiley|year=|isbn=9781118603093|location=|pages=21|oclc=827207542}} The purpose of Acceptance Criteria is to satisfy the user or customer requirement through clearly listing the expectations for a shippable software product.{{Cite journal|last=Gu|first=Tingyang|last2=Li|first2=Jiao|date=2011|title=A discussion on the software programming technology|url=http://dx.doi.org/10.1109/icrms.2011.5979371|journal=The Proceedings of 2011 9th International Conference on Reliability, Maintainability and Safety|publisher=IEEE|volume=|pages=658|doi=10.1109/icrms.2011.5979371|isbn=9781612846675|via=}} Development of a software project is primarily based on the reasonable expectation from the client.{{Cite book|url=http://worldcat.org/oclc/827207542|title=Fundamentals of Software Testing.|last=Homes|first=Bernard|date=2013|publisher=Wiley|year=|isbn=9781118603093|location=|pages=63, 103|oclc=827207542}} The result of the project requires to be "accepted" before delivery as a shippable product.{{Cite journal|last=Gu|first=Ting yang|last2=Li|first2=Jiao|date=2011|title=A discussion on the software programming technology|url=http://dx.doi.org/10.1109/icrms.2011.5979371|journal=The Proceedings of 2011 9th International Conference on Reliability, Maintainability and Safety|publisher=IEEE|volume=|pages=660|doi=10.1109/icrms.2011.5979371|isbn=9781612846675|via=}} Therefore, setting specific guidelines can eliminate unnecessary assumption between the customer and the developers.{{Cite book|url=http://worldcat.org/oclc/827207542|title=Fundamentals of Software Testing.|last=Homes|first=Bernard|date=2013|publisher=Wiley|year=|isbn=9781118603093|location=|pages=172|oclc=827207542}}
Acceptance testing can only be implemented if the Acceptance Criteria exists.{{Cite book|url=http://worldcat.org/oclc/707078807|title=Testing IT : an off-the-shelf software testing process|last=Watkins|first=John|date=2011|publisher=Cambridge University Press|year=|isbn=9781139010290|location=|pages=77|oclc=707078807}} Acceptance tests use acceptance criteria as a testing guideline to carry out if the shippable project can be accepted or not. The difference with Acceptance Testing is in the nature of enactment of the “test”. Acceptance Criteria focuses on how the requirements are fulfilled from various perspectives from different stakeholders instead of application to the implementation.{{Cite book|url=http://worldcat.org/oclc/707078807|title=Testing IT : an off-the-shelf software testing process|last=Watkins|first=John|date=2011|publisher=Cambridge University Press|year=|isbn=9781139010290|location=|pages=78|oclc=707078807}}{{Cite journal|last=Rashid|first=Awais|last2=Weckert|first2=John|last3=Lucas|first3=Richard|date=2009|title=Software Engineering Ethics in a Digital World|url=http://dx.doi.org/10.1109/mc.2009.200|journal=Computer|volume=42|issue=6|pages=39|doi=10.1109/mc.2009.200|issn=0018-9162|via=}}
__TOC__
Importance of Acceptance Criteria
Acceptance Criteria demonstrates the expectation of the client, which aims to achieve the highest quality system. System function(input and output) and functional (performance, interface and environment) can be summarised in Acceptance Criteria.{{Cite journal|last=Gu|first=Tingyang|last2=Li|first2=Jiao|date=2011|title=A discussion on the software programming technology|url=http://dx.doi.org/10.1109/icrms.2011.5979371|journal=The Proceedings of 2011 9th International Conference on Reliability, Maintainability and Safety|publisher=IEEE|volume=|pages=659|doi=10.1109/icrms.2011.5979371|isbn=9781612846675|via=}} Discovering a system consideration defect at the beginning of the design phrase produces the most economically efficient way to reduce the cost of fixing the defect.{{Cite book|url=http://worldcat.org/oclc/827207542|title=Fundamentals of Software Testing.|last=Homes|first=Bernard|date=2013|publisher=Wiley|year=|isbn=9781118603093|location=|pages=12|oclc=827207542}}
The major cause of system and software failure are often due to inadequate requirement and implementation of Acceptance Criteria.{{Cite book|url=http://worldcat.org/oclc/827207542|title=Fundamentals of Software Testing.|last=Homes|first=Bernard|date=2013|publisher=Wiley|year=|isbn=9781118603093|location=|pages=|oclc=827207542}} A mission-critical failure can cause serious harm, with operational failure as a consequence. Moreover, potential litigation and losing public confidence can be a problematic extension, resulting in significant financial loss for organisations.{{Cite book|url=http://worldcat.org/oclc/707078807|title=Testing IT : an off-the-shelf software testing process|last=Watkins|first=John|date=2011|publisher=Cambridge University Press|year=|isbn=9781139010290|location=|pages=13|oclc=707078807}}
= Failures of Software development =
Bank, government services, aerospace (such as the system in airplane or rocket), technology companies etc. can all be affected by system failure.{{Cite book|url=http://worldcat.org/oclc/827207542|title=Fundamentals of Software Testing.|last=Homes|first=Bernard|date=2013|publisher=Wiley|year=|isbn=9781118603093|location=|pages=|oclc=827207542}} History presents many past events of failures in large scale software projects because of the lack of care or unthoughtful Acceptance Criteria that leads to disastrous consequence such as significant financial loss and deaths. Therefore, Acceptance Criteria acts as a critical written document that ensures the systems or software can operate with the expected results. {{Cite book|url=http://worldcat.org/oclc/827207542|title=Fundamentals of Software Testing|last=Homes|first=Bernard|date=2013|publisher=Wiley|year=|isbn=9781118603093|location=|pages=|oclc=827207542}}
Components of Acceptance Criteria
Acceptance Criteria can have different characteristics which can be functional, ergonomic, behaviour, sensory and temporal.
- An Objective: The proposed aim of the Criteria.{{Cite book|url=http://worldcat.org/oclc/827207542|title=Fundamentals of Software Testing.|last=Homes|first=Bernard|date=2013|publisher=Wiley|year=|isbn=9781118603093|location=|pages=10|oclc=827207542}}
- Scope of Acceptance Criteria: Specific processes of the Criteria to achieve the desired outcome{{Cite book|url=http://worldcat.org/oclc/707078807|title=Testing IT : an off-the-shelf software testing process|last=Watkins|first=John|date=2011|publisher=Cambridge University Press|year=|isbn=9781139010290|location=|pages=11|oclc=707078807}}
- Criteria for user, operations and product:
- Entry Criteria: Defines how a test can commence{{Cite book|url=http://worldcat.org/oclc/707078807|title=Testing IT : an off-the-shelf software testing process|last=Watkins|first=John|date=2011|publisher=Cambridge University Press|year=|isbn=9781139010290|location=|pages=149|oclc=707078807}}
- Exit Criteria: Defines when the test can finish and deliver output
- The activity: The defined process obtain input and produce the output
- Input and output: Different boundary can be set for the inputs. The output is treated as a result.
Consideration in Acceptance Criteria
File:Advanced Higher Computing - Software Development.pdf takes part of all phrases of consideration|alt=]]
The following has a list of questions to ask before creating Acceptance Criteria.
Are the results of Acceptance Criteria measurable? The results must be measurable to ensure that the target can be fulfilled.{{Cite book|url=http://worldcat.org/oclc/707078807|title=Testing IT : an off-the-shelf software testing process|last=Watkins|first=John|date=2011|publisher=Cambridge University Press|year=|isbn=9781139010290|location=|pages=99-100|oclc=707078807}}
Who or which department is responsible for testing the code? Proper guidance and competencies should be provided along with the Acceptance Criteria to standardise the testing process as testers will be {{Cite book|url=http://worldcat.org/oclc/707078807|title=Testing IT : an off-the-shelf software testing process|last=Watkins|first=John|date=2011|publisher=Cambridge University Press|year=|isbn=9781139010290|location=|pages=38|oclc=707078807}}
What are the boundaries for inputs and outputs? A well-defined relationship between inputs and output can prevent errors such as overflow and calculation errors.
How often or when does the testing occur? The outcome of implementing the acceptance Criteria can be affected by the consistency of measurement.
= An example of the Campus Management System =
Educational institutions are now facing a competitive challenge which wishes to use information technology to contrive a system for better user experience and maintenance.{{Cite journal|last=Shaffiei|first=Zatul Amilah|last2=Mokhsin|first2=Mudiana|last3=Hamidi|first3=Saidatul Rahah|last4=Yusof|first4=Noreha Mohamed|date=2011|title=A study of user's acceptance and perception towards Campus Management System (CMS) using Technology Acceptance Model (TAM)|url=http://dx.doi.org/10.1109/iceed.2011.6235374|journal=2011 3rd International Congress on Engineering Education (ICEED)|publisher=IEEE|volume=|pages=128|doi=10.1109/iceed.2011.6235374|isbn=9781457712593|via=}} Acceptance criteria needs to take an essential role as the system has tailored with the user’s needs and suit the user-friendliness as a modern expectation.{{Cite journal|last=Shaffiei|first=Zatul Amilah|last2=Mokhsin|first2=Mudiana|last3=Hamidi|first3=Saidatul Rahah|last4=Yusof|first4=Noreha Mohamed|date=2011|title=A study of user's acceptance and perception towards Campus Management System (CMS) using Technology Acceptance Model (TAM)|url=http://dx.doi.org/10.1109/iceed.2011.6235374|journal=2011 3rd International Congress on Engineering Education (ICEED)|publisher=IEEE|volume=|pages=129|doi=10.1109/iceed.2011.6235374|isbn=9781457712593|via=}} Some of the essential techniques are to identify the demographics, understand about users needs of the technology, investigate how satisfied are the end-users with any new system, and to analyse the current usage of CMS.{{Cite journal|last=Shaffiei|first=Zatul Amilah|last2=Mokhsin|first2=Mudiana|last3=Hamidi|first3=Saidatul Rahah|last4=Yusof|first4=Noreha Mohamed|date=2011|title=A study of user's acceptance and perception towards Campus Management System (CMS) using Technology Acceptance Model (TAM)|url=http://dx.doi.org/10.1109/iceed.2011.6235374|journal=2011 3rd International Congress on Engineering Education (ICEED)|publisher=IEEE|volume=|pages=130|doi=10.1109/iceed.2011.6235374|isbn=9781457712593|via=}}
= Verification and Validation =
File:Systems Engineering Process II.svg method for fulfilling the Acceptance Criteria.{{Cite book|url=http://worldcat.org/oclc/1085149709|title=REQUIREMENTS ENGINEERING.|last=Dick|first=Jeremy|last2=Hull|first2=Elizabeth|last3=Jackson|first3=Ken|first4=|date=2018|publisher=SPRINGER INTERNATIONAL PU|year=|isbn=3319869973|location=|pages=91-92|oclc=1085149709}} |alt=]]
Verification and validation are two different processes to determine if the Acceptance Criteria have been fulfilled. They both have the objective of ensuring the well-defined Criteria.
Verification: Are were building the product right?The above definition provides a distinct difference in how Verification and validation apply to Acceptance Criteria. Verification sets the guidelines if the project has used good practice during the system development. Validation focuses on the outcome if the formal requirements are adequately satisfied. {{Cite book|url=http://worldcat.org/oclc/707078807|title=Testing IT : an off-the-shelf software testing process|last=Watkins|first=John|date=2011|publisher=Cambridge University Press|year=|isbn=9781139010290|location=|pages=12|oclc=707078807}}{{Citation|last=Deuff|first=Dominique|title=Description of the User-Centered Agile Method|date=2013-05-06|url=http://dx.doi.org/10.1002/9781118574829.ch4|work=User-Centered Agile Method|volume=|pages=82–83|publisher=John Wiley & Sons, Inc.|isbn=9781118574829|access-date=2019-05-19|last2=Cosquer|first2=Mathilde}}Validation: Are we building the right product?
= Ethics =
Although the operational and functional measure of a system or software is indispensable for Acceptance Criteria, ethics is one of the notable considerations as the accessibility to the web platform impact the day-to-day life.{{Cite journal|last=Rashid|first=Awais|last2=Weckert|first2=John|last3=Lucas|first3=Richard|date=2009|title=Software Engineering Ethics in a Digital World|url=http://dx.doi.org/10.1109/mc.2009.200|journal=Computer|volume=42|issue=6|pages=37|doi=10.1109/mc.2009.200|issn=0018-9162|via=}} Cultural, ethnic, religious, social, sexual factors are all part of ethics.{{Cite journal|last=Rashid|first=Awais|last2=Weckert|first2=John|last3=Lucas|first3=Richard|date=2009|title=Software Engineering Ethics in a Digital World|url=http://dx.doi.org/10.1109/mc.2009.200|journal=Computer|volume=42|issue=6|pages=36|doi=10.1109/mc.2009.200|issn=0018-9162|via=}} Large scale platform such as online games and social media can cause an unpredictable adverse effect, causing cause both benefits and harm due to overuse or misuse.{{Cite journal|last=Rashid|first=Awais|last2=Weckert|first2=John|last3=Lucas|first3=Richard|date=2009|title=Software Engineering Ethics in a Digital World|url=http://dx.doi.org/10.1109/mc.2009.200|journal=Computer|volume=42|issue=6|pages=35|doi=10.1109/mc.2009.200|issn=0018-9162|via=}} The “dual-use” of web innovation is a tough dilemma for both users and the social responsibility of the developers Therefore, responsibility and accountability of balancing the interests of all parties in Acceptance Criteria is part of the design consideration for Acceptance Criteria. {{Cite journal|last=Rashid|first=Awais|last2=Weckert|first2=John|last3=Lucas|first3=Richard|date=2009|title=Software Engineering Ethics in a Digital World|url=http://dx.doi.org/10.1109/mc.2009.200|journal=Computer|volume=42|issue=6|pages=38-39|doi=10.1109/mc.2009.200|issn=0018-9162|via=}}
Acceptance Criteria for Agile approach
Instead of the traditional method such as waterfall model for creating Acceptance criteria at the beginning, Acceptance Criteria is employed quickly and in short iterations from agile practices, enabling the action of building the small and shippable product in a short time frame.{{Citation|last=Deuff|first=Dominique|title=Description of the User-Centered Agile Method|date=2013-05-06|url=http://dx.doi.org/10.1002/9781118574829.ch4|work=User-Centered Agile Method|volume=|pages=81|publisher=John Wiley & Sons, Inc.|isbn=9781118574829|access-date=2019-05-19|last2=Cosquer|first2=Mathilde}} The requirement from Acceptance Criteria is the result of effective communication from agile meeting, retrospectives and workshop. As the agile works in an iterative and quick manner, the Acceptance Criteria can flexibly capture requirement from the client for every sprint. The small and nimble Acceptance Criteria enables the project development to be more responsive to the changes in client requirement. {{Citation|last=Deuff|first=Dominique|title=Description of the User-Centered Agile Method|date=2013-05-06|url=http://dx.doi.org/10.1002/9781118574829.ch4|work=User-Centered Agile Method|volume=|pages=9-10|publisher=John Wiley & Sons, Inc.|isbn=9781118574829|access-date=2019-05-19|last2=Cosquer|first2=Mathilde}}
= Tools =
File:User Story Map in Action.png
Agile practice typically utilises use cases and user stories as part of the highly flexible Acceptance Criteria, which can help to capture requirements from different stakeholders perspectives.{{Citation|last=Deuff|first=Dominique|title=Description of the User-Centered Agile Method|date=2013-05-06|url=http://dx.doi.org/10.1002/9781118574829.ch4|work=User-Centered Agile Method|volume=|pages=11|publisher=John Wiley & Sons, Inc.|isbn=9781118574829|access-date=2019-05-19|last2=Cosquer|first2=Mathilde}} Clients or developers can then determine the acceptability of the shippable product on an acceptance or rejection basis.{{Citation|last=Deuff|first=Dominique|title=Description of the User-Centered Agile Method|date=2013-05-06|url=http://dx.doi.org/10.1002/9781118574829.ch4|work=User-Centered Agile Method|volume=|pages=98-100|publisher=John Wiley & Sons, Inc.|isbn=9781118574829|access-date=2019-05-19|last2=Cosquer|first2=Mathilde}}
Reference
{{Software engineering}}
{{DEFAULTSORT:Software Development Methodology}}