当前位置:网站首页>Elevator dispatching (pairing project) ④
Elevator dispatching (pairing project) ④
2022-07-04 10:52:00 【Painting and living~】
List of articles
One 、 software test
1.1 unit testing
In the development process , In order to reduce the logic error in the function, the program will bug Probability , We use JUnit3 Unit test the functions of some classes . The functions for unit testing include GetPeopleIn(), GetPeopleOut(), HasPeopleOut(), GetNearestPsg(), GetMaxFloorPsg() etc. . Here is one of the tests
public void testGetMaxFloorPsg()
{
EleController controller = new EleController();
Passenger passenger1 = new Passenger(100, 2, 6, 1, 1);
Passenger passenger2 = new Passenger(100, 1, 8, 2, 1);
Passenger passenger3 = new Passenger(40, 8, 1, 3, -1);
List<Passenger> passengers = new LinkedList<>();
passengers.add(passenger1);
passengers.add(passenger2);
passengers.add(passenger3);
controller.setPsgRequestList(passengers);
assertEquals(8, controller.getMaxFloorPsg(1, 1, 1));
passengers.remove(0);
controller.setPsgRequestList(passengers);
assertEquals(2, controller.getMaxFloorPsg(1, 1, 1));
passengers.remove(0);
controller.setPsgRequestList(passengers);
assertEquals(1, controller.getMaxFloorPsg(1, 1, 1));
}
The test results are shown in the figure 
1.2 Black box testing
Here is 10 Test cases
| The test case | describe |
|---|---|
| No input | The elevator operates normally |
| weight 70 Starting floor 1 Terminal floor 10 | The elevator receives passengers normally |
| weight 100*5 people | Elevator receives passengers normally in case of multiple requests |
| weight 100*5 people The elevator 2 individual | Pick up passengers normally when there are many elevators |
| weight 100*10 people | Unable to pick up passengers when overweight |
| Starting floor -2 | The starting floor is illegal |
| Terminal floor 21 | The terminal floor is illegal |
| Starting floor 1 Terminal floor -1 | In the passenger carrying state, the elevator does not pick up passengers in the opposite direction of its own operation |
| Starting floor 1 Key floors -1 | No passengers sstf The algorithm changes from uplink to downlink |
| Change any legal elevator parameters | The elevator parameters can be changed and run smoothly |
Two 、 Performance comparison
Because passengers are randomly generated , The values are not necessarily consistent .
The evaluation standard is that the total number of people reaches 50 Number of people served per hour / The total number of
Bus:0.3
SSTF:0.48
LOOK:0.34
3、 ... and 、 Pairing project summary
2.1 The advantages of pair programming
Through pair programming , Developers can urge and encourage each other . meanwhile , The fields that two people are good at can also complement each other , When one of the developers encountered a difficult point , You can also ask another person , This saves development time , Improved development efficiency .
However , Pair programming also has some disadvantages . When the code styles of two developers are not unified , It's easy to find it difficult to understand each other's code , And then affect further development . meanwhile , If the content that a person is responsible for himself appears bug Not familiar enough , It will also lead to other bug.
2.2 Personal strengths and weaknesses
Deng Shengyu
advantage : Involved in Java Language project development , Familiar with the development process . Good code habits .
shortcoming : Procrastination is too serious , Delay the development process .
Cui Wenguang :
advantage : Strong ability to collect data . Good at communication , Fast programming speed, clear thinking , No drag .
shortcoming : Not familiar with multi-threaded development .
2.3 Pairing process
As the development period coincides with the winter vacation , Cuiwenguang and I cannot meet offline , Therefore, online communication is adopted to complete the project development . We are 1 month 27 Finish the discussion on the day , Determine and start the development process . Due to git I'm not familiar with , The initial progress was not submitted to the warehouse on time , Instead, it was used after the medium-term code volume gradually increased git Project management .
In pair development , I finished the definition of the first stage class , And basically completed the second stage bus Scheduling algorithm . Cuiwenguang has improved bus Scheduling algorithm , And completed sstf、look Scheduling algorithm and ui Interface development . meanwhile , I am right. ui The interface logic has been adjusted and improved , Unit test is carried out . Besides , We worked together to complete the writing of blogs and documents .
Because you can only communicate online , We can't provide the offline version of the pair photos they are discussing , So I took a screenshot of the online pairing discussion process and recorded it as follows .


2.4 Technical highlights and difficulties
Technical highlights
- Support real-time display of various information
- The algorithm is efficient
Technical key points
- Using multithreading technology , Prevent the process from crashing
- A lot of unit tests are used , Improve code robustness
Technical difficulties encountered
- Process creation problem
- Synchronization function problem
To be improved
- The interface is chaotic
- The function still needs to be improved
- The front end style can be further beautified
2.5 Other gains
Through this pairing project , I realized that procrastination is a terrible bad habit , It will seriously affect the progress of cooperative development . meanwhile , My ability to collect data has also been improved , Yes java Object oriented design 、 Multithreading 、 The understanding of unit testing has been deepened . On the whole , It has benefited me a lot .
边栏推荐
- Rhcsa12
- Rhcsa day 10 operation
- DML statement of MySQL Foundation
- [Galaxy Kirin V10] [desktop] printer
- VI text editor and user rights management, group management and time management
- [test theory] test process management
- unit testing
- Hidden C2 tunnel -- use of icmpsh of ICMP
- IPv6 comprehensive experiment
- Performance test overview
猜你喜欢

BGP advanced experiment
![[Galaxy Kirin V10] [desktop] can't be started or the screen is black](/img/68/735d80c648f4a8635513894c473860.jpg)
[Galaxy Kirin V10] [desktop] can't be started or the screen is black

Open the neural network "black box"! Unveil the mystery of machine learning system with natural language

Collection of practical string functions

20 minutes to learn what XML is_ XML learning notes_ What is an XML file_ Basic grammatical rules_ How to parse

Performance test method

Postman interface test

Rhcsa day 10 operation

Rhcsa - day 13

What is an excellent architect in my heart?
随机推荐
Deepmind proposed a Zuan AI, which specially outputs network attack language
Personal thoughts on the development of game automation protocol testing tool
From programmers to large-scale distributed architects, where are you (2)
leetcode842. Split the array into Fibonacci sequences
Pod management
Advanced order of function
Summary of several job scheduling problems
Two way process republication + routing policy
Ten key performance indicators of software applications
Idea SSH channel configuration
Strings and characters
/*Write a function to open the file for input, read the contents of the file into the vector container of string class 8.9: type, and store each line as an element of the container object*/
Performance features focus & JMeter & LoadRunner advantages and disadvantages
2022 AAAI fellow release! Yan Shuicheng, chief scientist of sail, and Feng Yan, Professor of Hong Kong University of science and technology, were selected
[Galaxy Kirin V10] [server] grub default password
如果不知道這4種緩存模式,敢說懂緩存嗎?
Day7 list and dictionary jobs
XMIND installation
Send a request using paste raw text
[Galaxy Kirin V10] [desktop] can't be started or the screen is black