International Journal of Computer Applications (0975 8887) Volume 111 No 13, February 2015 10 Software Test Process, Testing Types and Techniques Itti Hooda, Ph.D. Research Scholar Department of Computer Science and Applications M.D. University, Rohtak-124 001, Haryana, India Rajender Singh Chhillar, Ph.D. Professor and Head Department of Computer Science and Applications M.D. University, Rohtak-124 001, Haryana, India ABSTRACT Software testing is the most critical phase of the Software Development Life Cycle. Software under test goes through various phases, which as per the study are test analysis; test planning, test case/data/environment preparation, test execution, bug logging and tracking and closure. There is lot of research which has been done in past to optimize overall testing process with intent of improving quality of software in a minimum amount of time. After evaluating all available testing processes it has been found that different development models are used for different types of applications and different testing techniques are performed to test the same. Based on the research during the study of this paper, it has been analyzed that each company modifies their testing process as per the needs and performs testing based on the criticality of the applications. The most critical components of each application have to be tested thoroughly to ensure their functional, performance and security features are behaving as expected. This paper talks about ensuring the quality of all types of software applications by performing certain types of testing techniques and optimized software testing processes. As per the study and research done testing types can be categorized under three major testing techniques which are Functional, Performance and Security Testing and major software testing process called as Analysis, Preparation and Execution and closure. Keywords Functional, Performance and Security Testing (FPS), Analysis, Planning and Preparation, Execution and Closure (APEC), Software Testing Techniques, Software Testing Life Cycle (STLC), Software Development Life Cycle(SDLC). 1. INTRODUCTION Software testing is the main activity of evaluating and executing software with a view to find out errors. It is the process where the system requirements and system components are exercised and evaluated manually or by using automation tools to find out whether the system is satisfying the specified requirements and the differences between expected and actual results are determined. This paper at a high - level is divided into two sections. The first section covers optimized testing process, which elaborates all phases of the testing life cycle and the second section covers testing types. The first section emphasizes the main activities, which are Analysis [A], Planning and Preparation [P], Execution [E] and Closure[C]. Where closure includes release and root cause analysis activities and execution phase goes hand in hand with bug logging and tracking. The software bug life cycle explained in the paper in the coming section highlights the mandatory steps for bug logging and tracking. The test preparation phase includes test case preparation, test case selection, test case optimization and test data preparation which is going to be elaborated later in this paper. There are lots of available testing types like black box testing, white box testing, state based testing, security testing, look and feel testing, acceptance testing, system testing, alpha and beta testing, and configuration based testing, verification and validation testing. Based on the research and study done this paper categorized all of them under three high - level testing types, which is Functional, Performance and Security (FPS).The last section deals with the conclusion, which shows relevance of our optimized software testing process and FPS as a basis for testing methods. 2. OPTIMIZED SOFTWARE TESTING PROCESS STLC phases deals with detecting and rectifying any error by using various software testing techniques. This paper presents the required phases of testing lifecycle without which no software life cycle would be completed efficiently. Testing basically furnishes a criticism or a comparison that determines the state behavior of the system against its specifications, mechanisms, principles, characteristics and relevant standards. Software testing process can be customized according to the customer or the project needs. The optimization process which one can use while testing software is analysis, planning and preparation, execution and closure. The software process provides the flow of the system and enhances the assurance of the product to be produced. There are various methods of testing of software that can be referred from different research journals, books and published papers but based on study, research and considering all the critical testing types, this paper talk about the key findings that Functionality, Performance and Security testing are three main software methods that a software tester needs to be tested to provide software according to specifications and with good quality. 2.1. Test Analysis Phase The first phase which is a Analysis phase is the basic phase of the software testing process. This phase includes the analysis of functional and non functional requirements e.g. business requirements, functional specification document and technical specification document etc. The requirements collection and is to be done for elucidation with customers to identify actual and expected results of testing like Identification of requirements and gaps, which are basically non functional requirements such as usability, scalability, testability, maintainability, performance and security. All requirements that cannot be tested due to system and test environment constraints should be communicated to the business team. During this phase, the testing team reviews and analyses the requirements and identifies the tests, which are to be performed and sets priorities for testing - team members. The test environment requirement includes the hardware and software requirements under which the required software is to be tested and in parallel software developers start by planning and development activities.