Abstract
It is widely recognized that most software project failures result from problems about software requirements. Early verification of requirements can facilitate many problems associated with the software developments. The requirements testing is useful to clarify problematical information during the requirements stage. However, for any complex and sizeable system, the development of requirements typically involves different stakeholders with different concerns. Then the requirements specifications are increasingly developed in a distributed fashion. This makes requirements testing rather difficult. The main contribution of this paper is to present an answer set programming-based logical approach to testing requirements specifications. Informally, for an individual requirements test case, we consider the computation of the output of the system-to-be in requirements testing as a problem of answer set programming. In particular, the expected responses of the requirements test case is viewed as an intended solution to this problem. Based on the requirements and the input of the requirements test case, we design a logic program whose answer sets correspond to solutions of the problem. Then the testing is performed by an answer set solver. Finally, we identify the disagreement between the answer sets and the intended solution to detect the defects in software requirements.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Davis, M.: Software Requirements: Objects, Functions, and States. Prentice Hall, Englewood Cliffs (1993)
Leffingwell, D.: Calculating the return on investment from more effective requirements management. American Programmer 10, 13–16 (1997)
CHAOS: Software Development Report by the Standish Group (1995), http://www.standishgroup.com/chaos.html
Ibanez, M.: European user survey analysis. Tech. rep. ESI report TR95104. European Software Institute, Zamudio, Spain (1996), www.esi.es
Davis, A., Jordan, K., Nakajima, T.: Elements underlying the specification of requirements. Ann. Softw. Eng. 3, 63–100 (1997)
Leffingwell, D., Widrig, D.: Managing Software Requirements: A Use Case Approach. Addison-Wesley, Boston (2003)
Wiegers, K.: Software Requirements, 2nd edn. Microsoft Press, Redmond (2003)
Beizer, B.: Software Testing Techniques, 2nd edn. Van Nostrand Reinhold, New York (1990)
Ambler, S.: Reduce development costs with use-case scenario testing. Software Development 3, 52–61 (1995)
Collard, R.: Test design. Software Testing and Quality Engineering 1, 30–37 (1999)
Hsia, P., Kung, D., Sell, C.: Software requirements and acceptance testing. Annals of software Engineering 3, 291–317 (1997)
Gervasi, V., Zowghi, D.: Reasoning about inconsistencies in natural language requirements. ACM Transaction on Software Engineering and Methodologies 14, 277–330 (2005)
Lifschitz, V.: Answer set planning. In: International Conference on Logic Programming, pp. 23–37. Massachusetts Institute of Technology (1999)
Niemela, I.: Logic programs with stable model semantics as a constraint programming paradigm. Annals of Mathematics and Artificial Intelligence 25, 72–79 (1998)
Marek, W., Truszczynski, M.: Stable models and an alternative logic programming paradigm. In: The Logic Programming Paradigm: a 25-Year Perspective, pp. 375–398. Springer, Heidelberg (1999)
Mu, K., Jin, Z., Lu, R.: Inconsistency-based strategy for clarifying vague software requirements. In: Zhang, S., Jarvis, R.A. (eds.) AI 2005. LNCS (LNAI), vol. 3809, pp. 39–48. Springer, Heidelberg (2005)
Niemela, I., Simons, P., Syrjanen, T.: Smodels: A system for answer set programming. CoRR cs.AI/0003033 (2000)
Leone, N., Pfeifer, G.: The dlv system for knowledge representation and reasoning. ACM Transactions on Computational Logic 7, 499–562 (2006)
Lin, F., Zhao, Y.: Assat: Computing answer sets of a logic program by sat solver. Artificial Intelligence 157, 115–137 (2004)
Lifschitz, V.: Foundations of logic programming. In: Principles of Knowledge Representation, pp. 69–127. CSLI Publications, Stanford (1996)
Mu, K., Jin, Z., Lu, R., Peng, Y.: Handling non-canonical software requirements based on annotated predicate calculus. Knowledge and Information Systems 11, 85–104 (2007)
Spanoudakis, G., Finkelstein, A.: Reconciling requirements: a method for managing interference, inconsistency and conflict. Annals of Software Engineering 3, 433–457 (1997)
Spanoudakis, G., Zisman, A.: Inconsistency management in software engineering: Survey and open research issues. In: Chang, S.K. (ed.) Handbook of Software Engineering and Knowledge Engineering, pp. 329–380. World Scientific Publishing Co., Singapore (2001)
Hunter, A., Nuseibeh, B.: Managing inconsistent specification. ACM Transactions on Software Engineering and Methodology 7, 335–367 (1998)
Easterbrook, S., Chechik, M.: A framework for multi-valued reasoning over inconsistent viewpoints. In: Proceedings of International Conference on Software Engineering (ICSE 2001), Toronto, Canada, pp. 411–420 (2001)
Chechik, M., Devereux, B., Easterbrook, S.: Efficient multiple-valued model-checking using lattice representations. In: Proceedings of the International Conference on Concurrency Theory, Aalborg, Denmark, pp. 21–24 (2001)
Zowghi, D., Gervasi, V.: On the interplay between consistency, completeness, and correctness in requirements evolution. Information and Software Technology 45, 993–1009 (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Mu, K., Zhang, Q., Jin, Z. (2009). Verifying Software Requirements Based on Answer Set Programming. In: Karagiannis, D., Jin, Z. (eds) Knowledge Science, Engineering and Management. KSEM 2009. Lecture Notes in Computer Science(), vol 5914. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-10488-6_27
Download citation
DOI: https://doi.org/10.1007/978-3-642-10488-6_27
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-10487-9
Online ISBN: 978-3-642-10488-6
eBook Packages: Computer ScienceComputer Science (R0)