A Survey of Effective and Efficient Software Testing
|
|
|
- Corey Lester
- 9 years ago
- Views:
Transcription
1 A Survey of Effective and Efficient Software Testing Akalanka Mailewa and Jayantha Herath Susantha Herath Dept. of Computer Science Dept. of Information Systems St. Cloud State University St. Cloud State University St. Cloud, Minnesota St. Cloud, Minnesota Abstract The development of large software systems is a complex and error prone process. Errors may occur at any stage of software development. These errors, sometimes referred to as bugs, can cause great losses in terms of both time and money if not identified and removed as early as possible. Software testing plays a major role in software development life cycle (SDLC). It ceases the propagation of errors and thus decreases costs. But software testing itself can be costly. Research point out more than 50% of the total cost of development is devoted to software testing. However, testing is essential to ensure that the software is capable of doing what it was designed to do. Testing becomes expensive since it takes much time. This is because of the need to test many combinations of its functions, integrity, performance and so on, which can be called as test cases. A software company's goal would be to reduce the testing time, so that they can save money and deliver the product much faster to the customer. Testing time can be reduced in two main ways, first by reducing number of test cases and second by automating repeatedly tested areas. This paper will discuss fundamentals of testing such as importance and difference of verification and validation, recent advances in agile software testing, testing throughout the SDLC and testing methods, levels and types. Finally as a conclusion it will also shed some light on combinatorial testing to reduce number of test cases and test automation to reduce manual testing time as the solutions to long testing time problem.
2 1 Introduction Software testing is a process of executing a program or application with the intent of finding the software bugs. It can also be stated as the process of validating and verifying that a software program or application or product meets the business and technical requirements, works as expected and can be implemented with the same characteristics [1], in other words testing means comparing the actual outcome and expected outcome. Effectiveness and Efficiency plays a major role in software testing. Test effectiveness is the relative ability of testing strategy to find bugs in the software. Test efficiency is the relative cost of finding a bug in the software under test. One of the major problems in software industry is testing time. Time means money and hence the entire process is costly. Therefore to reduce testing cost it is necessary to reduce manual repeatedly testing time and number of test cases generated for particular system. Testing is a never ending process, i.e. it cannot be said that the particular software is 100% error free. Therefore we have to define when to start and when to stop testing. In order to maintain and manage entire testing process it is always better to have a Software Testing Life Cycle (STLC) inside the Software Development Life Cycle (SDLC). 1.1 Software verification and validation Both verification - a form of static testing - and validation - a form of dynamic testing - play a major role in software testing Verification Verification makes sure that the product is designed to deliver all functionality to the customer. Verification is done at the starting of the development process. It includes reviews and meetings, walkthroughs, inspection, etc. to evaluate documents, plans, code, requirements and specifications. It answers the questions like: Am I building the product right? Am I accessing the data right (in the right place; in the right way)? [2]. According to the Capability Maturity Model (CMMI-SW v1.1) we can also define verification as the process of evaluating software to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase. [IEEE- STD-610] Validation Validation is about determining if the system complies with the requirements and performs functions for which it is intended for and meets the organization s goals and user needs. Validation is done at the end of the development process and takes place after verifications are completed. It answers the question like: Am I building the right product? Am I accessing the right data (in terms of the data required to satisfy the requirement). Validation performed after a work product is produced against established criteria ensuring that the product integrates correctly into the environment also determination of 1
3 correctness of the final software product by a development project with respect to the user needs and requirements [2]. According to the Capability Maturity Model (CMMI-SW v1.1) we can also define validation as the process of evaluating software during or at the end of the development process to determine whether it satisfies specified requirements. [IEEE-STD-610] Summary Criteria Verification Validation Definition The process of evaluating workproducts (not the actual final product) of a development phase to determine whether they meet the specified requirements for that phase. The process of evaluating software during or at the end of the development process to determine whether it satisfies specified business requirements. Objective To ensure that the product is being built according to the requirements and design specifications. In other To ensure that the product actually meets the user s needs, and that the specifications were correct in the first words, to ensure that work place. In other words, to demonstrate products meet their specified that the product fulfills its intended use requirements. when placed in its intended environment. Question Are we building the product right? Are we building the right product? Evaluation Items Activities Reviews Walkthroughs Inspections Plans, Requirement Specs, Design Specs, Code, Test Cases The actual product/software. Testing Table 1: The difference between verification and validation 1.2 Some important aspects of testing Here the paper focuses on who is going to test the product and most important two things, when to start testing and when to stop testing. As mentioned repeatedly testing is costly, if an organization tests every aspect of software with no time limit it is a waste of time and thus a waste of money. Therefore deciding when to start and when to stop is very important in software testing Who does testing? While large IT companies have their own test team, their smaller counterparts may have only a single tester. Some organizations hire software testers from outside or outsource testing process. The testers' responsibility is to evaluate the software with the given requirements. Sometimes developers and testers may conduct unit testing where they may 2
4 separately test each individual component. Unit testing can take place before the whole system has been developed. Following people are involved in testing of a system [3]. Software Tester Software Developer Project Lead/Manager End User Different companies have difference designations for those who test the software such as Software Tester, Software Quality Assurance Engineer, and QA Analyst etc. [3]. This is on the basis of their experience and knowledge When to Start Testing? Testing may take place at any stage of Software Development Life Cycle (SDLC), but it is not possible to test the software or certain parts of it at any time during its cycle. An early start to testing reduces the cost and time of rework. In SDLC, testing can start from the Requirements Gathering phase and lasts till the deployment of the software. However it also depends on the development model that is being used. For example in Waterfall model formal testing is conducted in the Testing phase, but in incremental model, testing is performed at the end of every increment/iteration. In the end the whole application is tested [3]. Testing is done in different forms at every phase of SDLC. Following situations can also be considered as testing: Analysis and verifications of requirements during requirement gathering phase. Reviewing the design in the design stage. Testing performed by a developer on completion of each section of code. Indirect testing by the end user after implementation When to Stop Testing? This is one of the most difficult questions for a test engineer. Following are few of the common tips on deciding when to stop testing [4]: All the high priority bugs are fixed. The rate at which bugs are found is too small. The testing budget is exhausted. The project duration is completed. The risk in the project is under acceptable limit. Practically, the decision to stop testing is based on the level of the risk acceptable to the management. Though we can never assume that 100 % testing has been done, we can minimize the risk of shipping the product to client with X testing done. The risk can be measured by Risk analysis but for small duration / low budget / low resources project, risk can be deduced by simply: Measuring test coverage and/or Number of test cycles and/or Number of high priority bugs [4]. 3
5 2 Manual testing and automated testing The difference between manual testing and automated testing is discussed in this section of the paper. Executing the test cases manually without any tool support is known as manual testing. Taking tool support and executing the test cases by using automation tool(s) is known as automated testing. Following two sections will discuss the differences in detail with their advantages and disadvantages. 2.1 Manual testing Manual testing is the process through which software developers run tests manually, comparing program expectations and actual outcomes in order to find software defects. These manual tests are no more than the tester using the program as an end user would, and then determining whether or not the program acts appropriately. Manual testing is a good fit for smaller projects as well as companies without significant financial resources [5] Advantages of Manual Testing 1. Software automation tools are expensive. Short-term cost is much lower with manual testing. 2. Automated tests don t necessarily act as human beings. Hence some of the issues the end user might encounter might be overlooked in an automated test. Manual testing, on the other hand, allows the developing program to be used as it would be by an end user. A human user might handle the program in a peculiar way which might give rise to errors that are more likely to be skipped in an automated test but caught with manual testing. 3. Manual tests are flexible than automated tools. Automated tools run according to a set of rules. Test cases are set up and programmed into the automated tool, and then the tests are run. When a change occurs in the project the whole process might have to be repeated. But with manual testing this can be easily incorporated into testing routine. 4. With manual testing, you can quickly see the results. Automatic tests take more time to set up, and sometimes the whole set of tests have to be run before the results are output. Therefore manual tests allow you to test ideas quickly and easily Disadvantages of Manual Testing 1. Certain tests are difficult to be done manually, e.g. low level interface regression testing is extremely difficult to be performed manually. As a result, it is prone to mistakes and overseen when done by manually. Automated testing, once set up, is much better equipped to find errors for this kind of testing. 2. Manual testing can be repetitive and boring no one wants to keep filling out the same forms time after time. As a result, many testers have a hard time staying engaged in this process, and errors are more likely to occur. 4
6 3. With automated testing, if you add data to the program, you can rerun all of the required tests instantly because the tests are already set up. This isn t the case with manual testing. If there is any change to the software, you have to run the tests again by hand. This is valuable time lost. 2.2 Automated testing Automated testing is the process through which automated testing tools run tests that repeat predefined actions, comparing a developing program s expected and actual outcomes. If the program expectations and outcomes align, your project is behaving as it should, and you are likely bug free. If the two don t align, however, there is an issue that needs to be addressed. You ll have to take a look at your code, alter it, and continue to run tests until the actual and expected outcomes align [5] Advantages of Automated Testing 1. Runs tests quickly and effectively: While the initial setup of automated test cases may take a while, once you ve automated your tests, you re good to go. You can reuse tests, which is good news for those of you running regressions on constantly changing code. You won t have to continuously fill out the same information or remember to run certain tests. Everything is done for you automatically. 2. Can be cost effective on the long-run: While automation tools can be expensive shortterm, but they save you money in the long-term. They not only do more than a human can in a given amount of time, they also find defects quicker. This allows your team to react more quickly, saving you both precious time and money. 3. Filling out the same forms time after time can be frustrating. But test automation solves this problem. The process of setting up test cases takes coding and thought, which keeps your best technical minds involved and committed to the process. 4. Everyone can see results: When one person is doing manual testing, the rest of the team can t see the results of the tests being run. With automated tests, however, people can sign into the testing system and see the results. This allows for greater team collaboration and a better final product. 5. Automated testing is more suitable when the project is large (i.e. no. of inputs/ configurations are high), there are many system users, or when filling out forms [5] Disadvantages of Automated Testing 1. The automation tools can be expensive to purchase. As a result, it is important to only use the ones that will give you full, or as close to full coverage, as you can find. 2. While the automation process cuts down on the time it takes to test everything by hand, automated testing is still a time intensive process. A considerable amount of time goes into developing the automated tests and letting them run. 5
7 3. Tools have limitations. While automated tests will detect most bugs in your system, there are limitations. For example, the automated tools cannot test for visual considerations like image color or font size. Changes in these can only be detected by manual testing, which means that not all testing can be done with automatic tools. 2.3 Performance Comparison Following table shows the brief but comprehensive explanation of deference between manual testing and automated testing. Manual Testing Time consuming and tedious: Since test cases are executed by human resources it is slow and tedious. Huge investment in human resources: Test cases need to be executed manually so more testers are required in manual testing. Less reliable: Manual testing is less reliable as tests may not be performed with precision each time because of human errors. Non-programmable: No programming can be done to write sophisticated tests which fetch hidden information. The results are late: programmers cannot see the result until the tester note down, type, print and copy the results. Might catch more of the errors occurring due to human nature as the testers are human beings themselves. Can be cheaper for small software than automated testing. Much better at visual testing. Automation Testing Fast execution: Automation runs test cases significantly faster than human testers. Less investment in human resources: Test cases are executed by using automation tool(s) so lesser number of testers are required in automation testing. More reliable: Automation tests perform precisely same operation each time they are run. Programmable: Testers can program sophisticated tests to bring out hidden information. Quick results: the programmers can see the result real-time in a networked environment. Might skip errors occurring due to human nature as software cannot 'think' as human beings. Can be costly for smaller projects but costeffective for larger projects. Weak at visual testing. Software do not think like humans and thus it cannot decide whether a GUI is attractive, distractive or dull. Table 2: The difference between manual testing and automation testing 6
8 3 Agile Software Testing The word agile more commonly suggests a focused yet rapidly iterative software process adhering to principles that were first outlined in the Agile Manifesto first laid down in The manifesto aimed to promote a more efficient way of developing computer programs and IT systems through a collaborative system of various teams. Today, the agile method has become widely accepted as an effective approach to project management within the mainstream software development and testing community [6]. Agile testing refers to the practice of testing software for bugs or performance issues within the context of an agile workflow [6] [8]. 3.1 Agile QA process Figure 1: The Agile QA process [7] 7
9 In the Agile methods, the work cycle becomes abbreviated. Instead of phases and schedules, it has cadence points which result in completed product increments. Less documentation is required with a focus on code and whether the product piece works. Specification becomes by example with tests for software products based on real examples a product piece in hand functioning. Every two weeks, the direction of a project receives a review making it easy to steer in other directions as conditions change. Quality becomes part of development and becomes everyone s responsibility. By incrementing, inspecting and adapting development cost and time to market becomes reduced. Continual planning of the release optimizes value and maximizes team ability to compete in the marketplace. Included in the process are business people who have a sense of what users need and want. Change becomes welcomed, constant necessary cooperation fosters communication between differing disciplines and adaptability becomes the norm [7] [8]. 3.2 Agile Testing Methodologies Agile Testing has flavors. The method for a particular route of software development must be chosen carefully. Two flavors frequently used by companies are Scrum, and Extreme Programming. A SCRUM framework emphasizes holistic, flexible strategies where development teams work as units on a common goal. Planning and managing a project is decided by a project s operation properties and certainties [7]. Product owner is responsible for the delivery and functionality of three core components in each iteration, development team manages and organizes work in a cycle and Scrum Master who removes all obstacles to progress, sets up Sprint meetings, and sets up the teams. Extreme Programming advocate short development cycles on products that focus on improving the product itself or increasing productivity. It works well in environments where clients have constant change [7] [8] Phases of SCRUM are as follows Test Design: gathers user stories written by the product owner. Short Stories: describe functionalities of system under a test and then tests cases are developed based on the user stories with oversight from business analysts and customers. Test Execution: involves testing carried out in the lab with tester and developer partnered. Defects are recorded, discussed and tracked in daily meeting. Then retests are set up to fix issues. Test Automation: utilizes open source or paid tools to accomplish goals. Managing: is the Sprint (cycle of work) meeting at the start of the project that decides scope, reviews logs on product, makes estimates and makes assignments. Daily meetings are 15 minutes where which tasks for the next 24 hours will be done, review the last 24 hours tasks and remove all obstacles [8]. 8
10 3.2.2 Phases of Extreme Programming are as follows Planning: identifies sponsors and stakeholders. It checks infrastructure needs, checks security information and obtains service level agreements. Analysis: gathers stories, prioritizes it, and uses the information to make estimates. It then defines the time span needed to accomplish the goal. It makes resource plans for development and QA teams. Design: is the breakdown of the tasks needed, how tasks are tested and the regression automation framework. Execution: is the work of coding, unit testing, test scenarios, defect reports. It involves the conversion of manual test cases to automation regression test cases. Two reviews exist of mid iteration and end of iteration. Wrapping: means granting small releases, regression testing, demos and reviews. New stories are written to address the needs found from the reviews. Process improvements are made based on the end of iteration review comments. Closure: launches the pilot program, develops training, and starts production. A SLA guarantee assurance is made with a review of SOA strategy along with production support [8]. 3.3 Advantages and disadvantages of switching to agile methods Advantages Testing becomes parallel to the development of an activity so less time taken for testing. Iterative and incremental product features may give benefits early in the development. Better product through parallel coding, testing and feedback. Integrated testing in the lifecycle of the product means inspection and adaptation as a product develops. Ability to 'change mind' for the customer. The customer may request a change for the interface, a function, an input or output etc. Unpredicted changes can quickly be incorporated into the system. Increased visibility of the product owner and product team allows identification of issues early and responding to issues quicker [6] [7] [8] Disadvantages New team members coming on board in the middle of the project or later may find that less amount of documentation is not helpful for them. Agile testing and development helps continuous product development. Although this can lead to better products, it can also result in never-ending projects unless improvement goals are prioritized and product delivery deadlines are not set [6] [7] [8]. 9
11 4 Testing Methods, Levels and Types In this section the paper will discuss about different testing methods, levels and types which are applicable throughout the software testing lifecycle. 4.1 Methods There are several approaches / techniques of Software Testing. Although there are many methods of software testing currently available, according to our framework and organization this paper will only include the following methods Static Static testing involves verification and it usually asks or checks "Are you building the thing right? It is primarily syntax checking of the code or manually reviewing the code, requirements documents, design documents etc. to find errors [1] [9] Dynamic Dynamic testing involves validation and it usually asks or checks "Are you building the right thing? The software should be compiled and executed and input values are given and output values are checked with the expected output [1] [9] Black Box Black-box testing treats the software as a "black box" with inputs and outputs [1]. The tester is only aware of what the software is supposed to do, not how it does it. Therefore it is also known as Specification-based testing technique or input/output driven testing techniques White Box In white-box testing or glass-box testing, the internal structures or workings of a program are tested. It is also known as Structure-based technique because here the testers require knowledge of how the software is implemented. In contrast to black-box testing, the tester is concentrating on how the software does it in white-box testing [1] Visual (GUI) GUI testing is the process of testing a product's graphical user interface to ensure it meets its written specifications. This type of testing is common when designing web pages where sizes and alignments of images and buttons are checked [10]. 4.2 Levels Each phase of SDLC goes through the testing hence there are various levels of testing. Although there are many levels of software testing currently available, according to our framework and organization this paper will only include the following levels. 10
12 4.2.1 Unit Testing Unit testing is a method by which individual units of source code are tested together with associated control data. A unit is the smallest testable part of an application. For example functions/procedures, interfaces and classes are considered as units. Unit tests are typically written and run by software developers to ensure that code meets its design and behaves as intended [11] Component Testing In component testing individual software modules are tested in order to find defects and to verify their proper functionality. Component testing is also known as module and program testing. Component testing may be done in isolation from rest of the system depending on development life cycle model chosen for that particular application [12] Integration Testing In integration testing individual software modules are combined and tested as a group to verify they work together without errors. Integration testing is done after unit testing and prior to validation testing. It is done by a specific integration tester or a test team [12] System Testing System testing is conducted on a complete, integrated system to evaluate the system's compliance with its specified requirements. System testing falls within the scope of black box testing, and no knowledge of the inner design of the code or logic is required. System testing investigates both functional and non-functional requirements of the software [13] Acceptance Testing Once all or most of the defects have been corrected after the system test, the system will be delivered to the user or customer for acceptance testing. It is conducted to determine if the specified requirements are met prior to its delivery. Acceptance testing is basically done by the user or customer although other stakeholders may be involved as well [11] Alpha Testing Alpha testing is simulated or actual operational testing by potential users/customers or an independent test team at the developers' site. Alpha testing is often used for off-the-shelf software as a form of internal acceptance testing, before the software goes to beta testing. It takes place at the developer s site [14] Beta Testing Beta testing or field testing, and takes place at customer s site. The software is installed and tested under real-world working conditions. Versions of the software, known as beta versions, are released to a limited audience - e.g. a sample of targeted customers - outside of the programming team [14]. This is very common in game development. 11
13 4.3 Types A test type is focused on a particular test objective. Although there are many types of software testing currently available, according to the scope and organization of this paper we will discuss only the following types. Testing types are mainly divided into two categories as functional and non-functional testing Functional Testing Functional testing refers to activities that verify a specific action or function of the code. These are usually found in the code requirements documentation, although some development methodologies work from use cases or user stories. Functional tests tend to answer the question of "can the user do this" or "does this particular feature work." Some functional testing types are listed below [1] [11]. Installation Development Usability Sanity Smoke Regression Destructive Recovery Automated User Acceptance Non Functional Non-functional testing listed below are refer to aspects of the software that may not be related to a specific function or user action, such as scalability or other performance, behavior under certain constraints, or security. Testing will determine the breaking point, the point at which extremes of scalability or performance leads to unstable execution. Non-functional requirements tend to be those that reflect the quality of the product, particularly in the context of the suitability perspective of its users [1] [11]. Compatibility Performance Security Accessibility Internationalization / Localization 12
14 5 Conclusions This paper presents an introduction to software testing and its problems. In the future we would like to present two separate papers as solutions to large number of test cases problem using Combinatorial Testing and huge testing time problem using Test Automation in detail. Combinatorial testing can detect hard-to-find software faults more efficiently than manual test case selection methods. While the most basic form of combinatorial testing - pairwise testing - is well established, and adoption by software testing practitioners continues to increase, the software industry is yet to fully adopt higher strength Combinatorial testing. Test automation paper will demonstrate a hands-on sample industrial web based software project involving functional test automation with SELENIUM tool. Section two compared manual testing and automated testing. There are both advantages and disadvantages of automated and manual testing. While many say that common sense is supposed to guide you in making the decision of which one to use, common sense won t lead you unless you have all of the information. Make sure that you consider your time, your resources, and the size of your project as well as the quality of the automated tools you ll be using and your skills and know-how of your testing team. Once you take these things into mind, you re more likely to do what s best for you. Always remember though that combining both is an option. In fact, combining the two may be optimal for canceling out the others disadvantages and developing the best software possible. Agile software development was discussed in section three. Testing discovers information on software errors. This information will be used by the developers becomes to improve the product. Thus the goal of testing products and services is to increase the productivity of a company. Testing must transform into engineering productivity approaches. At the heart of all the technology are people with dreams and ideas. Without them, none of the Internet would work. Good practices come about from software testing professionals desire to bridge gaps between business, technology, clients and consumers. With more Agile like hybrid methodologies, testing becomes a design criteria; a method to improve productivity and product. Software testing by agile philosophy is a sign that a business and its professionals care to do their work through honest communication with integrity and ethics. Finally the paper presented testing methods, levels and types - the three main categories of the software testing process. There are several approaches / techniques of software testing and these were discussed under the testing methods. Software goes through testing at each phase of SDLC and hence there are various levels of testing. A test type is focused on a particular test objective and this paper mainly discussed two main types - functional and non-functional - and then listed some testing types under each main type. 13
15 References [1] Myers, Glenford J., Corey Sandler, and Tom Badgett. The art of software testing. John Wiley & Sons, [2] Kung, David, and Hong Zhu. "Software verification and validation." Wiley Encyclopedia of Computer Science and Engineering (2008). [3] Ammann, Paul, and Jeff Offutt. Introduction to software testing. Cambridge University Press, [4] Qatarun.wordpress.com,. 'Start And Stop Of Testing Software Testing'. N.p., Web. 20 Mar [5] Base36,. 'Automated Vs. Manual Testing: The Pros And Cons Of Each'. N.p., Web. 21 Mar [6] Smartbear.com,. 'What Is Agile Testing? Smartbear Software'. N.p., Web. 21 Mar [7] Netsolutionsindia.com,. 'How AGILE Testing Helps In Building Better Software Products'. N.p., Web. 21 Mar [8] Collins, Eliane, Arilo Dias-Neto, and V. F. de Lucena. "Strategies for agile software testing automation: An industrial experience." Computer Software and Applications Conference Workshops (COMPSACW), 2012 IEEE 36th Annual. IEEE, [9] Zhang, Sai, et al. "Combined static and dynamic automated test generation." Proceedings of the 2011 International Symposium on Software Testing and Analysis. ACM, [10] Lönnberg, Jan, Ari Korhonen, and Lauri Malmi. "MVT: a system for visual testing of software." Proceedings of the working conference on Advanced visual interfaces. ACM, [11] Mustafa, Khaled M., Rafa E. Al-Qutaish, and Mohammad I. Muhairat. "Classification of software testing tools based on the software testing methods." Computer and Electrical Engineering, ICCEE'09. Second International Conference on. Vol. 1. IEEE, [12] Sawant, Abhijit A., Pranit H. Bari, and P. M. Chawan. "Software Testing Techniques and Strategies." International Journal of Engineering Research and Applications (IJERA) 2.3 (2012): [13] Arcuri, Andrea, Muhammad Zohaib Iqbal, and Lionel Briand. "Black-box system testing of real-time embedded systems using random and search-based testing." Testing Software and Systems. Springer Berlin Heidelberg, [14] MacCormack, Alan. "How internet companies build software." MIT Sloan Management Review 42.2 (2001): [15] Kuhn, D. Richard, Raghu N. Kacker, and Yu Lei. Introduction to Combinatorial Testing. CRC press,
Nova Software Quality Assurance Process
Nova Software Quality Assurance Process White Paper Atlantic International Building 15F No.2 Ke Yuan Yi Road, Shiqiaopu, Chongqing, P.R.C. 400039 Tel: 86-23- 68795169 Fax: 86-23- 68795169 Quality Assurance
Software Testing Lifecycle
STLC-Software Testing Life Cycle SDLC Software Testing Lifecycle Software Testing Life Cycle (STLC) defines the steps/ stages/ phases in testing of software. However, there is no fixed standard STLC in
Basic Testing Concepts and Terminology
T-76.5613 Software Testing and Quality Assurance Lecture 2, 13.9.2006 Basic Testing Concepts and Terminology Juha Itkonen SoberIT Contents Realities and principles of Testing terminology and basic concepts
Software Testing. Knowledge Base. Rajat Kumar Bal. Introduction
Software Testing Rajat Kumar Bal Introduction In India itself, Software industry growth has been phenomenal. IT field has enormously grown in the past 50 years. IT industry in India is expected to touch
Agile Testing (October 2011) Page 1. Learning Objectives for Agile Testing
Agile Testing (October 2011) Page 1 Learning Objectives for Agile Testing "Certification is the by-product; Learning is the product." Agile Testing should: Compare and contrast agile testing with traditional
Levels of Software Testing. Functional Testing
Levels of Software Testing There are different levels during the process of Testing. In this chapter a brief description is provided about these levels. Levels of testing include the different methodologies
ICAgile Learning Roadmap Agile Testing Track
International Consortium for Agile ICAgile Learning Roadmap Agile Testing Track Learning Objectives Licensing Information The work in this document was facilitated by the International Consortium for Agile
Testing Introduction. IEEE Definitions
Testing Introduction IEEE Definitions Software testing is the process of analyzing a software item to detect the differences between existing and required conditions (that is, bugs) and to evaluate the
Establishing your Automation Development Lifecycle
Establishing your Automation Development Lifecycle Frequently I engage clients in assessing and improving their automation efforts. The discussion normally starts from a position of frustration We ve invested
Taking the first step to agile digital services
Taking the first step to agile digital services Digital Delivered. Now for Tomorrow. 0207 602 6000 [email protected] @CACI_Cloud 2 1. Background & Summary The Government s Digital by Default agenda has
MANUAL TESTING. (Complete Package) We are ready to serve Latest Testing Trends, Are you ready to learn.?? New Batches Info
MANUAL TESTING (Complete Package) WEB APP TESTING DB TESTING MOBILE APP TESTING We are ready to serve Latest Testing Trends, Are you ready to learn.?? New Batches Info START DATE : TIMINGS : DURATION :
Using TechExcel s DevSuite to Achieve FDA Software Validation Compliance For Medical Software Device Development
Using TechExcel s DevSuite to Achieve FDA Software Validation Compliance For Medical Software Device Development The FDA requires medical software development teams to comply with its standards for software
Software Quality Testing Course Material
Prepared by Vipul Jain Software Quality Testing Course Material Course content is designed and will be taught in such a manner in order to make a person job ready in around 10-12 weeks. Classroom sessions
Agile Methodologies and Its Processes
International Journal of Computational Engineering Research Vol, 03 Issue, 9 Agile Methodologies and Its Processes 1, Akanksha, 2, Akansha Rakheja, 3, Latika Kapur, 4, Kanika Ahuja 1,2,3,, Information
www.testing-solutions.com TSG Quick Reference Guide to Agile Development & Testing Enabling Successful Business Outcomes
www. TSG Quick Reference Guide to Agile Development & Testing Enabling Successful Business Outcomes What is Agile Development? There are various opinions on what defines agile development, but most would
A Brief Overview of Software Testing Techniques and Metrics
A Brief Overview of Software Techniques and Metrics Anitha.A Programmer, School of Computer Studies (PG), RVS college of Arts & science, Coimbatore, India. Abstract: Software is the process of executing
AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT
AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT Shivangi Shandilya, Surekha Sangwan, Ritu Yadav Dept. of Computer Science Engineering Dronacharya College Of Engineering, Gurgaon Abstract- Looking at the software
Metrics in Software Test Planning and Test Design Processes
Master Thesis Software Engineering Thesis no: MSE-2007:02 January 2007 Metrics in Software Test Planning and Test Design Processes Wasif Afzal School of Engineering Blekinge Institute of Technology Box
Software Engineering I: Software Technology WS 2008/09. Integration Testing and System Testing
Software Engineering I: Software Technology WS 2008/09 Integration Testing and System Testing Bernd Bruegge Applied Software Engineering Technische Universitaet Muenchen 1 Overview Integration testing
Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology
Process Methodology for Wegmans Deli Kiosk Version 1.0 Prepared by DELI-cious Developers Rochester Institute of Technology September 15, 2013 1 Table of Contents 1. Process... 3 1.1 Choice... 3 1.2 Description...
ISTQB Certified Tester. Foundation Level. Sample Exam 1
ISTQB Certified Tester Foundation Level Version 2015 American Copyright Notice This document may be copied in its entirety, or extracts made, if the source is acknowledged. #1 When test cases are designed
Agile & Scrum: What are these methodologies and how will they impact QA/testing roles? Marina Gil Santamaria Summer 2007
Agile & Scrum: What are these methodologies and how will they impact QA/testing roles? Marina Gil Santamaria Summer 2007 The idea behind the Agile approach is that instead of building a release that is
Agile Scrum Workshop
Agile Scrum Workshop What is agile and scrum? Agile meaning: Able to move quickly and easily. Scrum meaning: a Rugby play Agile Scrum: It is an iterative and incremental agile software development framework
Software Testing Tutorial
Software Testing Tutorial SOFTWARE TESTING TUTORIAL Simply Easy Learning by tutorialspoint.com tutorialspoint.com i C O P Y R I G H T & D I S C L A I M E R N O T I C E All the content and graphics on this
Benefits of Test Automation for Agile Testing
Benefits of Test Automation for Agile Testing Manu GV 1, Namratha M 2, Pradeep 3 1 Technical Lead-Testing Calsoft Labs, Bangalore, India 2 Assistant Professor, BMSCE, Bangalore, India 3 Software Engineer,
Latest Trends in Testing. Ajay K Chhokra
Latest Trends in Testing Ajay K Chhokra Introduction Software Testing is the last phase in software development lifecycle which has high impact on the quality of the final product delivered to the customer.
Your Software Quality is Our Business. INDEPENDENT VERIFICATION AND VALIDATION (IV&V) WHITE PAPER Prepared by Adnet, Inc.
INDEPENDENT VERIFICATION AND VALIDATION (IV&V) WHITE PAPER Prepared by Adnet, Inc. February 2013 1 Executive Summary Adnet is pleased to provide this white paper, describing our approach to performing
Applying Lean on Agile Scrum Development Methodology
ISSN:2320-0790 Applying Lean on Agile Scrum Development Methodology SurendRaj Dharmapal, Dr. K. Thirunadana Sikamani Department of Computer Science, St. Peter University St. Peter s College of Engineering
Testing, What is it Good For? Absolutely Everything!
Testing, What is it Good For? Absolutely Everything! An overview of software testing and why it s an essential step in building a good product Beth Schechner Elementool The content of this ebook is provided
The Importance of Continuous Integration for Quality Assurance Teams
The Importance of Continuous Integration for Quality Assurance Teams Without proper implementation, a continuous integration system will go from a competitive advantage for a software quality assurance
LEAN AGILE POCKET GUIDE
SATORI CONSULTING LEAN AGILE POCKET GUIDE Software Product Development Methodology Reference Guide PURPOSE This pocket guide serves as a reference to a family of lean agile software development methodologies
Table of contents. Enterprise Resource Planning (ERP) functional testing best practices: Ten steps to ERP systems reliability
Enterprise Resource Planning (ERP) functional testing best practices: Ten steps to ERP systems reliability Table of contents Introduction.......................................................2 Step 1:
Bridging the Gap Between Acceptance Criteria and Definition of Done
Bridging the Gap Between Acceptance Criteria and Definition of Done Sowmya Purushotham, Amith Pulla [email protected], [email protected] Abstract With the onset of Scrum and as many organizations
The Agile Manifesto is based on 12 principles:
The Agile Manifesto is based on 12 principles: Customer satisfaction by rapid delivery of a useful product solution Welcome changing requirements, even late in development Working products are delivered
Table of contents. Performance testing in Agile environments. Deliver quality software in less time. Business white paper
Performance testing in Agile environments Deliver quality software in less time Business white paper Table of contents Executive summary... 2 Why Agile? And, why now?... 2 Incorporating performance testing
From Traditional Functional Testing to Enabling Continuous Quality in Mobile App Development
From Traditional Functional Testing to Enabling Continuous Quality in Mobile App Development Introduction Today s developers are under constant pressure to launch killer apps and release enhancements as
www.stephenbarkar.se Lean vs. Agile similarities and differences 2014-08-29 Created by Stephen Barkar - www.stephenbarkar.se
1 www.stephenbarkar.se Lean vs. Agile similarities and differences 2014-08-29 Purpose with the material 2 This material describes the basics of Agile and Lean and the similarities and differences between
Agile Software Development Methodologies and Its Quality Assurance
Agile Software Development Methodologies and Its Quality Assurance Aslin Jenila.P.S Assistant Professor, Hindustan University, Chennai Abstract: Agility, with regard to software development, can be expressed
ICAPRG529A Apply testing techniques for software development
ICAPRG529A Apply testing techniques for software development Release: 1 ICAPRG529A Apply testing techniques for software development Modification History Release Release 1 Comments This Unit first released
Testing in Agile methodologies easier or more difficult?
Testing in Agile methodologies easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości Systemów Informatycznych [email protected] [email protected] Professor in
The traditional project management uses conventional methods in software project management process.
Volume 5, Issue 1, January 2015 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Analysis of
Sample Exam. 2011 Syllabus
ISTQ Foundation Level 2011 Syllabus Version 2.3 Qualifications oard Release ate: 13 June 2015 ertified Tester Foundation Level Qualifications oard opyright 2015 Qualifications oard (hereinafter called
Agile So)ware Development
Software Engineering Agile So)ware Development 1 Rapid software development Rapid development and delivery is now often the most important requirement for software systems Businesses operate in a fast
Agile Projects 7. Agile Project Management 21
Contents Contents 1 2 3 Agile Projects 7 Introduction 8 About the Book 9 The Problems 10 The Agile Manifesto 12 Agile Approach 14 The Benefits 16 Project Components 18 Summary 20 Agile Project Management
Agile Testing. What Students Learn
Agile Testing Transition sound traditional test practices into an Agile development environment. By using a step-by-step approach, this course documents how to transition from traditional test practices
Best-Practice Software Engineering: Software Processes to Support Project Success. Dietmar Winkler
Best-Practice Software Engineering: Software Processes to Support Project Success Dietmar Winkler Vienna University of Technology Institute of Software Technology and Interactive Systems [email protected]
Scrum: A disciplined approach to product quality and project success.
Scrum: A disciplined approach to product quality and project success. CQAA February 23, 2011 Patricia Rotman Introductions Copyright 2011-2 Alternate Titles Considered Scrum: Just do it! Scrum: It only
Quality Assurance in an Agile Environment
Quality Assurance in an Agile Environment 1 Discussion Topic The Agile Movement Transition of QA practice and methods to Agile from Traditional Scrum and QA Recap Open Discussion www.emids.com 2 What is
Test Automation: A Project Management Perspective
Test Automation: A Project Management Perspective Abstract Amith Pulla [email protected] For most QA leads or managers, it s always difficult to get the project manager (PM) to invest in test automation.
Bottlenecks in Agile Software Development Identified Using Theory of Constraints (TOC) Principles
Master thesis in Applied Information Technology REPORT NO. 2008:014 ISSN: 1651-4769 Department of Applied Information Technology or Department of Computer Science Bottlenecks in Agile Software Development
AGILE SOFTWARE TESTING
AGILE SOFTWARE TESTING Business environments continue to rapidly evolve, leaving many IT organizations struggling to keep up. This need for speed has led to an increased interest in the Agile software
Scrum vs. Kanban vs. Scrumban
Scrum vs. Kanban vs. Scrumban Prelude As Agile methodologies are becoming more popular, more companies try to adapt them. The most popular of them are Scrum and Kanban while Scrumban is mixed guideline
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC) Supriyo Bhattacharjee MOF Capability Maturity Model (CMM) A bench-mark for measuring the maturity of an organization s software process CMM defines 5 levels of process
An Analysis on Objectives, Importance and Types of Software Testing
Available Online at www.ijcsmc.com International Journal of Computer Science and Mobile Computing A Monthly Journal of Computer Science and Information Technology IJCSMC, Vol. 2, Issue. 9, September 2013,
What is a life cycle model?
What is a life cycle model? Framework under which a software product is going to be developed. Defines the phases that the product under development will go through. Identifies activities involved in each
Agile Development for Application Security Managers
Agile Development for Application Security Managers www.quotium.com When examining the agile development methodology many organizations are uncertain whether it is possible to introduce application security
Improved Software Testing Using McCabe IQ Coverage Analysis
White Paper Table of Contents Introduction...1 What is Coverage Analysis?...2 The McCabe IQ Approach to Coverage Analysis...3 The Importance of Coverage Analysis...4 Where Coverage Analysis Fits into your
Essentials of the Quality Assurance Practice Principles of Testing Test Documentation Techniques. Target Audience: Prerequisites:
Curriculum Certified Software Tester (CST) Common Body of Knowledge Control Procedures Problem Resolution Reports Requirements Test Builds Test Cases Test Execution Test Plans Test Planning Testing Concepts
a new generation software test automation framework - CIVIM
a new generation software test automation framework - CIVIM Software Testing is the last phase in software development lifecycle which has high impact on the quality of the final product delivered to the
Contents. -Testing as a Services - TaaS 4. -Staffing Strategies 4. -Testing as a Managed Services - TaaMS 5. -Services 6.
Contents -Testing as a Services - TaaS 4 -Staffing Strategies 4 -Testing as a Managed Services - TaaMS 5 -Services 6 -Training 8 2 TestPRO is an Egyptian company founded in 2012 and headquartered in Nasr
SOFTWARE TESTING - QUICK GUIDE SOFTWARE TESTING - OVERVIEW
http://www.tutorialspoint.com/software_testing/software_testing_quick_guide.htm What is Testing? SOFTWARE TESTING - QUICK GUIDE SOFTWARE TESTING - OVERVIEW Copyright tutorialspoint.com Testing is the process
Who Doesn t Want to be Agile? By: Steve Dine President, Datasource Consulting, LLC 7/10/2008
Who Doesn t Want to be Agile? By: Steve Dine President, Datasource Consulting, LLC 7/10/2008 Who wants to be involved in a BI project or program that is labeled slow or inflexible? While I don t believe
Development Testing for Agile Environments
Development Testing for Agile Environments November 2011 The Pressure Is On More than ever before, companies are being asked to do things faster. They need to get products to market faster to remain competitive
SA Tool Kit release life cycle
Release management Release management process is a software engineering process intended to oversee the development, testing, deployment and support of software releases. A release is usually a named collection
Enhance visibility into and control over software projects IBM Rational change and release management software
Enhance visibility into and control over software projects IBM Rational change and release management software Accelerating the software delivery lifecycle Faster delivery of high-quality software Software
WebSphere Business Modeler
Discovering the Value of SOA WebSphere Process Integration WebSphere Business Modeler Workshop SOA on your terms and our expertise Soudabeh Javadi Consulting Technical Sales Support WebSphere Process Integration
Selling Agile to the CFO: A Guide for Development Teams
Selling Agile to the CFO: A Guide for Development Teams You ve learned about agile development, or perhaps you have even worked in an agile organization and have now moved to a traditional one. You re
Module 10. Coding and Testing. Version 2 CSE IIT, Kharagpur
Module 10 Coding and Testing Lesson 23 Code Review Specific Instructional Objectives At the end of this lesson the student would be able to: Identify the necessity of coding standards. Differentiate between
SmartBear Software Pragmatic Agile Development (PAD) Conceptual Framework
Pragmatic Agile Development (PAD) Conceptual Framework This document describes the Pragmatic Agile Development framework, a Scrum based development process. SmartBear Software 3/10/2010 Pragmatic Agile
2015 Defense Health Information Technology Symposium Implementation of Agile SCRUM Software Development Methodology
Mr. Christopher Harrington, PM Clinical Support, Solution Delivery Division Mr. James Huber, Healthcare Data Analyst, DHA Decision Support 2015 Defense Health Information Technology Symposium Implementation
Capstone Agile Model (CAM)
Capstone Agile Model (CAM) Capstone Agile Model (CAM) Approach Everything we do within the Capstone Agile Model promotes a disciplined project leadership process that encourages frequent inspection and
Quality Assurance Training Program
Quality Assurance Training Program Introduction/Summary: This 5-day course focuses on understanding and developing various skills required by QA Developer, preparing to use various tools and techniques
Copyrighted www.eh1infotech.com +919780265007, 0172-5098107 Address :- EH1-Infotech, SCF 69, Top Floor, Phase 3B-2, Sector 60, Mohali (Chandigarh),
Content of 6 Months Software Testing Training at EH1-Infotech Module 1: Introduction to Software Testing Basics of S/W testing Module 2: SQA Basics Testing introduction and terminology Verification and
Whitepaper. Agile Methodology: An Airline Business Case YOUR SUCCESS IS OUR FOCUS. Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan
YOUR SUCCESS IS OUR FOCUS Whitepaper Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan 2009 Hexaware Technologies. All rights reserved. Table of Contents 1. Introduction 2. Subject Clarity 3. Agile
Aspire's Approach to Test Automation
WHITE PAPER Aspire's Approach to Test Automation by Ujjawal Bagaria, Aspire Systems Automation has been seen as the long term solution for cost reduction of manual testing across the globe. A successfully
Best Overall Use of Technology. Jaspersoft
Best Overall Use of Technology Jaspersoft Kerstin Klein Manager, Engineering Processes/ Infrastructure, Jaspersoft From requirements to release QA centric development From Requirement to Release QA-Centric
A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.
Processing Models Of SDLC Mrs. Nalkar Sanjivani Baban Asst. Professor, IT/CS Dept, JVM s Mehta College,Sector 19, Airoli, Navi Mumbai-400708 [email protected] Abstract This paper presents an
How to Avoid an Attack - Security Testing as Part of Your Software Testing Process
How to Avoid an Attack - Security Testing as Part of Your Software Testing Process Recent events in the field of information security, which have been publicized extensively in the media - such as the
Karunya University Dept. of Information Technology
PART A Questions 1. Mention any two software process models. 2. Define risk management. 3. What is a module? 4. What do you mean by requirement process? 5. Define integration testing. 6. State the main
Latest Research and Development on Software Testing Techniques and Tools
General Article International Journal of Current Engineering and Technology E-ISSN 2277 4106, P-ISSN 2347-5161 2014 INPRESSCO, All Rights Reserved Available at http://inpressco.com/category/ijcet Rasneet
http://www.test-institute.org International Software Test Institute
THE ONLY BOOK CAN SIMPLY LEARN SOFTWARE TESTING! Page 1 Contents ABOUT THE AUTHOR... 3 1. Introduction To Software Testing... 4 2. What is Software Quality Assurance?... 7 3. What Is Software Testing?...
Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: 0306211(Computer Programming 2).
0305203 0305280 0305301 0305302 Software Engineering/Courses Description Introduction to Software Engineering Prerequisite: 0306211(Computer Programming 2). This course introduces students to the problems
XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories
XP & Scrum Beatrice Åkerblom [email protected] extreme Programming XP Roles XP Roles, cont!d! Customer ~ Writes User Stories and specifies Functional Tests ~ Sets priorities, explains stories ~ May or
Reduce QA Cost by Improving Productivity & Test Optimization
Reduce QA Cost by Improving Productivity & Test Optimization Author(s) Rajesh Kumar ([email protected]) and Ajay K Chhokra ([email protected]) UnitedHealth Group Information Systems, Unitech
Key Benefits of Microsoft Visual Studio Team System
of Microsoft Visual Studio Team System White Paper November 2007 For the latest information, please see www.microsoft.com/vstudio The information contained in this document represents the current view
Driving Quality Improvement and Reducing Technical Debt with the Definition of Done
Driving Quality Improvement and Reducing Technical Debt with the Definition of Done Noopur Davis Principal, Davis Systems Pittsburgh, PA [email protected] Abstract This paper describes our experiences
2015 IBM Continuous Engineering Open Labs Target to better LEARNING
2015 IBM Continuous Engineering Open Labs Target to better LEARNING (NO COST - not a substitute for full training courses) Choose from one or more of these Self-Paced, Hands-On Labs: DMT 3722 - Learn to
Agile QA Process. Anand Bagmar [email protected] [email protected] http://www.essenceoftesting.blogspot.com. Version 1.
Agile QA Process Anand Bagmar [email protected] [email protected] http://www.essenceoftesting.blogspot.com Version 1.1 Agile QA Process 1 / 12 1. Objective QA is NOT the gatekeeper of the quality
IBM Rational systems and software solutions for the medical device industry
IBM Software August 2011 IBM Rational systems and software solutions for the medical device industry Improve processes, manage IEC 61508 and IEC 62304 standards, develop quality products Highlights Manage
AgileSoftwareDevelopmentandTestingApproachandChallengesinAdvancedDistributedSystems
Global Journal of Computer Science and Technology: B Cloud and Distributed Volume 14 Issue 1 Version 1.0 Year 2014 Type: Double Blind Peer Reviewed International Research Journal Publisher: Global Journals
Don t forget the testers
TODAY S TOPIC Knight Errant Software Testing Training Project Consulting Business Analysis www.knighterrant.com.au The importance of testing in an AGILE development context Or Don t forget the testers
Oracle Insurance Policy Administration System Quality Assurance Testing Methodology. An Oracle White Paper August 2008
Oracle Insurance Policy Administration System Quality Assurance Testing Methodology An Oracle White Paper August 2008 Oracle Insurance Policy Administration System Quality Assurance Testing Methodology
Course Title: Managing the Agile Product Development Life Cycle
Course Title: Managing the Agile Product Development Life Cycle Course ID: BA25 Credits: 28 PDUs Course Duration: 4 days (with optional Executive session) Course Level: Intermediate/Advanced Course Description:
Atomate Development Process. Quick Guide
Development Process Quick Guide METHODOLOGY Every project is unique You know your business inside out. You have thought and planned your ideas carefully and are keen to see it live as soon as possible.
Presentation: 1.1 Introduction to Software Testing
Software Testing M1: Introduction to Software Testing 1.1 What is Software Testing? 1.2 Need for Software Testing 1.3 Testing Fundamentals M2: Introduction to Testing Techniques 2.1 Static Testing 2.2
Information Systems Development Process (Software Development Life Cycle)
Information Systems Development Process (Software Development Life Cycle) Phase 1 Feasibility Study Concerned with analyzing the benefits and solutions for the identified problem area Includes development
