Menu

Tuesday, August 21, 2018

Subject Books for UGC NET Computer Science

Friends,

I found a comprehensive list of suggested books for preparing different subjects under computer Science. You may check it and even suggest me if you came across better books than I have mentioned here.

S.No.
Book Title
Author
1.
Matrices
AR Vasista
2.
Higher Engineering Maths
BS Grewal
3.
Probability and Statistics
Miller and Freund
4.
Discrete Mathematical Structures
JP Trembly and Manohar
5.
Discrete Maths
Schaum’s Series
6.
Discrete Mathematical Structures
Kolman, Busby and Ross
7.
Graph Theory
Narsingh Deo
8.
Numerical Methods
Golden Series
9.
Numerical Methods
BS Grewal
10.
Numerical Methods
SS Sastry
11.
Numerical Methods
Jain and Iyengar
12.
Discrete Mathematics
Mott, Kandel and Baker
13.
Automata
Ullman and Hopcroft
14.
Introduction to Computer Theory
Daniel Cohen 2nd Edition
15.
Theory of ComputerScience 2nd Edition
Chandrasekaran & Mishra
16.
Design Analysis of Comp. Algorithms
Aho, Hopcroft and Ullman
17.
Computer Algorithms
Horowitz and Sahni
18.
Introduction to Algorithms
Thomas Cormon, Charles Ronald
19.
Switching and Finite Automata Theory
Kohavi
20.
Digital Logic and Computer Design
Morris Mano
21.
Digital Principles and Applications
Leach and Malvino
22.
Computer System Architecture
Mano
23.
Computer Org. and Architecture
William Stallings
24.
Computer Organization
Hamacher, Vranesic &Zaky
25.
Computer Architecture and Organization
Hayes
26.
Programming Languages
Pratt and Zelkewitz
27.
Compilers
Aho, Ullman and Sethi
28.
Principles of Compiler Design
Aho and Ullman
29.
Fundamentals of Data Structures
Horowitz. Sahni
30.
Introduction to DS with Applications
Trembly and Sorenson
31.
Data Structures
Schaum Series
32.
DS and Programming in C
Kruse, Tondo and Leung
33.
C Programming
Venugopal
34.
C Programming Language
Kernighan and Ritchie
35.
System Programming
Donovan
36.
System Programming and OS
Dhamdhere
37.
Operating Systems
Dietel
38.
Operating Systems
William Stallings
39.
Operating Systems
Milan Milenkovic
40.
OS Concepts
Galvin and Silberschatz
41.
Computer Networks
Andrew Tanenbaum
42.
Data Communications
William Stallings
43.
Engg. Approach to Comp. Networks
S Keshav
44.
Introduction to Switching Theory & Logic Design
FJ Hill and Peterson
45.
Database Systems
Korth and Sudhershan
46.
Fundamentals of DBMS
Elmasri, Navathe
47.
An Introduction to DBMS
CJ Date
48.
DBMS 3rd Edition
Ramakrishnan, Gehrke
49.
An Introduction to DBMS
Bipin C Desai
50.
Multiple Choice Questions in Computer Science
Timothy J Williams

Software Testing Techniques

Here, we will discuss some important software testing techniques. In exams like UGC NET, questions are often asked from this topic.

There are four levels of software testing: Unit >> Integration >> System >> Acceptance.

Usually, Black Box Testing method is used in Acceptance Testing. Acceptance Testing is performed after System Testing and before making the system available for actual use.

Smoke Testing, also known as “Build Verification Testing", comprises of a non-exhaustive set of tests that aim at ensuring that the most important functions work, but none of them in depth. It helps in exposing integration and major problems early in the cycle.

Functional testing ensures that the requirements are properly satisfied by the application. During functional testing, Black Box Testing technique is used. It is performed during the levels of System Testing and Acceptance Testing. It has a high possibility of redundant testing.

Security Testing intends to uncover vulnerabilities of the system and determine that its data and resources are protected from possible intruders.
Example of a basic security test: Click the BACK button of the browser (Check if you are asked to log in again or if you are provided the logged-in application.)

Regression testing intends to ensure that changes (enhancements or defect fixes) to the software have not adversely affected it.Regression testing can be performed during any level of testing but it is mostly relevant during System Testing.

Unit Testing is performed by using the White Box Testing method. This type of testing is performed prior to Integration Testing, by software developers themselves or their peers.

Integration Testing: The purpose of this level of testing is to expose possible faults in the interaction between integrated units. Different approaches are:
Big Bang:  all or most of the units of the code are combined together and tested at one go. This approach is used when the testing team receives the entire software in a bundle. Big Bang Integration tests only the interactions between the units while System Testing tests the entire system.

Top Down: top level units are tested first and (step by step ) lower level units are tested later. This approach is followed with top down development. Test Stubs are needed to simulate lower level units which may not be available during the initial phases.

Bottom Up: bottom level units are tested first and upper level units step by step after that. This approach is used when bottom up development approach is followed. Test Drivers are needed to simulate higher level units which may not be available during the initial phases.

Sandwich/Hybrid: A combination of Top Down and Bottom Up approaches.

System Testing: A complete, integrated system/software is tested. The purpose is to evaluate the system’s compliance with the specified requirements. Usually, Black Box Testing method is used. independent Testers perform System Testing.

Acceptance Testing: This testing method does not usually follow a strict procedure and is not scripted but is rather ad-hoc. It is performed after System Testing and before making the system available for actual use.

Black Box Testing is also known as Behavioral Testing. There are some techniques that can be used for designing black box tests:

Equivalence partitioning: Involves dividing input values into valid and invalid partitions and selecting representative values from each partition as test data.

Boundary Value Analysis: Involves determination of boundaries for input values and selecting values that are at the boundaries and just inside/outside of the boundaries as test data.

Cause Effect Graphing: Identifies the cases (input conditions) and effects (output conditions), producing a Cause-Effect Graph, and generating test cases accordingly.

White Box Testing (Code-Based Testing or Structural Testing): The internal structure/design/implementation of the item being tested is known to the tester. It is mainly applied to Unit Testing.

Gray Box Testing: The internal structure is partially known. This involves having access to internal data structures and algorithms for purposes of designing the test cases, but testing at the user, or black-box level. it is primarily useful in Integration Testing.